
Embedded Systems Engineer
- San Francisco, CA
- $60.00-70.00 per hour
- Contract
- Full-time
- Bachelors Degree in Electrical Engineering, Computer Engineering, or related field
- 5+ years of experience in embedded systems development
- Proficiency in C++, Python, Linux
- Knowledge of ARM-based processors (e.g., Cortex-M, Cortex-A series) and their peripherals
- Ability to design robust and efficient embedded systems, including processor selection, memory interfaces, peripheral integration (I2C, SPI, UART, CAN, Ethernet), and power management strategies
- Proficiency in reading schematics, understanding PCB layouts, and using lab equipment (oscilloscopes, logic analyzers, multimeters, power supplies) for in-depth debugging and root cause analysis of complex hardware/software interactions
- Excellent problem-solving and analytical skills
- Strong communication and interpersonal skills, with the ability to work effectively in a team environment
- Design and develop robust and efficient embedded system architectures, including processor selection, memory interfaces, peripheral integration, and power management strategies
- Collaborate with hardware design teams on schematic capture, PCB layout review, and component selection, ensuring designs meet performance, reliability, and manufacturability requirements
- Develop, optimize, and debug low-level embedded software in C/C++ for microcontrollers and embedded Linux platforms, including device drivers, bootloaders, firmware, and bare-metal applications
- Configure, customize, and optimize embedded Linux distributions (e.g., Yocto, Buildroot) for specific hardware platforms, and develop Linux kernel modules and user-space applications
- Utilize Python for hardware validation, automated testing, data analysis, rapid prototyping, and scripting build/deployment processes
- Perform in-depth debugging and root cause analysis of complex hardware/software interactions using oscilloscopes, logic analyzers, debuggers (JTAG/SWD), and other lab equipment
- Develop and execute comprehensive test plans for embedded systems, including functional testing, stress testing, performance benchmarking, and system-level integration testing
- Create and maintain detailed technical documentation, including design specifications, software architecture documents, test plans, and user manuals
- Work closely with cross-functional teams including mechanical engineers, software engineers, test engineers, and manufacturing to ensure seamless product development from concept to production
- Participate in code reviews, promote best practices for embedded software development, and contribute to continuous improvement of engineering processes