Junior Embedded Software Engineer
TSC · Huntsville, AL · 1 mo ago
EngineeringFull-time
About the role
TSC’s Product Solutions organization is seeking a Junior Embedded Software Engineer to join our engineering team in Huntsville, AL. The ideal candidate will have an interest in embedded systems, embedded Linux, real-time software, or hardware-software integration.
Responsibilities
- Support the design, development, integration, verification, and testing of embedded Linux software systems.
- Implement software components under the direction of senior engineers and software leads.
- Develop and maintain C or C++ software for embedded platforms.
- Aid in the development of software interfaces for hardware devices, sensors, networking components, and communication protocols.
- Develop Python- and Bash-based scripts and utilities to support testing, automation, data processing, and engineering workflows.
- Participate in software integration, system bring-up, debugging, and troubleshooting activities.
- Analyze software defects and system-level issues, identify potential causes, and assist with implementing corrective actions.
- Participate in code reviews, design reviews, requirements analysis, and technical planning.
- Write and maintain software documentation, interface descriptions, test procedures, and development records.
- Develop and execute unit tests, integration tests, and other software verification activities.
- Use version-control systems, automated build tools, and continuous integration processes in accordance with established development practices.
- Collaborate with systems, hardware, FPGA, algorithm, and test engineers to support system-level capabilities.
- Learn and apply software engineering best practices related to code quality, maintainability, modularity, reliability, and security.
- Communicate technical progress, status, risks, and issues to the project team.
- Support continuous improvement of development processes, automated testing, build systems, and continuous integration and continuous delivery pipelines.
Requirements
- Bachelor’s degree in Computer Engineering, Electrical Engineering, or a related field, or an equivalent combination of education and relevant experience.
- Zero to two years of professional software development experience.
- Relevant internships, academic projects, research, or co-op experience may be considered.
- Coursework or project experience using C or C++.
- Fundamental understanding of software development principles, including data structures, algorithms, debugging, and version control.
- Ability to read and understand technical documentation, software requirements, and interface specifications.
- Strong analytical, troubleshooting, and problem-solving skills.
- Effective written and verbal communication skills.
- Ability to work effectively in a multidisciplinary engineering team.
- U.S. citizenship.
- Ability to obtain and maintain a U.S. Department of Defense Secret security clearance.
Qualifications
- Experience developing software in C++ for Linux or embedded platforms.
- Experience with Python or Bash scripting for automation, testing, data processing, or engineering tools.
- Experience using Git or another version-control system.
- Familiarity with Linux command-line tools and development environments.
- Familiarity with multithreaded programming, process communication, or networking concepts.
- Experience interfacing software with serial devices, Ethernet, sensors, or other hardware.
- Familiarity with automated build systems, continuous integration, or software configuration management.
- Experience with unit testing, automated testing, or test-driven development.
- Experience with software development for defense, aerospace, unmanned systems, robotics, RF systems, electronic warfare, signals intelligence (SIGINT), guidance, navigation, or autonomous platforms.
- Familiarity with FPGA-based systems, hardware-in-the-loop testing, simulation environments, or real-time systems.
- An active U.S. Department of Defense Secret or Top Secret security clearance.