Senior Embedded Software Engineer

Mercury Systems   •  

Phoenix, AZ

8 - 10 years

Posted 234 days ago

This job is no longer available.


Duties include, but are not limited to the following:

  • Expert level experience developing embedded software (vs testing) using C in an embedded environment.
  • Experience using scripting languages such as TCL and Perl to automate testing and debugging.
  • Experience using processors embedded in Xilinx and Altera FPGAs.
  • Experience using Microsoft project to plan, estimate, and track project progress.
  • Specify, implement, modify, and debug new and existing programs to control the testing, debug, and manufacture of secure storage products.
  • Implement and update Excel spreadsheets that demonstrate product performance and reliability.
  • Experience using common lab equipment such as Power Supplies, Scopes, and Logic Analyzers to debug and characterize new product firmware.
  • Use protocol analyzers to debug product issues and develop methods for improving product performance.
  • Conceive, specify, and implement test algorithms, tools, scripts, and procedures to aid in the production of new storage products.
  • Create and review requirements documents and product documentation.
  • Prepare and participate in formal design reviews and product proposals.
  • Use scientific analysis and mathematical methods/models to predict product performance and reliability.
  • Consult with team members and staff, as necessary, to successfully complete projects on time.
  • Support product embedded software through the entire life cycle.
  • Participate in verification testing and product certifications.
  • Plan and document expected weekly work tasks and report task status on a weekly basis.
  • Commit to and meet scheduled deadlines for tasks assigned.
  • Work with consultants or outside agencies as required.
  • Other design, development, and support tasks as assigned.


  • Minimum 8+ years of experience specifying, implementing, debugging firmware, preferably in C, in an embedded environment.
  • Expert understanding of stacks, interrupts, interrupts, parameter passing, content switching, and microprocessor operation.
  • Understanding of hardware functions such as FIFOs, FLASH, DRAM, SRAM, DMA, registers, pipelines, and state machines.
  • Proven expertise and knowledge of best-practice software engineering principles using structured programming and configuration management.
  • Experience with scripting languages such as TCK, Perl to automate production and testing tasks.
  • Strong knowledge of software development tools (IDEs, compilers, linkers, debuggers).
  • Ability to read and understand complex technical documents such as schematics or data sheets.
  • Basic understanding of techniques and algorithms used for error correction in memory devices.
  • Knowledge of solid-state drive architectures and standards is a plus
  • Experience with storage protocols such as PCIe, SATA or NVMe is a plus.
  • Ability to communicate effectively with upper-level management.
  • Ability to think out-of-the-box and create unique solutions to complex problems.
  • Excellent writing, verbal, and interpersonal skills.
  • Outstanding work ethic with the passion and energy to meet commitments and schedules.
  • Excellent writing, spelling, verbal, and interpersonal skills.
  • Must be able to obtain a security clearance.
  • Applicants must be a U.S. citizen


  • Masters preferred