Firmware Engineer - Product Development

  • Full-time
  • Department: Product and Hardware Engineering

Company Description

Cricut helps people everywhere live creative lives by providing the tools they need to make beautiful, high-quality DIY projects quickly and easily. Innovator in the smart cutting machines category, Cricut offers the industry-leading Cricut MakerTM and Cricut Explore® machines, Design Space® software, a lineup of crafting tools and accessories, and a diverse range of materials such as vinyl, decorative papers, and iron-on. Cricut products can be found at most major craft stores and online. Cricut is located in the Salt Lake City area of Utah. Learn more at Cricut.com.

Job Description

We are looking for a Firmware Engineer to facilitate the rapid development, prototyping, and debugging of firmware for embedded electromechanical systems, software test tools, and manufacturing support software. Additional responsibilities include code architecture definition, revision control and bug tracking. The creation and review of documentation are additional key responsibilities. Contributions to product definition and development methodology are also required.

Duties/Activities:

  • Embedded firmware code development, testing, and optimization
  • In-Depth microcontroller programming including development of bootloader code and board bring up.
  • Develop and tune motor control system related to PID motor control
  • Analyzing and developing firmware, along with integrating existing products with each other
  • Provide tools and support for engineering prototyping efforts
  • Support firmware update testing and deployment
  • Debugging low level hardware interfaces (USB, UART, PWM, GPIO, etc).
  • Integration with software team for multi-platform development
  • Development of internal software tools to support testing
  • Customer technical support
  • Multi-platform code development
  • Creation and review of documentation

Qualifications

  • Bachelor’s or Master’s Degree in Electrical or Computer Engineering. Computer Science degrees only with significant embedded software experience
  • At least 5+ years experience with embedded software development
  • Ability to read and interpret circuit schematic diagrams
  • Ability to design electrical control circuits a plus
  • Strong hardware and software/firmware development skills
  • Experience with Device Drivers (Linux, Windows, Mac OS)
  • Proficient in C/C++, exposure to Python
  • Experience with mechanical actuators (motors, solenoids, etc.)
  • Knowledge of techniques required to produce robust, fast, and secure code
  • Experience with SW security and encryption techniques
  • Proficiency at solving problems in a timely manner
  • Strong numerical analytic skills

Additional Information

What to Do Next: 

Please send your resume and a cover letter telling us why no one is more perfect for this position than you. You can be sure that Cricut is a workplace that values individuality and variety, so write to us in your real voice and tell us what you’re all about. Please submit any online presence you may have (Twitter, Facebook, Fan pages made because of you), and if you are a DIY enthusiast, whether you think you are a good one or not, that means a lot to us, and we would love to hear about it when you send us your information!