Software engineers design and develop embedded and enterprise application software and systems. In this position, a person would be responsible for creating software that meets specific requirements reliably and efficiently while also ensuring its performance delivers on all expectations at completion.
Software engineers develop software that helps their employer serve clients, be competitive, and increase the company’s productivity. BAE Systems is a world leader in advanced technologies, developing some of the most important new defense and intelligence technologies in history, so as technologies continue to evolve, our software engineers have a reputation for creating applications that make a life-or-death difference to service members all over the world who depend on us for mission success and high survivability. To be successful in this role, a software engineer’s technical knowledge must include programming languages like Java, Python, and C++. They must also have strong problem-solving skills, creative thinking capabilities, and a positive attitude that makes them ready to troubleshoot any issues that arise during development or deployment and take proper action.
Once software is built, software engineers are responsible for testing it thoroughly and repeatedly to assure it meets all specifications and accomplishes its purpose. Although it does not happen often, depending on the project, location, and the client’s needs, our software engineers may occasionally be called on to work overtime or travel to distant facilities – either ours or our client’s – to help solve important problems in the field on short notice. So if you're looking for a job with plenty of potential for growth and success, both immediate and long-term, software engineering may be perfect for you.
To succeed at this job, candidates will be required to:
- Analyze, design, code, and modify code (typically in C++) of complex software designs for simple systems or subsystems.
- Evaluate complex software designs to identify design flaws.
- Utilize Green Hills, VxWorks, Windows, or Linux-based software development environments. Embedded targets could range from ARM through high-performance x86-64 CPUs and Graphics Processing Units (GPUs). They integrate and test in the selected target test environments.
- Participate in the complete software development lifecycle, including design, development, debugging, testing, configuring, and deploying our complex, real-time software solutions into simulation and test exercises.
- Apply state-of-the-art software development tools and techniques.
- Possess strong knowledge of software architectures, software systems, software algorithms, software industry best practices, and emerging software technologies.
- Interact with current and potential customers to understand their requirements and guide development efforts to meet their needs.
- Participate in external projects with other companies on a variety of software products.
- Participate as a technical collaborator with other engineers or technical leader in a program where you will mentor the team and present the technical design at technical interchange meetings with the customer.
Education and experience requirements include:
- Bachelor of Science Degree in software engineering and 2 years of experience in software development
- Ability to be granted a security clearance by the Federal Government
- Linux and real-time operating system exposure
- Real-time embedded low-level software development (e.g. device drivers and BSP development)
- Current C++ and Java software development experience on Windows or Linux
- Experience with any distributed systems, multi-threaded systems, military systems, or simulations
- Familiarity with source control systems and configuration management practice
BAE Systems, Inc. is an innovative leader in development across an array of advanced technologies that employ software and software systems solutions – aircraft controls, spacecraft navigation, renewable energy power systems, cyber resilience, C4ISR hardware, defense technologies, electronic warfare (EW), precision munitions, and much more. Thus, while any one particular software engineer position is likely to be focused on a specific engineering area of our business, we are always interested in learning about and hearing from talented software engineers who wish to advance their careers by helping us continue to develop and provide our customers with the most advanced, innovative electronics and electronic systems available across a range of key categories.
While there are exceptions, the job of software engineer is typically among the most conducive to working remotely, also known as work-from-home. Software engineering work can usually be done very effectively from home by those with the right skills, the right equipment, and the right attitude. Today, companies just about everywhere are using remote software engineers, and a range of other workers, to improve their operational efficiency, contain costs, and be more effective for their customers. That includes BAE Systems. This approach also reflects our strong commitment to supporting a healthy work-life balance.
Why? First, hiring remote software engineers allows large enterprises like ours attract top talent from across the country, rather than just from their immediate “commutable” area. And in the case of BAE Systems, we have offices and facilities in many parts of the country, and overseas, so even those software engineers who do physically work at our offices at some point work “remotely” with other staff located in other parts of the country or world.
The exceptions referred to above include software engineer positions where some senior developers and team leaders may be required to work on-site, either on most working days or on a pre-arranged hybrid schedule. This can be due to management duties or customer requirements, but can also be due to the high-security work that BAE Systems is often involved in. Unlike consumer or general business companies that do not use, exchange, or distribute secure data, like defense systems information, BAE Systems uses and develops technologies involved in national security, space exploration, cyber resilience, advanced technology development, fraud detection/protection, law enforcement, power infrastructures, and other high-security fields. Thus, certain projects will require software engineers to work on-site at our secure facilities at times.
For several years, software engineering has ranked as one of the top careers in the U.S. Being a software engineer offers flexibility in the industries you work in, flexibility in the roles you choose within those industries, generous software engineer salaries, and work/life flexibility regarding where you live and when you work. software engineers are also consistently in high demand and earn good pay. The demands of the job on software engineers can be substantial, especially leading up to significant client deadlines, but the health coverage, time off, travel, and freedom to work remotely normally offered for the position can offset those pressures for many following this career path.
Many openings and good salaries
Smart, enthusiastic software engineers are sought after by companies in most industries today, and the demand will only increase in coming years. The profusion of products developed with computers and Internet connectivity at their core – for heavy industry, transportation, defense, finance, consumers, power grids, and more – continues to grow, and most of those computers and devices require software engineering. That means good, well-paid software engineer jobs now and job longevity into the future. In fact, software development employment is projected to rise at a much higher rate over the next ten years than the national average for other careers. If you have great software engineering skills and a SE-related bachelor’s degree, you have a considerable advantage in scoring a great position.
With the right education, degrees, and experience, well-trained software engineers can find themselves scripting, programming, designing, and developing software solutions for a range of advanced technologies, including:
- aircraft controls, communications, threat defense, and weapons systems
- automated sensors, relays, processors, and controls
- autonomous systems for defense, transportation, industry, and consumer devices
- battery systems for vehicle electrification, solar back-ups, and more
- computers, phones, and servers for business, home, and government
- communications, navigation, and identification (CNI) systems
- cyber defense programs and cyber networks
- electronic weapons (EW) systems
- gaming systems, warfare simulators, and data visualization platforms
- geographic information system (GIS) technologies
- global positioning system (GPS) devices and services
- Internet-of-Things (IoT) smart devices and systems
- Internet-connected vehicles for shipping, defense, consumers, and industry
- mobile apps for consumers, business, government, and defense
- quality assurance product and process testing equipment
- renewable and traditional power grid technologies
- robotics for industry, defense, emergency management, and consumers
- tracking and reporting systems
- unmanned aerial, ground, maritime, and space vehicles
- websites and integrated Internet platforms
- much more
Reflecting the importance of software engineering in today’s tech-dependent world, salaries of software engineers often start in the high five figures, but talented software engineers can often make six figures in a short time, and can often maintain that higher income level for many years of their extended work life. Likewise, senior software engineers are generally well-compensated in both salary and benefits commensurate with their experience, areas of expertise, and management skills.
The short answer is, software engineers work everywhere new products are developed or where existing computer-driven products are maintained and updated. That’s true in the United States and around the globe because so many products are built to be run by some form of computer or software system that the need for software engineers is very widespread. The primary differentiators are in what kind of software you want to develop, what kind of products you want to apply the software to, and how appropriate your training is for available jobs.
Aerospace and defense companies, software developers, and government agencies
The sheer quantity of work to be done in order to develop, produce, and implement the constant flow of new technologies needed for the United States to secure and continue growing its leadership position in the world is difficult to imagine, but it’s immense. Talented and experienced software engineers are one important factor in making that happen, helping private sector partner companies like BAE Systems develop and maintain the country’s many exceptional aerospace, defense, communications, security, and other technologies. Because world-changing technologies need exceptional software engineering to do their jobs. That need for software engineers also extends to many government agencies and departments that use those technologies, as well as to companies that specialize in software. In fact, with cyber attacks having proliferated worldwide, governments at every level today often hire software engineers either on staff or as contractors to regularly update, maintain, and protect their internal systems and consumer-facing interfaces.
Consumer and industrial products companies
Most companies that design, develop, and/or manufacture real, physical products today hire software engineers. Those that make technological consumer and business products – phones, tablets, desktop and laptop computers, printers, Internet-of-Things (IoT) products, etcetera – keep software engineers on staff for obvious reasons. However, even those that design and manufacture non-technological products and services – from toys, furniture, garden tools, and kitchen utensils to construction equipment, machine parts, seals, fasteners, chemicals, building materials, and more – have a need for software professionals. First, all commercially-produced products today are designed, manufactured, marketed, and shipped using tech that is programmed, maintained, and updated by software engineers. And second, large and small companies alike use the Internet plus connected networks, servers, secure portals, email, and related technologies to interface with customers, process orders, provide services, collect payments, manage supplies, advertise, and more. While many off-the-shelf “fixes” are available, companies know that often keeping systems operational requires ongoing support by experienced software engineers.
Internet-based companies
The Internet hosts many businesses that were specifically created to be only or mostly online to sell information, services, and easier access to physical, real-world products and services to Internet users, which is almost everyone. Some of those businesses focus on consumers, but many exclusively serve businesses and business people. Every single one of those Internet companies uses software engineers, either directly as employees or through outside services, and the larger companies often employ hundreds of software engineers, software developers, software designers, etc., in locations all over the world. Many companies that were founded offline, like big box retailers, for example, have also been forced to establish a significant online presence in order to survive, which means they also need software engineering and related services to help them compete.
Colleges, universities, and utilities
Most colleges and universities today have many software engineers on staff, even if they also teach. This is particularly true of research universities, because whatever research they perform – biology, medicine, computers, robotics, physics, or anything else – the need to investigate, document, present, and share the data requires a range of computer system assets that they handle. From custom software programs and interconnected systems to secure networks, access protocols, data storage, and more, Software engineers can design and orchestrate those pathways and platforms.
Utility companies’ power and water resources today are mostly controlled by computer, including many that are at least partially automated. It costs less than human controls do and usually operates with fewer errors. But managing, maintaining, and upgrading computer controls requires software engineering, so whether the utility is large enough to hire a staff software engineer or they contract with an external engineering company, the need is there.
Physical locations
Regardless of the type of organization software engineers work for, a large number of them today are able to do their job remotely or on a hybrid in-office / work-from-home schedule. Some prefer going to an office every day, but many companies offer a lot of flexibility in exactly where they are physically located while doing their jobs. Other than being briefed for new projects and occasionally meeting with project co-workers or supervisors, a non-managerial software engineer position can often be performed from anywhere, even thousands of miles away, and can be comparatively solitary, offering a great deal of flexibility and potentially saving a lot of commuting time and expense. Whether the organization that hires them allows that flexibility is a separate decision, but it is an option that can benefit both the software engineer and the organization that employs them. A few other locations where software engineers may find themselves include:
- On-Site labs where the software engineer can work and meet with a project's other various engineers, designers, and technicians involved. This can be important at the beginning of project and whenever a lot of immediate data gathering and idea sharing is required.
- Test centers that are designed to verify the performance of software programs and report on outcomes of products and/or systems in development.
- Manufacturing facilities where some of the hardware platforms that the software was created to operate are built, offering opportunities for additional testing/verification prior to distribution or implementation.
- Client sites where the systems and devices guided by the new software may be demonstrated for decision-makers and/or implemented.
- Training facilities where the software engineer can train end users of new systems in how to use and/or install new software for multiple projects most effectively.
- Repair and upgrade facilities that are designed to support, service, and upgrade electronic systems and the platforms they are built into, from aircraft, automobiles, and space instruments to naval vessels, sensor arrays, weapons systems, delivery vehicles, and more.
There are a number of reasons why software engineering is important in today’s technology-centric, computer-dependent world. Mostly, those reasons are tied to vastly increasing the possibilities of what we can achieve for the future – as a species, as nations, as companies, and as individuals. They also include SE’s oversized role today in improving productivity, creating opportunities, protecting innocents, saving lives, building wealth, and more. And as technology permeates further into all aspects of work, civic, and personal life, well-executed software engineering will become even more consequential.
Delivering on productivity
Since the late 1930s, the core promise of computers has been significant boosts in productivity, opportunity, and achievement for the world. Over the decades, that promise led to today’s greatly-accelerated productivity and efficiency across most business categories, in government and defense programs, and even in individuals’ private lives. While much of that progress tracks to improvements in computer and device hardware, software engineering provides that hardware with exponential value by making it more upgradeable over time than would be possible with constant hardware upgrades. Most devices or systems that depend on computer chips for key functions – aircraft, cars, tools, phones and tablets, appliances, desktop and laptop terminals, work tools, robots, scanners, radios, trackers, UAVs, and more – can now be given performance and security boosts without replacing hardware. In fact, many modern business and government tasks need only Internet access to upgrade their capabilities due to the growth of cloud-based Software-as-a-Service (SaaS) technologies developed and updated by software engineers.
Better processes, more possibilities
The engineering part of software engineering is very important because, as we have noted, the world is now well beyond simply programming software to make hardware execute human tasks faster. Software engineering today institutes formalized methods and processes that provide structural problem-solving practices that can be tested, repeated, and built upon to assure continuous systemic improvement. This has led to software that can perform its original purpose while simultaneously learning from, correcting, and avoiding human errors to improve project quality, contain costs, identify new problems, make needed changes, provide new options, and more. And it can do all that in a wide range of devices, systems, and platforms.
Getting smarter every day
Perhaps the best examples of software engineering escalating what’s possible in today’s world lie in the smart systems, devices, and mobile apps that leverage combined automation, advanced sensors, Artificial Intelligence (AI), and Machine Learning (ML) to boost capabilities exponentially. This combination has revolutionized how technologies and the world function today, in business, defense, heavy industry, power, education, consumer products, and other fields, but none of it would be possible without software engineering. The “smart” capabilities derived directly from these integrated advanced technologies can be found every day now in:
- Aircraft, Ground, and Navy Vessel Self-Defense Systems
- AI-driven art, writing, and video creators
- Customer service chatbots
- Driverless / self-driving semi-trucks and cars
- Emergency / Rescue / HazMat Robots
- Humanoid robots
- Manufacturing robotics
- RF Signal Detection and Exploitation Systems
- Robot-assisted surgery systems
- Self-navigating home vacuum cleaners and pool cleaners
- Smart assistants (Siri, Alexa, Bixby, etc.)
- Smart business receptionists and optimization / Management bots
- Smart Home / Internet of Things (IoT) devices and systems
- Smart medical data / Diagnostics devices
- Social media management
- Stock Exchange trading bots
- Unmanned Aerial, Maritime, Surface, and Space Vehicles
Smart devices and services like these are only getting started, and every single one of them is going to need talented software engineering teams to design how they function, get them ready for the world, and keep them operating. That means a bright, busy future for software engineers the world over.
The roots of software engineering as a discipline lie in the United States defense industry. In 1952, software for computers was developed by a group of US Army engineers at their Aberdeen Proving Ground facility in Maryland to help design artillery fire control systems. This software marked the beginning of software engineering as an organized field distinct from development of computer hardware, and software quickly became integral to a number of defense-related activities. It still is today.
From exploration to foundation
The early 1960s saw the concept of Object-Oriented-Programming (OOP) come to fruition at MIT. OOP would go on to become the basis for many of the most important computer languages that are in use and in demand today, including C++, C#, HTML/CSS, Java, JavaScript, MATLAB, Python, Ruby, SQL, Swift, and others. In 1968 the first NATO software engineering Conference was held in Garmisch, Germany, which brought together computer scientists and mathematicians from a variety of countries to discuss software development techniques, technologies, and definitions. This meeting spurred much conversation among both attendees and the scientific community worldwide about software engineering processes, which over time helped to standardize development methods for creating reliable software systems.
Commercial viability
In the ‘70s, software packages that could be used off-the-shelf in commercial applications for business emerged, especially for banking, accounting, and finance. Computer hardware was still very expensive at that time, relative to today, and required more hands-on knowledge than today’s desktop and laptop computers do, so commercial adoption at that time was primarily among larger, more profitable corporations. Still, as software development became more widely used in business settings, the software engineering discipline began to be seen more and more as an important field of study.
Academic necessity
The importance of software engineering, data science, and the software engineering process was recognized more and more by academia in the 1980s, with courses and degrees offered at universities across the United States and internationally. This decade also saw the emergence of the software developer as a profession and software-related industries such as software consulting and software quality assurance, and significant growth in off-the-shelf retail software packages that mirrored greater adoption of desktop computers among small businesses and individuals. It also marked the nascent introduction of what would eventually become the ultimate in networked software engineering – the Internet.
Widespread integration
Today, software engineering is a multi-billion dollar industry, with software programming proving to be essential for productivity, security, efficiency, and effectiveness across every area of business, heavy industry, defense, transportation, exploration, science, and government. Software development has even become an essential part of daily life for consumers, from communications, navigation, and entertainment to healthcare, personal finance, and shopping. Software Engineers are employed by government, private sector, academic, and non-profit organizations around the world to develop robust software applications and systems that provide solutions and services across a variety of tools and platforms – online and off, wired and wireless, stationary and mobile – in every environment possible. As technology continues to evolve, software engineering will remain an important career and an essential field of study.
This information page is provided as a service to our readers by BAE Systems, Inc., a U.S.-based world leader in aerospace, defense, power, and intelligence solutions. Learn more about us here.