The Official Report.

Getting the Job
About the Job
Daily Activity Log Excerpts
Career Advice for Current CS Students
Internship Value

Section 1.0 – Getting the Job

1.1   – Advertising My Availability

After I attending the first CS 454 meeting, I began to think about what I had in terms of a resume.  I knew that I had one lying around from a general education business course I had taken a few years back, but I had not updated, or viewed it for some time.  I went digging through the educational archives, and nestled twenty folders deep in my backup files was a simple, one page description of my capabilities as of 1998.  I felt like crying.  I dusted it off, and went to work, appending, deleting, and massaging the obscure details into a magnificent piece of art that was ready to inform the entire world all about my greatness! 

With my manifesto clenched tightly in my hand, I confidently showed up at the office of Mr. Berg for my first discussion with him about my literary work.  He went over it, armed only with a red ink pen, and marked, slashed, noted, scribbled; the word “edited” does not do it justice.  If I remember correctly, I entered his office that day with 2 pages, and came out with 2 lines.  I felt a little discouraged, but I listened carefully to everything that he suggested to me so I went back to the drawing board pondering everything that we had discussed.

If you are a little scared after reading the previous paragraph, do not be.  Mr. Berg is very friendly and helpful, and more than willing to give you helpful suggestions.  The thing that made my sessions with him discussing my resume so helpful was his ability to articulate what he wanted to see on my resume, which in my case was different from what I wanted to put on my resume.  He explained to me that employers have to make hiring decisions based on a single piece of paper.  Your ability to wear clothes that match, your favorite color, or your good looks have nothing to do with getting a job.  He used this metaphor:  If you have the choice between two products which claim to do the same thing and you do not possess an intimate knowledge of either of them, how are you going to make a decision about which one to purchase?  The packaging!  That is what a resume is, a package for you to advertise your skills to an employer.

After meeting with Mr. Berg several more times throughout the spring semester, I finally got the response from him that I had been working hard to achieve.  I knew that I had a good resume after Mr. Berg had put his approval on it, otherwise he would have just pulled out the red ink pen and gone back to work.  That helped my confidence level a lot.  With a completed resume, a new glowing aura of confidence, and an entirely new upright gait, I strutted off to find a place where I would call work over the summer of 2002.

 

1.2 – Finding out about Job Openings

I began my search by initially asking around.  Professors, peers, students who completed CS 454 the summer before, anybody who I thought could give me feedback or suggestions were eligible for a bombardment of questions.  In addition to having Mr. Berg on the case distributing my resume to his contacts, I monitored the CS mailing list for work possibilities, which during the spring time is full of them.  I went to the JMU internship fair at the Convocation Center and distributed my resume and talked with employers.  I even called local businesses and asked for an opportunity to work with them for the summer.  Anything, anywhere, anytime was my motto during my search for a place to work. 

After it I had exhausted all possible resources, I just sat back and waited…and waited…and waited a little bit more…and waited a whole lot more…and just when I had lost all hope and was literally beginning to pack up the swim trunks and head to the beach for another intellectually stimulating summer of delivering pizza’s, I received a call from a Mr. John Dileo at the MITRE Corporation.

 

1.3– Landing My Internship

I answer the call, and begin a conversation with John.  He told me that he was from the MITRE Corporation, and that he had received a copy of my resume and was interested in talking with me.  Previous to his call, I had never heard of the research and development MITRE, although I had heard of the soccer cleat manufacturer MITRE.  I tend to get nervous easily, and I think that the fact that I did not know exactly who I was talking with made my first impression better than I think it would have been had I known that I was talking with a RAD company whose sponsors include the Department of Defense, the Federal Aviation Administration, and the Internal Revenue Service.

During our conversation, he asked me about what kind of projects I had worked on, how much programming experience I had, if I had ever worked with XML, things of that nature.  He made several references to my resume and prompted me to elaborate on what I had put down on paper.  I really did the majority of the talking, and when I stopped, he would just ask me another question and I would go on another brilliant rant.  I did not know it at the time, but John Dileo would become my supervisor for the summer.  In hindsight it makes sense that MITRE had him conduct the initial interview because he knew exactly what skills I needed to possess in order for me to be of use to him.  He thanked me for my time, and informed me that he would discuss the situation with his boss and he would get let me know something within a few days.  He gave me his phone number and his e-mail address (it was at this point in the phone call that I realized that I was not talking with the soccer cleat company because of the “.org” in his mail address) and the call ended.

A few days later, I received another call from John and told me that the discussion with his boss was good, and that he was going to pass my resume onto Human Resources to see if they would approve the hire.  I was excited that this was turning into a real possibility, not just another passing opportunity, but I still had to wait a few more days as HR fondled the paper work and that drove me crazy with anticipation.  Just when I was sure that my resume had hit a wall on the road to getting hired, I received a call from Lynn Hawthorne, a HR employee that works for the Center for Advanced Aviation Systems Development. 

Lynn informed me about the next step in the journey.  She mailed me an application, and she requested my transcript from JMU.  We had several more conversations about getting all of the necessary paper work completed and into MITRE.  I was kept busy mailing, e-mailing, and placing phone calls for about 2 weeks.  At that point of time, I just wanted everything to work out, so I could sit back and take a deep breath, and be happy that everything I had worked for had paid off. 

Finally, after about 4 months of resumes, interviews, applications, transcripts, and anxiety, Lynn called me and made me an offer to come and work at MITRE as a Summer Technical Employee in CAASD department F063, Airport and Airspace Design.  I can still remember the smell of the air at the party I threw that night.

Top

Section 2.0 – About the Job

2.1 – Employer

                        I was employed by the MITRE Corporation, 7515 Colshire Dr Mclean Va. 22102-7508.  I typically worked 8 hours a day for 5 days a week.  As noted before, I worked in CAASD department F063, Airport and Airspace Design.  F063 consists of 54 employees (at the time this was written), 2 of which were interns. 

                        Obviously, I had limited contact with the majority of the people in my department due to its size which makes it difficult for me to comment on individual’s roles within the department.  There were engineers, analysts, and managers to name a few of the jobs that people had within the department.  One thing was certain, all titles aside, almost everyone that I came into contact with had technical computing knowledge on some level whether it was the lonely programmer buried underneath old coffee cups and random papers, or the manager that kept any project on a progressive pace. 

                        My immediate supervisor was John Dileo, he is a Senior Systems Engineer at MITRE and was the lead programmer in our development team.  My boss was Brian Simmons, the PTM for our development team.  Both of them were excellent at what they do and I learned a lot from observing and working with them.  They kept the atmosphere relaxed and personal, which really made it easy to get comfortable with my new environment.  Some think that it is necessary to maintain a serious atmosphere all the time in the name of progress, but after my experience this summer at MITRE, I would certainly disagree with that statement.  We maintained a very productive pace in conjunction with the relaxed atmosphere, and that does not just apply to my development team, but everybody that I observed.

                                               

2.2 – My Job

Despite not knowing much about most of the other people’s roles within F063, I can adequately describe the software development team that I was a part of.  It consisted of a Project Team Manager (PTM), a former PTM who acted as a consultant, a Lead Designer, two Engineers and a Summer Technical Employee (me!).  It was our goal to build a discrete event simulation using Sun’s JAVA 2 1.4 API to accurately model en-route Air Traffic Controller Flight interaction.  This was under an FAA contract agreement, so it required that I undergo a security clearance background check that is still underway as I write this.  The customers or users for this software were the Airspace Analysts within our department as well as within MITRE.  Simply put, we were building a tool that enabled other people to better perform their job.

I was hired to work on the form of the simulation, in other words, to further develop the Graphical User Interface (GUI).  I was expected to have a comprehensive understanding of JAVA, and be able to read and understand development diagrams of all different types (class, interaction, etc.)  My first task was to write a java class that displayed a flight’s information correctly formatted in a Flight Data Block.  This involved reading through volumes of specifications that detail every last aspect of what a flight’s data block should look like on an ATC’s screen.  My next task was to create a window that would display active flight’s En-route Flight Data Strips within any selected sector of airspace.  Once both of these had been created, John and I realized that both of these classes were views of a flight’s data, so I went back to work creating a Flight Data Model for which these two views, and any number of new views could monitor for updates. 

After I finished with the previously described tasks, I began work on integrating a default simulation control panel that was supplied by Silk (see www.threadtec.com), a JAVA based modeling tool for simulations, into the control panel specified by our simulation.  This involved paying a lot of attention to the state of the model, whether it was in the run state, or the pause state, of the step state, because the view had to be updated according to every change in state.  For instance, if the simulation is in the run state, the run button on the control panel must be disabled, and appear to be pressed.  Additionally, the run option on the menu bar must also be disabled and appear to be pressed or selected.  When the state changes from the run to the pause state, the run buttons (on the control panel and the menu bar) must now be enabled and appear to not be pressed or selected.

After that, the summer was coming to a close, and I was asked to do something that I should have seen coming, but I thought that maybe I was the one lucky one out there who got to be free from documenting EVERYTHING that I had written.  First off, I had to go back through everything I had written and make sure that they were all “javadocked” correctly according to the JAVA style guide.  Once that was completed, I began writing a 20 page description about every class and how it worked, who it interacted with, and what it did.  It was not fun, but I did it and got it over with.  I think that taught me that it is less painful to document code as you go along than it is to have to go back through and do it all at once.

 

Top

Section 3.0 – Daily Activity Log Excerpts

 

Internship Journal

MITRE Corporation

June 10, 2002August 16, 2002

Brock Beatty

 

June 10, 2002

 

My first day went well.  The morning began with me finding my name on a reserved parking space right next to the entrance of the building.  I found my self with a group of 6 or 7 other new employees.  I was nervous and very anxious to get going, I had no idea what this building had in store for me.  We got our pictures taken for our security badges, which along with a PIN grants us access to the building and the labs within the building, or at least the labs I was allowed access into. 

            Onto a morning of orientation, everything from introduction to the MITRE help desk, to entering/exiting procedures.  We filled out a lot of paper work and listened to a lot of speakers give presentations on what their respective areas within MITRE had to offer us.  There was food for breakfast, and at around lunch time, they began carting in food for us to eat.  I was just about to dig into my “corporate” lunch when someone called my name, and I turned to finally meet my mentor John Dileo.  He told me to put down my lunch because he was taking me out.  Sweet!!  We meet up with a bunch of other people in my department (CAASD Center for Advanced Aviation Systems Design), including my boss Brian Simmons, and went off for a Thai lunch on them.  Everyone was friendly and eager to get to know me, all while giving me tid-bits about the project that I would be working on, which I must comment say was extremely overwhelming. 

            After lunch, John immediately began showing me around the building, including his office, my office, and the labs.  These labs look like something out of a sci-fi movie.  Huge servers everywhere, flight simulators, flight traffic control simulators, wall to wall aeronautic diagrams that looked like little more than a lesson in greek to me.  I just tried to soak up as much information as I could. 

            The day ended with a John and I having a long talk about aviation, and how it pertained to the simulation that I would be helping to develop.  With every passing sentence, I got increasingly scared.  I felt that there was no way that I would be able to accomplish what these people had set out for me to do.  I remember leaving the building feeling defeated and very discouraged.

 

June 15, 2002

 

The end of the first week, and I feel lot better about my work environment and the assignments that I have been give.  I spent a lot of my personal time this week trying to figure out how I was going to code the things that they have set out for me to build.  The more and more I thought about it, the easier it became for me to visualize how I would go about building this class, and what I needed in order to accomplish this task.  I remember the other night when a light came on about a certain aspect of the implementation that I was having trouble with left me excited to get into the office the next morning and get it into code before the thought left my head. 

            All and all I can say that the first week was a good one.  I can’t get over how friendly the people here are.  I share an office with three other interns, two from VA Tech and another from UVA.  Everyone gets along great, and we all help each other out as much as we can when someone gets into a jam.  There is no shortage of tech savvy people in the building, and there is someone always eager to apply his or her expertise to the problem that is ailing you.  Oh yeah, one more thing, there is a game room downstairs from my office with an entertainment system and two phoos ball tables.  It isn’t uncommon for someone to pop a head into the office and ask for willing opponents to take them on.  I found it weird to think that the company would sponsor that type of activity, but I guess that everyone realizes that it is not feasible to expect workers to stare at a computer screen 8 or 9 hours a day.  Sometimes just 15 minutes of not thinking about the problem at hand is all you need to solve it.

           

 

June 18, 2002

 

            Today was cool, every Monday I meet with my development team to discuss last weeks progress as well as what we aim to achieve in the upcoming week.  My boss is super cool to work for.  He has a way of making things really not stressful, and he strives to include me in the meetings even though it’s obvious that I do not have a grasp on the project like the other three people on the team (Which is expected, these people have worked for over a year on this project, I have been here for one week).   I have to meet with him sometime this week to go over my internship proposal with him so I can send it back to JMU for review and approval by Dr. Grove.  We have this software called meeting maker that allows you to set up and invite anybody on the MITRE network to a meeting at a proposed time.  It’s neat when you come in the morning and someone has sent you an invitation to a meeting, or a seminar, or whatever, and you have the option to attend or decline.  It adds it automatically to your schedule so it is a really handy tool for managing your time during the day/week/month whatever.

            I have been spending a lot of time developing a Flight Data Block, which is a block of formatted text containing flight information that is associated with a flight that is being modeled within the simulation that we are creating.  It is involving a lot of reading about what information needs to be included, and what circumstances to display different things or views.  I have to admit that coding this up makes me really nervous.  How will the professional world view my code?  Will it actually get to be incorporated into the project!  Its all overwhelming and scary, but at the same time it pushes me to work harder at paying attention to getting stuff done.   The last think I want to have happen is to fail, which honestly scares me a lot.  I have to keep reminding myself that I can’t let that fear consume me, or hold me back.

 

 

June 20, 2002

 

            It worked!  I finally got to see my code pop up onto the screen and label a modeled flight as it flew through a sector’s airspace.  This was a huge relief.  I still have to clean up some details, and I am still waiting on some functions to be written so I can get one more bit of information from the flight before the Flight Data Block can be finished in its entirety, but I am confident that I did a good job, and am looking forward to my next task.

 

June 22, 2002

 

            End of the second week.  I meet with my boss today about the proposal, and he made me feel really good about the progress I was making and the work that I was doing.  We put our heads together to come up with a schedule of different tasks that I will be working on this summer, and tentative dates of when we think that they should be completed.  I like having this schedule, is allows me to allocate my time to different tasks and gives me an idea of where I need to be.

 

June 25, 2002

 

            Today I really got into the layout of my next project, the Flight Data Strip.  CS 349 really has paid off for me this summer since everything that I am doing is directly related to the content covered in 349.  The actual requirements associated with this assignment are going to be more challenging that the first one that I worked on.  The content is going to be harder to obtain, and the functionality of the Panel that I am building is going to have to be much more robust than that of previous Components that I have built before.  I am still wrestling with CVS, a version control tool that keeps a repository of code and keeps tracks of versioning.  I can’t get the bloody thing to work the way it is suppose to which is proving to be a pain in the butt.  It’s the small hurdles like these that are the most frustrating, because I can’t spend my time attacking the real problem, but rather I end up spending a half a day reading about CVS commands and how to use them correctly without screwing up months of work that has been completed before my arrival here at MITRE. 

            Other than that, everything is going well, I am into my third week of work and I am beginning to finally know my way around the building.  I can find my way to and from the bathroom without making a wrong turn which is good.  It used to consist of three wrong turns and the consultation of two conveniently located hallway maps.  I know the people on my floor thought I was an idiot when they would see me walk past their door two or three times in a matter of five minutes with the same confused look on my face.  One time during the first week, a lady actually came out of her office and helped me find my way.  Man I must have looked pathetic.  Oh well, its all getting better now.

 

June 27, 2002

 

            I spent today scouring books on the java.awt.dnd package.  Dnd is java’s support for drag and drop functions.  It is really tricky because of all of the interfaces that are involved in Drag and Dropping items, as well as the data that the dragged component must transfer.  I have never implemented anything that uses drag and dropping stuff so this is all new area for me.  I figure if I can accomplish this, that there is no reason that I shouldn’t be able to accomplish much more difficult coding assignments.

            I sometimes worry about how sound my code is.  Does it catch all of the exceptions that it needs to?  Is it properly documented?  What can I do to make it stronger?  I read java tutorials for a lot of the day today trying to really get a fix on how to solve this problem.  I made a lot of progress I think, that is, if I am heading in the right direction.  I think that my superiors will be impressed if I can get them something to look at in the next week or two. 

            Finally, it’s hard to believe that after next week, I will have been at work for an entire month.  It has gone by really quickly, with a blink of an eye.  The days go by so quick it is remarkable.  It seemed like time stood still when I would get up at 12 and do nothing all day.  Getting up at 7am and working all day really gets that hour hand moving on the clock.  Sometimes I feel like an old man.  After my 45 minute commute in the afternoon, I am ready to kick back with some dinner, a few tv shows, and then bed.  I really value my sleep, I don’t think that I would be able to function without it.   

 

July 1, 2002

 

            Our weekly development meeting got re-scheduled for 9am this morning instead of its usual 1pm so I had to get up a little extra early to make sure that I arrived on time.  Our team continued our discussion about the progress that everyone was making with everybody’s portion of the project.  We are having a round table discussion about the user requirements of the project on Wednesday with a lot of the big analysts (the guys that will be using this tool) on what they would like to see the tool be able to do.  I have been continuing my work on the Flight Data Strip and the frame that will contain them.  The strips have to be able to be repositioned within the frame so that was a challenge; it still isn’t working the exact same way it is supposed to.  I spent a lot of time developing it using java’s drag and drop package, then right as I was getting stuff to work, John left me a note on my computer that said that there was a better approach so all of my work was wasted, and we picked up on a mouseListener and mouseMotionListener approach instead, which he got working in a matter of hours.  Oh well, I guess that’s how things work.  No meetings tomorrow, just show up and work on the Flight Data Strip Frame, hopefully I will be able to get some results.

 

July 3, 2002

 

            Today was an easy one, a few meetings to go to.  Our project team had a code walk through which meant we sat in a lab and listened to John Dileo take us step by step through the development of the simulation.  A lot of the stuff I had seen before because I have been working so closely with John, but other stuff wasn’t, particularly the Silk stuff, which is a library of java code built for simulation management (ie event queues, time management etc.)  Tomorrow is the 4th of July, which is a paid holiday for us which is cool.  I am also taking off the 5th so I have a four day weekend coming up.

 

July 8, 2002

 

            Ahhh, today was difficult to get up an go to work after the long weekend.  Spent most of the day reading how to implement the Model View Controller architecture using java bean coding standard (which I have never messed with before)  It turns out its just another way of implementing the observer pattern using a method called firePropertyChanged() and propertyChanged() for the observed and observer respectively.  So, after I got that running, I went downstairs to John’s office and we talked about it some more and we butted heads on our differences in ideas and we came to another conclusion, so tomorrow I will begin all over again with another approach to this solution.  It seems like whenever I begin to make any progress, it always turns out that something isn’t kosher, or we discover another better way to do it.  Either I suck, or this is how software development works, one or the other.  Well, whatever it is, it can be frustrating at times, especially when you spend your entire Monday morning doing it one way, and it was all for nothing.  Hope I have better luck tomorrow.

 

July 15th, 2002

            So, I have pretty much completed the Flight’s data model which all of the different views can listen to.  I have worked out how to make the frame listen to flights being added to sectors, and I have made the flight data strips able to be constructed based on any given flight’s model.  So, when the Flight Data Strip window is opened, the user can select any given sector and a list of all the active flights will appear in the window in the form of flight data strips which the user can drag and drop around the window to position them in any order that they require.  The problem is, although I believe the code to be able to work, I can’t seem to get the simulation to run the way I want it to because I haven’t been using the latest version of silk (the java simulation manager) and I have been using java 1.3, not 1.4, which could be causing the problem.  Tomorrow I have to change my classpath so that I am compiling and running using 1.4, and John’s latest version of silk so hopefully that will sort out those issues. 

            John ran my code today for the first time and saw what the data block’s look like and he was excited and impressed.  Although they all are positioned as if the flight is  heading north because a getFlight() operation has yet to be added, it still have him a visual of my work, which was gratifying.  I have about 4 more weeks left up here, then the summer is over.  I can’t believe that it has gone this quickly.  I am excited to get back to school, and into some classes.  I want to take a UNIX class as I need this badly, so I have to look into what JMU has to offer in that arena. 

 

 

Top

Section 4.0 – Career Advice for Current CS Students

 

            My advice for anyone looking to better prepare themselves for a successful career in the Computer field is to participate in the CS 454 program.  It is unbelievable how much you will gain from going through the process.  Even the steps leading up to getting the job will prove to be of great help because it will not be foreign to you when it comes time to go out looking for a full time position.  The internship itself was the fun part of the entire process.  Participating in a professional environment, going out to lunches, driving to other buildings to participate in meetings, sliding your security badge and entering PIN numbers to get into labs that look like something out of a sci-fi movie.  All of these things take your focus away from the fact that you are at work and even better, most of the time they pay you!

            Another piece of advice is to seek the help of Mr. Berg when constructing your resume.  This man knows what he is talking about.  My resume repeatedly mentioned JAVA, it told of a class project where I worked on developing a simulation, and it mentioned that I had experience developing GUIs.  What did I end up spending my summer doing?  Developing a GUI for a simulation written in JAVA.  Use keywords to describe what you can do.  I am positive that is how MITRE pulled my name out of the hat.  Any other way would be too coincidental for me to even consider it to be within the realms of possibility. 

            Once more thing before I wrap up this long winded account of my summer.  Do not be intimidated.  Do not be afraid that you will not match up, or that you will fail.  Go after what it is that you want to do and I assure you that things will work out positively.  With that in mind, good luck internship hunting!

 

Top

Section 5.0 – Internship Value

 

            This internship has greatly added to the overall value of my education in a thousand different ways.  It has given me a peek into the before “dark and mysterious real world”.  I know that I can now walk into an interview with confidence because I know what it is like to work in a professional atmosphere.  Before, I had not idea what it would be like being a software developer.  This internship answered a lot of unanswered questions that my mind was beginning to accumulate and brings me comfort.  JMU taught me skills like being proactive in finding solutions to problems, and this internship taught me how to take those skills and apply them to work. 

            One more thing that this internship has taught me is the importance of being able to work well in teams.  If you can not get along with people you are working with toward the same goal, then that added friction is going to build barriers that are not good for the overall progress of the project.  Being able to accurately convey to people what it is you are doing, or what it is you are trying to do either in writing or vocally, is also of the utmost importance.  Now I understand why TSC 210 is a required subject for CS majors.

            An internship is the encompassing case to a solid education.  No student should leave college without having experienced the work environment through an educational portal.  I will carry the lessons learned this summer with me throughout my career, and I am sure that you will find the same after you complete yours.

[Main Page] [Pictures] [Official Report]

Authored by Brock Beatty
Copyright (c) 2002 All Rights Reserved