Designs, develops, tests and debugs software programs, products and tools required for the operation and control of programmable products and systems
Programs for dedicated Agilent products through the entire product life cycle from customer requirement definition to product shipment and post-sales support.
Firmware/embedded software engineers design, develop, test and debug for desktop and embedded software applications
May develop algorithms to align and calibrate equipment.
May design and execute test plans to ensure new firmware meets specifications, functionalities and performance requirements.
Works closely with a cross-disciplinary team of other software engineers, firmware engineers, mechanical and electrical engineers and scientists to create complete instruments systems.
Monitors industry trends for technological evolutions and leverages appropriate technology.
Incorporates proper cybersecurity practices throughout development stages.
Works well independently and collaboratively while balancing long-term development activities with time-sensitive assignments.
Requirements
Bachelor's or Master's Degree or equivalent in Computer Science, Computer Engineering, or a related technical field
Strong understanding of software engineering principles using C and/or C++, Real Time Operating Systems (RTOS) and concurrent programming.
Excellent debugging and troubleshooting skills
Demonstrated proficiency with Linux
Experience with version control tools (e.g., Git, ClearCase)
Integration of third-party libraries, software, or development tools
Embedded Linux development experience
Additional programming skills in Assembly, Python, C#, or Java
Understanding of FPGA interfacing
Knowledge of Object-Oriented Analysis and Design (OOAD) principles
Familiarity with databases and SQL
Understanding of Agile or Waterfall development methodologies