Firmware Engineer

  • Full-time
  • Department: Software Engineering

Company Description

Welcome to Cricut® where transforming inspiration to creation reigns supreme. Here, customer experiences are what drive us, game-changing technology solutions are conceived, change is happening and technology is at the very heart of bringing our creative ideas to life. Clients aren’t just customers, they’re partners. Integrity and a team-driven environment serve as incubators for entrepreneurial minds. If you’re ready to be an idea engineer with some of the best collaborators in the industry, let’s see where you can put your talents to work.

Cricut® is a world leader in personal electronic cutting machines that help people achieve their creative best. For 50 years, Cricut® has inspired creativity and made DIY more capable and easier than ever with tools like the Cricut® electronic cutting machine, Cricut Craft Room® design software, and the Cricut Cuttlebug™ embosser and die cutter. Today, millions of people use Cricut® products to create masterful and surprisingly simple projects, and Cricut® products have won dozens of industry awards. Redefine DIY—join the Cricut® revolution!  

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.
  • Analyzing and developing firmware, along with integrating existing products with each other
  • Provide support for engineering prototyping efforts
  • Support firmware update testing and deployment
  • Debugging low level hardware interfaces (USB, UART, PWM, GPIO, etc).
  • Development of internal software tools to support testing
  • Customer technical support
  • Multi-platform code development
  • Creation and review of documentation
  • Manage firmware revision control

Qualifications

  • Bachelor’s or Master’s Degree in Electrical or Computer Engineering. Computer Science degrees only with significant embedded software experience
  • At least 3+ 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++
  • Experience with mechanical actuators a plus (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
  • Ability to define critical project criteria to ensure completion
  • Ability to work independently and within a team environment

Additional Information

What to Do Next: 

Please send us a resume and a cover telling us why no one is more right for the 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!