Company Overview
Founded in 1997, Millennium International is an FAA and EASA approved Part 145 Repair Station specializing in the repair and support of new-generation and legacy avionics systems and components. The company provides a wide range of services for glass cockpit (LCD & CRT) displays, TCAS, weather radar, Nav/Comm systems, and more. Markets served include corporate and fleet operators, Part 135 charter operators, avionics brokers, military, rotor wing, commercial air transport, and avionics OEMs.
Our engineering team supports the repair station by developing innovative testing, repair, and troubleshooting capabilities. This includes automated and manual avionics test systems, modern replacements for obsolete parts and components, enhanced troubleshooting tools and processes, data analysis, and electrical, mechanical, and software reverse engineering and design.
Position Summary
The Embedded Systems Test Engineer I – Avionics is a junior/entry-level engineering position focused on developing diagnostic and functional test software for embedded processor platforms used in avionics systems.
Working alongside experienced embedded systems engineers, the engineer will develop software that executes directly on target hardware to initialize, exercise, verify, and diagnose processor boards and their associated resources. Target architectures include Motorola/Freescale/NXP PowerPC and Intel x86 platforms, including legacy systems such as 486, Pentium II, and Mobile Pentium modules.
This position is well suited for an engineer with a strong foundation in C/C++ programming, computer architecture, digital electronics, or embedded systems who wants to develop deeper expertise in low-level software and board-level hardware interaction.
Candidates are not expected to already be experts in all of the technologies listed below. Training and technical guidance will be provided by senior engineers. We are looking for someone with strong engineering fundamentals, curiosity, attention to detail, and an interest in understanding how software interacts directly with hardware.
Key Responsibilities
- Develop, modify, debug, document, and maintain embedded diagnostic and functional test software under the guidance of senior engineers.
- Write embedded C/C++ software for PowerPC- and Intel x86-based hardware platforms.
- Learn to analyze electronic schematics, processor manuals, memory maps, interface specifications, component data sheets, and existing source code.
- Assist in developing low-level software that communicates directly with processor and board-level hardware.
- Develop and verify diagnostic routines for resources such as RAM, FLASH, Ethernet controllers, timers, watchdogs, interrupts, processor and peripheral registers, memory-mapped I/O, communications interfaces, video controllers, and discrete/digital I/O.
- Assist with the development of memory and FLASH diagnostics used to identify hardware and data-integrity failures.
- Develop and test software used to initialize and verify Ethernet controllers and other communications interfaces.
- Assist with testing interrupt controllers, timers, watchdog circuits, reset behavior, and other processor resources.
- Learn to develop or modify startup, initialization, and processor-specific routines, including assembly language where appropriate.
- Debug hardware/software interactions using tools such as JTAG debuggers, logic analyzers, oscilloscopes, and other laboratory instrumentation.
- Work with existing and legacy source code to understand system operation and adapt existing diagnostic capabilities to additional hardware platforms.
- Participate in hardware/software integration, troubleshooting, design reviews, and verification activities.
- Document test methods, software interfaces, hardware dependencies, expected results, and identified fault conditions.
- Work closely with senior engineers, avionics technicians, and other engineering disciplines to investigate and resolve hardware and software problems.
Required Qualifications
- Working knowledge of C or C++ programming.
- Foundational understanding of computer architecture and embedded systems concepts.
- Basic understanding of how software interacts with hardware, including concepts such as registers, memory addressing, memory-mapped I/O, interrupts, timers, and peripheral devices.
- Familiarity with digital electronics and basic electrical engineering concepts.
- Ability to read and understand technical documentation such as processor manuals, component data sheets, register descriptions, and hardware interface specifications.
- Strong analytical and troubleshooting skills.
- Interest in working with both software and electronic hardware.
- Ability and willingness to learn unfamiliar processors, devices, development tools, and legacy technologies.
- Ability to work collaboratively with and receive technical direction from senior engineers.
- Strong attention to detail and ability to clearly document technical work.
Professional embedded software experience is not required. Relevant university coursework, internships, co-op experience, laboratory work, personal projects, robotics, Formula SAE, avionics projects, electronics projects, or other demonstrated hands-on technical experience may qualify.
Preferred Qualifications
Experience in all of the following areas is not expected. Exposure to one or more is beneficial:
- Embedded C or C++ development.
- Microcontroller, microprocessor, FPGA, robotics, or other embedded-system projects.
- Assembly language or low-level computer architecture coursework.
- PowerPC, Intel x86, ARM, or similar processor architectures.
- Reading electronic schematics and component data sheets.
- Digital electronics and board-level troubleshooting.
- JTAG or hardware debugging tools.
- Oscilloscopes, logic analyzers, multimeters, or other laboratory equipment.
- RAM, FLASH, EEPROM, or other memory technologies.
- Ethernet, UART, SPI, I2C, CAN, ARINC, or other communications interfaces.
- FPGA/CPLD interfaces and discrete I/O.
- Bootloaders, startup code, linker scripts, or bare-metal software development.
- Avionics systems or aviation electronics.
- Built-In Test (BIT), automated test equipment, manufacturing test, or hardware verification.
- Honeywell PRIMUS EPIC or APEX avionics hardware.
- PBIT, CBIT, IBIT, or HBIT concepts.
- Safety-critical or high-reliability embedded systems.
Technical Knowledge You Will Develop
This position provides the opportunity to develop practical knowledge of how embedded software controls and diagnoses physical hardware, including:
- Processor address and data buses
- Memory decoding and chip selects
- RAM and FLASH organization
- Memory-mapped peripheral registers
- Interrupt generation, acknowledgment, priority, and masking
- Ethernet MAC/PHY operation
- Timers and watchdog circuits
- Reset circuitry and boot sequencing
- FPGA/CPLD interfaces
- Discrete and digital I/O
- Serial communications
- Hardware status and control registers
- Board-level fault isolation and diagnostics
Development Environment
Depending on the project, the engineer may work with:
- Embedded C/C++
- PowerPC and Intel x86 processors
- Assembly language
- Cross-compilers and linkers
- Linker command files
- Startup and boot code
- Hardware abstraction layers
- Legacy embedded source code
- JTAG and hardware debug interfaces
- Oscilloscopes, logic analyzers, and other laboratory instrumentation
- Version control and configuration management systems
- Automated test equipment
- External test and diagnostic applications
Prior experience with every item listed above is not required.
Education and Experience
- Bachelor’s degree in Electrical Engineering, Computer Engineering, Computer Science, Software Engineering, or a closely related technical discipline is preferred.
- New graduates and candidates early in their engineering careers are encouraged to apply.
- Previous professional embedded software experience is not required.
- Internship, co-op, academic laboratory, senior design/capstone, research, military electronics, hobbyist, or personal project experience involving embedded software or electronics is desirable.
- Equivalent demonstrated technical ability may be considered in lieu of a specific degree or professional experience requirement.
Ideal Candidate Profile
The ideal candidate is an early-career engineer who enjoys understanding how computers and electronic hardware work below the application-software level.
You may have built embedded projects in school, worked with microcontrollers or development boards, written C/C++ code that interacts with hardware, experimented with assembly language, used an oscilloscope or logic analyzer, or simply developed a strong interest in computer architecture and digital electronics.
You do not need to arrive knowing our specific avionics platforms. You should, however, be interested in learning how to start with a processor manual, schematic, memory map, component data sheet, and existing source code and use that information to understand and test real hardware.
This is not primarily an application software or web development position. The work is closer to the hardware and involves understanding concepts such as processor registers, memory transactions, interrupts, peripheral devices, hardware initialization, communications interfaces, and fault conditions.
The engineer will work under the guidance of experienced engineers who can provide technical direction and mentorship while progressively taking on more complex diagnostic and embedded software development responsibilities.
Pay: $60,000.00 - $80,000.00 per year
Benefits:
- 401(k)
- 401(k) matching
- Dental insurance
- Flexible schedule
- Flexible spending account
- Health insurance
- Life insurance
- Paid time off
- Retirement plan
- Vision insurance
Application Question(s):
- Are you willing to be subjected to a criminal background check and drug screening?
Education:
Experience:
- Embedded software: 4 years (Preferred)
Ability to Relocate:
- Lees Summit, MO 64063: Relocate before starting work (Preferred)
Work Location: Hybrid remote in Lees Summit, MO 64063