Senior C/C++ Engineer – Platform

  • Full-time
  • Department: Software Engineering

Company Description

Our mission is to help people lead creative lives. At Cricut®, we believe that we are all born makers. When we built our first cutting machine, we saw the potential for a simple yet powerful tool to completely transform the way people craft, design, and DIY. Since then, we continue to innovate with new machines, platforms, materials, and tools. Who are we? A bustling worldwide community, a means for connection, and an outlet for unbridled creativity. We value, hard work, getting things done and having fun while we do it. The Cricut team is dynamic, diverse, and inclusive, join us as we place the power of handmade into the hands of ALL. 

Perks & Culture  

Our team is AMAZING, we cannot wait for you to meet everyone. Our cultural mantras and values are not just a poster on the wall. We ask tough questions, entertain ideas outside of our own, and work together to make something that is bigger than ourselves. Cricut’s growth will not be stopped, upon joining Cricut you will be welcomed into a global community with coworkers located in China, the U.K., Australia, New Zealand, as well as Europe and South America (just to name a few.) We train, develop, and celebrate great work; not to mention we throw an unbelievable water balloon fight and a Halloween party that will leave you planning your costume for next year all year long.  

Perks: 

We take care of our team. From outstanding medical, dental, vision, and retirement benefits, to pet insurance, 401K match, paid Parental Leave, life insurance, wellness incentive programs, paid time off, on-site massages, phenomenal work-life balance, and employee discounts.  

Job Description

Cricut is looking for a highly motivated and talented Senior Swift Engineer with excellent qualifications to help design and build cross platform libraries and tools to communicate directly with Cricut machines. The position demands a candidate capable of doing high-quality work against technical and schedule challenges, while following strong software design and process principles. You will work in a fast-paced environment, to deliver world class products that delight our customers and help grow the business. You live for the best customer experience and passionate about building great software. You are a driver of change and you have yet to meet a technology challenge you cannot resolve.

Responsibilities

  • Work collaboratively with fellow department members, product managers, firmware engineers, test engineers, and designers to develop cross platform (iOS, Android, macOS, Windows) libraries and tools which interface directly with Cricut machines through USB and Bluetooth interfaces (BLE and Classic)
  • Developing new features, enhancing existing features and improving the quality of the libraries and tools
  • Apply software engineering design patterns to develop well-structured, modular, performant application code
  • Perform code reviews, write unit and integration tests, and contribute to architectural planning and refactoring
  • Ensure best coding practices
  • Training, mentorship, and development of junior team members

Qualifications

  • B.S. or M.S. in Computer Science, Software Engineering or comparable field with 5+ years relevant experience

Required Skills

  • Proficient in C/C++ programming language
  • Experience with advanced C++ tools and concepts such as the Standard Template Library (STL), Smart Pointers, Threading & Mutexes
  • A solid grasp of fundamental algorithms, data structures, and design patterns
  • Experience with development of communications protocols
  • Experience in unit and integration testing
  • Experience with Git in a collaborative environment (pull requests, branching strategies, tags, etc.)
  • Experience in continuous integration and delivery (e.g. Bitrise)
  • Strong knowledge of and experience with Systems Development Life Cycle and Scrum/Agile methodologies
  • High critical thinking skills to evaluate alternatives and present solutions that are consistent with business objectives and strategy
  • Ability to communicate effectively, both written and verbal, with technical and non-technical multi-functional teams
  • Aptitude and desire to independently learn new technologies

Bonus Skills

  • Experience in developing Android, iOS, Windows and macOS libraries/frameworks
  • Experience with CMake – ability to read, understand, and help contribute to current build procedures for cross platform maintainability
  • Experience with Kotlin programming a huge plus
  • Experience with package managers (npm, CocoaPods, SwiftPM, etc.)
  • Strong Linux command line skills
  • Experience consuming RESTful JSON/XML web services
  • Expertise in USB and Bluetooth (Classic and BLE)
  • Experience with OpenCV

Additional Information

  • Equal Opportunity: Cricut is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees and members. Applicants will be considered based on their qualifications and without regards to age, race, ethnicity, gender identity or expression, national origin, religion, physical or mental disability, protected veteran states, sex (including pregnancy), sexual orientation or any other protected characteristic protected by applicable laws, regulations or ordinances. 
  • ADA: If you require reasonable accommodation during the application or selection process please do not hesitate to reach out to Cricut HR or your assigned recruiter.