Lead Software Engineer (C++/Dart, Onsite)

CricutSouth Jordan, UT
1dOnsite

About The Position

We believe everyone is born creative. We’re a diverse tapestry of thinkers, dreamers, givers, DIYers, handi-workers, artisans, and forever and always architects of things. At Cricut, we place the power of handmade into the hands of all. We give you beautiful, easy-to-master tools so you can make something unique, remarkable, perfect. We surround you with ideas, community, inspiration, and encouragement to take your creativity further than you ever imagined. And as a community, we celebrate the exhilarating act of making every single day. So, make that handcrafted card that feels like a hug. Design a shirt for fun, for family, or for a full-blown business. Craft with a passion or for a purpose. Make something big and bold, itsy-bitsy, amazingly ambitious, or just plain silly. Whatever you make, just make your heart out. Because here’s the remarkable truth: When we all make together, we make all things possible. Let’s make. We are seeking a Lead Software Engineer who thrives on complex technical challenges and takes pride in building high-quality, scalable software systems. This is a hands-on leadership role with direct ownership of architecture, execution, and technical direction for critical product and manufacturing-facing software. As a Lead Software Engineer, you will not only deliver robust software solutions but also set engineering standards, guide design decisions, mentor developers, and ensure disciplined execution across the development lifecycle. You will be expected to operate with a high degree of autonomy, manage priorities effectively, and drive work forward without constant oversight. This role has a direct impact on our newest products and manufacturing ecosystems , bridging software engineering with real-world hardware and production environments.

Requirements

  • Bachelor’s degree in Computer Science or equivalent practical experience.
  • 5+ years of experience designing and implementing production-grade software.
  • Demonstrated experience in a technical lead or senior ownership role .
  • Proficiency in C++ and Dart ; familiarity with Java required.
  • Strong knowledge of software architecture, design patterns, and best practices .
  • Experience with multithreading, memory management, and performance optimization .
  • Hands-on experience using Azure DevOps and GitHub for work tracking, source control, and collaboration.
  • Solid understanding of the full software development lifecycle.
  • Proven self-starter who can operate with minimal direction.
  • Comfortable owning ambiguous problems and driving them to resolution.
  • Ability to lead small teams of engineers and influence without authority.
  • Excellent written and verbal communication skills; capable of leading design reviews and technical training sessions.
  • Strong problem-solving mindset and ability to juggle multiple priorities effectively.
  • Collaborative, adaptable, and able to integrate seamlessly into an existing team.

Nice To Haves

  • Experience supporting manufacturing systems, factory software, or production tooling .
  • Development experience on computer vision–based solutions for calibration, alignment, inspection, or automated test systems using tools such as OpenCV .
  • Background in consumer electronics or embedded systems .
  • Experience with transport technologies such as USB and BLE .
  • Familiarity with functional and system-level testing.
  • Experience with Swift or C# is a plus.

Responsibilities

  • Technical Leadership & Ownership Serve as a technical lead for product and platform features, owning design, implementation, and long-term maintainability.
  • Provide architectural guidance and establish implementation best practices across the team.
  • Lead technical discussions, design reviews, and decision-making for complex systems.
  • Mentor and coach junior and mid-level engineers throughout the development lifecycle.
  • Software Development & Architecture Design, implement, and maintain high-quality software using C++, Dart , and related technologies.
  • Produce clear design artifacts such as class diagrams, sequence diagrams, and architectural documentation .
  • Refactor and optimize code for performance, scalability, and extensibility.
  • Develop and maintain shared libraries used across products and platforms.
  • Implement reusable unit tests to ensure long-term product quality and stability.
  • Agile Execution & Tooling Lead or actively participate in Agile sprint planning , execution, and retrospectives.
  • Own and manage work tracking using Azure DevOps (boards, backlogs, sprint planning) and GitHub (repositories, PRs, code reviews).
  • Provide accurate technical estimates and collaborate with Product Management on scope, tradeoffs, and delivery timelines.
  • Prepare software packages for deployment in accordance with defined release and deployment standards.
  • Manufacturing & Cross-Functional Collaboration Collaborate closely with Manufacturing, Test Engineering, Quality, and Product teams.
  • Support software used in manufacturing, test, calibration, or production environments (strong plus).
  • Troubleshoot issues that span software, hardware, and operational boundaries.
  • Participate in occasional international travel to Asia to support manufacturing partners.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service