Cricut is seeking a Site Reliability Engineer (SRE) to join Software Engineering team. The ideal candidate is an engineer that combines software and systems engineering to build and run large-scale, massively distributed, fault-tolerant systems. An SRE ensures that Cricut's services—both our internally critical and our externally-visible systems—have reliability and uptime appropriate to users' needs and a fast rate of improvement while keeping an ever-watchful eye on capacity and performance. The SRE will collaborate with leadership to propel the Cricut® brand and our site reliability to the next level.
- SRE is also a mindset and a set of engineering approaches to running better production systems—we build our own creative engineering solutions to operations problems. Much of our software development focuses on optimizing existing systems, building infrastructure and eliminating work through automation. As SREs are responsible for the big picture of how our systems relate to each other, we use a breadth of tools and approaches to solve a broad spectrum of problems. Practices such as limiting time spent on operational work, blameless postmortems and proactive identification of potential outages factor into iterative improvement that is key to both product quality and interesting and dynamic day-to-day work.
- SRE's culture of diversity, intellectual curiosity, problem solving and openness is key to its success. Our organization brings together people with a wide variety of backgrounds, experiences and perspectives. We encourage them to collaborate, think big and take risks in a blame-free environment. We promote self-direction to work on meaningful projects, while we also strive to create an environment that provides the support and mentorship needed to learn and grow.
- Experience building CI/CD pipelines and using pipeline tooling;
- Experience working heavily within an AWS cloud environment (RDS, EC2, Lambda, SQS, S3);
- Experience coding and scripting in a scripting language (Python) and working with RESTful APIs;
- Experience with production support issues, and how to remediate in a timely manner;
- Strong familiarity with infrastructure as code (Cloudformation);
- Experience working with applications requiring compliance audits;
- Demonstrated ability to work independently and desire to mentor junior team members;
- Support services before they go live through activities such as system design consulting, developing software platforms and frameworks, capacity planning and launch reviews;
- Maintain services once they are live by measuring and monitoring availability, latency and overall system health.
- Advanced level of English, good communication skills;
- BS/MS in Computer Science or equivalent experience;
- Experience with algorithms, data structures, complexity analysis and software design;
- Experience in one or more of the following: C, C++, Java, Python, Go, Perl or Ruby;
- Spinning up environments using AWS*Preferred qualifications;
- Interest in designing, analyzing and troubleshooting large-scale distributed systems;
- Systematic problem-solving approach, coupled with strong communication skills and a sense of ownership and drive;
- Ability to debug and optimize code and automate routine tasks.