Name: Christopher Miller
Title: Principal Embedded Software Engineer / Agile Product Owner
How long he’s been at Northrop Grumman: 5 years
Tell us about your career journey: How did you end up working as a software engineer?
My path to becoming a software engineer was far from what I ever expected. I went to UCLA for my bachelor’s and master’s degrees in electrical engineering, but I never truly knew exactly what I wanted to do. Upon interviewing with Northrop Grumman, I was informed that they had a rotational program that would allow me to rotate into different departments within the company.
Given that my background was in electrical engineering, my first rotation was in the digital technologies group. I really enjoyed my time there, but I wanted to get some exposure outside of my educational background. After a year of doing hardware, I rotated to the software department, where I joined a new program developing software test scripts in Matlab to test a Simulink model of a navigation system. I worked side-by-side with the system engineers who wrote the requirements and the software architects who developed the model to fully test the software model. After a year in that rotation, I transitioned to a new program and got the opportunity to develop mission computer software for a helicopter platform—really cutting-edge technology! I got to learn about the entire software development process and gained a lot of invaluable, hands-on experience that helped me grow into the software engineer I am today.
What attracted you to work at your company? How did you know it would be a good fit?
What originally attracted me to Northrop Grumman was its people and culture. During my short stint at Northrop Grumman as a summer intern, I got the opportunity to meet a lot of employees and learn about the different products the company worked on. I received a lot of mentoring and was treated as if I were a part of the Northrop Grumman family. From the first day I stepped on campus I felt very comfortable in my work environment, and this allowed me to network and make the connections that I now have to help guide and progress my career.
What are you responsible for as a software engineer at your company?
As a software engineer at Northrop Grumman, I am responsible for every aspect of the software development process. From the inception of a particular functionality via a request from the customer to the formal quality testing and customer training for the final product, it is my duty to see a project through from start to finish. These projects always start with setting a cadence with customers to home in on their highest priority needs. From there, I work the project through my process from developing software requirements to implementation to testing and debugging to get to the final product. Once the final product has been completed, I create support and troubleshooting documentation and lead training sessions for the customer.
In tandem with all of the duties noted, it is also my job to manage, oversee, and provide support to a team of engineers. I develop trust, camaraderie, and direction among my team members in order to create a positive work environment that yields a successful product.
What does a normal day in your job look like?
A normal day for me really depends on what stage of the software development process the team is in. With that said, some constants to the day include reading and responding to emails and status meetings with my team, when we discuss plans and action items for our projects. It’s also normal for me to have regular meetings with the customer and program management to discuss the status of a project.
What are the primary technologies that you use for tooling and development?
From my experience working at Northrop Grumman, I have used a number of development tools and coded in several different languages depending on the program. On the program I am currently working, everything is coded in C, C++ and Ada. With that said, we do have some testing tools that were developed internally that mostly use Matlab and Simulink. I have also personally developed testing tools and test scripts using C#, Python, and JavaScript. For formal unit testing of the software to get code coverage (branch and statement), we use a tool called VectorCAST. In order to debug and troubleshoot the software on the target hardware in the lab, we use a tool called GreenHills debugger. During the software development process, for configuration management of our software code, most programs at Northrop Grumman use ClearCase or GitHub. I use all of these tools on a daily or at least weekly basis. Again, most of these tools are program dependent and can change from facility to facility, as well.
What skills are essential to succeeding as an engineer at your company?
The most important skill to be successful as an engineer at Northrop Grumman is the ability to problem solve. You are challenged every day with many unique problems that require thinking outside the box. There is no common way to solve these problems, nor are there any textbooks that you can reference to find the answer. A good engineer is creative in finding innovative solutions with the resources available to them. Additionally, they have the situational awareness to know who the appropriate subject matter experts are within the company who can provide the necessary guidance.
To supplement their problem-solving skills, a good engineer also needs the ability to communicate effectively. They need to be able to articulate the complicated problems they have solved in a manner that is understandable to all stakeholders involved. If an engineer can break down very complicated problems and explain them in simple terms, then they have the potential for great success at Northrop Grumman.
What are you working on right now that excites or inspires you?
I’m working on mission computer software for a helicopter platform. It’s an inspiring and motivating project because I am constantly interfacing with real helicopter pilots to collaborate and find ways to make their jobs easier. My sole responsibility is to automate functionality that ultimately allows the pilot to focus as much as possible on just flying. This particularly excites me because I get to develop and work directly on the cockpit displays and the actual hardware that the pilot interfaces with. I also get to lead training sessions for the pilots to help them understand all of the upgrades I have made in the software. Ultimately, it is rewarding when you receive direct feedback from the pilots on how impactful and helpful your software is to them in their day to day duties.
What other teams or types of people do you interact with on a regular basis?
I am the Agile Product Owner and software lead for one of 12 software development teams on my program. The team I lead is multidisciplinary and consists of software, system, and integration and test engineers. As part of the Agile process, I have a daily status meeting with my team to brainstorm and problem solve. Because there are many teams that can have overlapping functionalities, I am constantly collaborating with the other team leads to avoid duplicating work while maximizing efficiency. As a team lead, I am also always interfacing with the customer to ensure that the teams’ efforts are aligned with their requests. Lastly, as an Agile Product Owner, I have the responsibility of meeting with the system architects and program management to report on my team’s progress as well as provide any risks or impediments that would prevent meeting schedule. The frequency of these interactions vary based on the timeline of the software development process, but overall as a team lead, I am interacting with all levels of the program on a regular basis.
What do you value most about your company’s company culture? What sets it apart from other places you’ve worked?
What I value the most about Northrop Grumman’s culture are the Employee Resource Groups (ERGs). Northrop Grumman has 13 ERGs that provide numerous benefits for both members and the company. Across more than 270 chapters, these groups include those supporting African Americans, Asian Pacific Islanders, Hispanics, Native Americans, women, people with disabilities, veterans, LGBTQ+ employees, young professionals, parents and families, multiple generations, virtual workers, and environmental conservation. Through these ERGs, employees are given the opportunity to develop leadership skills, expand their network, build their professional development skills, and participate in community outreach. Furthermore, these ERGs are inclusive and bring a different dynamic to the workplace that make it much more enjoyable.
What advice do you have for software engineers applying to jobs at your company?
Express your passions for learning and developing as an engineer. There is no pressure to know or understand everything right away. Just be open to learning and be willing to put in the time and effort to develop whatever skill sets are necessary to be successful at your job. Northrop Grumman is looking for engineers that are willing to take the initiative and actions necessary to achieve their goals.
Most importantly, be confident in the abilities that you have and do not be afraid to communicate your wants and interests. From my experience, my relationship with Northrop Grumman has always been a mutually beneficial one, where they want to make sure the employee is happy just as much as the employee should want to make the company happy. In order for them to make you happy as an employee, you need to communicate what you are looking for so that they can make it happen.