Overview:
In this role you will develop and debug embedded firmware for diverse hardware platforms, collaborating closely with product and hardware teams to meet technical requirements. You’ll bring up new boards, analyze design issues with data-driven methods, and improve control systems and sensor processing. The position combines hands-on hardware work with software development to support end-to-end product life cycles. You’ll work in a fast-paced, cross-functional environment to enable reliable, scalable firmware for Cricut’s consumer electronics. Compensation / Benefits Medical, Dental, and Vision coverage 401(k) match generous PTO tuition reimbursement lifestyle stipend employee discounts
Responsibilities:
Develop and debug embedded firmware for bare-metal microcontrollers, RTOS, SoC, and SBC systems Translate product requirements into technical specs with project/product management Collaborate with hardware engineers to bring up new boards and systems Apply data-driven analysis to diagnose and resolve design issues Write control code for actuators, including PID tuning and dynamic control Integrate and analyze sensor data (optical, thermal, reflective) focusing on signal processing and noise reduction Troubleshoot low-level interfaces (USB, UART, SPI, I2C, PWM, GPIO) Develop internal C/C++ tools to aid testing, automation, and manufacturing Participate in code reviews, documentation, and revision control to ensure firmware quality and scalability Collaborate across engineering teams to support full product lifecycle
Key requirements:
Bachelor’s or Master’s degree in Electrical, Mechanical, Computer Engineering, or Computer Science (robotics/control emphasis preferred) 5+ years of embedded firmware experience or strong project/internship experience for new grads Strong C programming skills; C++ and/or Assembly exposure a plus Experience with bare-metal microcontroller, FPGA, and RTOS development Experience with embedded solutions for electromechanical commercial electronics (e.g., die cutters, plotters, printers) Familiarity with electromechanical systems including actuators and precision control Strong troubleshooting and debugging skills for low-level embedded systems Excellent communication, documentation, and teamwork skills Comfortable working both independently and in a collaborative, hands-on environment excellent communication teamwork problem-solving C programming C++ and Assembly (plus) bare-metal microcontroller