Production Engineers at Cubic ensure that our systems run smoothly, our developers can
achieve speed and quality goals, and help us plan for future growth. As embedded team
members, our Production Engineers assist product-driven engineering teams and are key
contributors within our engineering efforts.
Production Engineering brings together many concepts around software, systems, and people
including Software Engineering, DevOps, Site Reliability Engineering (SRE), Systems
Administration, and Networking Engineering.
Production Engineering is a specialization focused on Reliability, Scalability, and Efficiency. Like
classical Software Engineers, PEs are expected to have solid development skills. More broadly,
they will also understand the operating systems (Linux), infrastructures (Azure), and networking
that our services and applications rely on.
Essential Job Duties and Responsibilities:
- Own backend services such as API Gateways and microservices, frontend-services, infrastructure components such as Kubernetes, Apache Kafka Apache Cassandra, deployment infrastructure such as Jenkins or GitHub, and everything in between.
- Partner with amazing engineers to help deliver high quality, scalable, and performant applications integral to millions of people’s daily lives
- Write and review code for tooling, develop documentation and capacity plans, and debug production challenges on 24x7x365 systems used to power people’s commutes and daily transportation needs
- Help develop observability, monitoring, and reaction processes and tools to keep our systems running at peak performance
- Support your engineering team by being an escalation contact for service incidents and sharing an on-call rotation
- Effective written and oral communication skills
- Analyze and solve complex software engineering problems
- Able to prioritize work and complete multiple tasks under deadline and budget guidelines
- May be required to travel domestically and internationally to include working odd hours, in-line with customer requirements
Minimum Job Requirements:
- Computer Science or Engineering degree, or a related technical discipline, or equivalent work experience
- Supporting Software as a Service infrastructure at scale (hundreds of thousands or millions of daily user)
- Coding in Java
- Deploying applications at cloud providers (e.g. Azure, AWS, Google Cloud)
- Configuring and maintaining applications such as web servers, API gateways, load balancers, relational storage, non-relational storage, streaming platforms, and messaging systems
- Learning custom software, frameworks, and APIs
- Kubernetes-based application deployments and monitoring (e.g. Graylog, Prometheus, and Grafana)
- Configuration management tools like Terraform, Chef, Salt, or other
- Operating systems and how applications interact with them (including using tools like ktrace/strace)
- Native mobile applications
- BASE architecture, multi-active data center, relational, non-relational, caching and streaming storage technologies, Eventual Consistency, CAP Theorem Tradeoffs, etc.
- CI/CD Pipeline configuration
- Observability of web and mobile applications (e.g. DynaTrace, Sentry, Prometheus, PagerDuty, GreyLog, Grafana)
- Multiple types of API Transports (e.g. REST, gRPC, GraphQL)
- Participating in software development partnerships
- U.S. Citizenship (improves intra-company mobility opportunities)