About the role
Job Description
* Dedicate most of your time to writing, reviewing, and shipping production code on your primary platform. * Use agentic coding tools as a core part of your daily workflow — AI-assisted code review, automated test generation, AI-augmented development — while maintaining code quality, security, and human oversight. * Design and build features end-to-end, from technical approach through implementation, testing, and release. * Apply established architectural patterns to keep your code modular, maintainable, and testable. * Collaborate closely with Product Management and UX to take defined features from spec to shipped experience, surfacing technical tradeoffs and feasibility early. * Build and maintain secure, reliable communication between client applications and Cricut hardware over Bluetooth, BLE, USB, and Wi-Fi. * Optimize application performance — startup time, memory usage, responsiveness, rendering, battery life, and network efficiency. * Ensure application security through encryption, secure authentication, certificate validation, and secure credential/key management. * Write and maintain automated tests for your features. * Drive CI/CD automation, release quality, and deployment processes for your platform (App Store, Google Play, or desktop distribution). * Ship behind feature flags with progressive rollout and kill-switches, validating new behavior with production telemetry before ramping. * Own release health through telemetry — tracking crash-free rate, performance budgets, and defect trends. * Participate in code reviews and share knowledge with other engineers on your platform. * Evaluate emerging platform, AI, and tooling technologies, and recommend adoption where they'd meaningfully improve your team's work.
Qualifications
* Bachelor's or Master's degree in Computer Science, Software Engineering, or a related field. * 8+ years of professional client/frontend software development experience, with deep, production-level expertise in one of: iOS, Android, or Electron/Angular. * Strong expertise in device connectivity — Bluetooth Classic, BLE (including GATT design), USB, and Wi-Fi (provisioning, mDNS/SSDP discovery) — along with real-world experience handling pairing, interference, bandwidth limits, and reconnection. * Experience developing backend APIs using at least one modern technology stack, such as .NET/ASP.NET Core, Node.js with NestJS/Express, Java with Spring Boot, or Python with FastAPI/Django. * Working knowledge of embedded hardware integration: firmware constraints, command protocols, calibration, OTA updates, and error handling/telemetry. * At least a year of hands-on, pragmatic use of modern AI engineering tools (Claude Code, Cursor, Copilot, etc.), with practical experience integrating AI/LLM capabilities where relevant (agentic patterns, evals, latency/cost/reliability tradeoffs). * Expert-level proficiency in the language matching your primary platform (Swift, Kotlin, or TypeScript). * Strong expertise in the native UI framework for your platform (SwiftUI/UIKit, Jetpack Compose, or Electron/Angular). * Strong understanding of your platform's concurrency model (Swift Concurrency, Kotlin Coroutines/Flow, or modern asynchronous JavaScript/RxJS). * Experience with architectural patterns such as MVVM, Clean Architecture, MVI, or component-based architecture. * Experience consuming REST APIs. * Strong debugging, profiling, and performance optimization skills using platform-native tools (Xcode Instruments, Android Profiler, or browser/Electron devtools). * Experience with automated testing (unit, integration, UI/end-to-end) and CI/CD pipelines. * Working knowledge of secure credential storage (Keychain, Android Keystore, or equivalent). * Experience instrumenting applications with telemetry/observability tools (e.g., Datadog, Firebase, or platform-native logging).
Soft Skills
* Communicates clearly with engineering, product, and design — written and verbal. * Collaborates well with Product Management and UX, building alignment on scope and tradeoffs. * Shares knowledge readily and helps other engineers on the team grow. * Stays curious about new tools and techniques, especially in AI-assisted development, and brings practical improvements to the team.