Software Engineer For A Radar Systems Manufacturer
Job Title: Software Engineer
Type of Company: My company is a large defense contractor. My division does mostly radar systems. I am in the software engineering department.
Education: BS, Electrical Engineering, Manhattan College (Riverdale, NY) MS, Electrical Engineering, Polytechnic University (Brooklyn, NY)
Previous Experience: I have been at my current company for 20 years. I started as a software developer and then moved to software integration where I worked my way up to Software Integration Lead. As I learned more about software and the application domain, I became a software architect.
Job Tasks: Most of the programs I work on are designed to control radar systems for the Department of Defense. Each of these complex programs contains 350,000 to 500,000 lines of code and are developed in a "divide and conquer" process. As a software architect, I am responsible for breaking down the overall system into manageable pieces, each of which can be developed by a team of 10-15 people. In order to make sure that everyone knows what to do, we document the interfaces between each section of the program and develop a clear outline of what each is supposed to do.
Most of my day is spent working with the software developers to make sure they understand the requirements. I do a lot of teaching about radars and I review their designs to make sure that they match the rest of the system and comply with the interfaces. I also spend a lot of time analyzing the results of the tests we conduct to make sure that the software is doing what it is supposed to do. When there is a problem, I work with the developers to identify where and what the problem is to help them fix it.
As we are developing the software, most testing is done in a simulation environment while other groups are building the actual system hardware. When both are ready, then we have to make sure that the software can correctly control the hardware. This usually involves travelling to a test site and making sure that the system works as a whole.
Having been doing this for 20 years, I also work with other programs as an independent reviewer to make sure that they get off on the right foot.
Best and Worst Parts of the Job: The best part of my job is that I am constantly learning new things in a number of areas. I also enjoy solving problems. Being able to mentor younger engineers is something I find very rewarding.
I think the worst part of my job is that sometimes there is a lot of pressure to meet deadlines. We occasionally need to work overtime and/or come in on weekends to get everything done.
Job Tips: When I was in school, I was very interested in hardware design. I wanted to design computer chips. But my career took me down another path and I have transitioned into a software architect and am also involved in systems engineering. The most important thing I have learned is that you always need to learn more. I see many software developers who think they only want to sit at their desk and write code all day. Writing code that no one can read doesn't help anyone, so being able to communicate both verbally and through writing, is very important. I have also found that, no matter how much I think I know, there is always someone who knows more. Dealing professionally with people and maintaining relationships will help you continue to learn and gain people's trust and respect.
Additional Thoughts: The coolest thing about this job is seeing the systems that I have developed actually work. The biggest surprise is that I have been able to do so much travelling. The systems have been deployed in areas from Alaska to England. Volunteering to deploy with the systems to do on-site integration and testing has not only allowed me to learn more, but it has afforded me the opportunity to travel more than I ever would have thought.