Cypress HCM · 1 day ago
Sr. Embedded Engineer
Cypress HCM is seeking an Embedded Software Engineer to design, develop, test, and support embedded and PC-based software solutions. The role focuses on firmware and application development across microcontroller platforms and real-time systems, with responsibilities including embedded controller development, system integration, and software validation.
Responsibilities
Develop embedded software for microcontroller-based systems using both bare metal and real time operating systems
Create board bring up code, device drivers, boot loaders, firmware update mechanisms, and software interfaces for sensors and peripherals
Design, implement, test, and debug embedded device controllers and related software components
Develop PC applications that support diagnostics, device testing, production testing, and test automation
Conduct unit tests, integration tests, system level debugging, and code reviews to ensure quality and reliability
Diagnose and resolve hardware and software issues in real time environments
Integrate software modules, third party libraries, and APIs into existing or new systems
Perform software validation, functional testing, and system compatibility checks across environments
Ensure compliance with applicable safety standards, industry norms, and internal policies
Optimize software for performance, memory utilization, and power efficiency
Support planning, task definition, and estimation as part of development efforts
Collaborate with engineering teams (electrical, mechanical, quality) to ensure seamless product integration
Analyze, document, and track software defects and improvements to resolution
Contribute to continuous improvement of development processes, tools, and procedures
Support software deployment, configuration, and technical requirements
Use version control (e.g., Git), build systems, and CI/CD workflows to streamline development
Assist production teams in troubleshooting and improving system performance
Provide engineering support where needed across departments
Perform additional engineering duties as assigned
Qualification
Required
Bachelor's degree in Engineering, Computer Science, or a related technical field
3+ years of hands-on experience in embedded systems development
Proficiency in C or C++ programming with experience in multithreaded code and hardware-software integration
Experience with microcontrollers (Cortex-M family preferred) in both real time operating system and bare metal environments
Experience with board bring up and developing low-level drivers for interfaces such as SPI, I2C, UART, ADC, DAC, USB, and display interfaces
Practical experience with debugging tools and test equipment (e.g., JTAG, GDB, logic analyzers, scopes)
2+ years of developing PC-based applications using C# and integrating with databases
Familiarity with setting up toolchains, build systems, and debugging environments
Knowledge of software engineering best practices and tools, including version control and issue tracking
Ability to read and interpret schematics, datasheets, and hardware documentation
Strong problem solving, debugging, and analytical skills
Excellent communication and interpersonal skills
A positive attitude and ability to work collaboratively in team environments