Senior Software Engineer at Verica

Verica is a software company specializing in Chaos Engineering and complex system management. Our product is an advanced Continuous Verification platform that proactively finds availability and security vulnerabilities in enterprise-scale systems.

Verica is looking for a Senior Software Engineer to help build a Kubernetes module for Verica’s Continuous Verification Platform, and we are hiring an engineer with deep Kubernetes experience for the team. This person is an “in the trenches” software engineer, but also occasionally zooms out to make product feature suggestions, consider architectural options, and speak with customers.

Requirements:

  • Engineering experience with demonstrated proficiency in two or more of the following languages: Go, React, Node.JS, Typescript
  • Demonstrated experience in coding against the Kubernetes API and/or coding Kubernetes components allowing you to:
    • Write controllers (operators) that reconcile CRDs
    • Control and observe a Kubernetes cluster programmatically
  • Extensive experience with Kubernetes from both an operational and development perspective allowing you to provide data- and experience-driven guidance regarding:
    • Common Kubernetes infrastructure and networking configurations and application design patterns
    • Common security and availability pitfalls in Kubernetes platform and applications
    • Canonical answers to questions regarding the Kubernetes ecosystem and k8s app development
    • Containers and container networking
    • How Kubernetes operators and/or users approach problem solving
  • Demonstrated ability to apply test driven philosophies
  • Ability to apply functional and object-oriented paradigms
  • Ability to identify and improve poor performing code
  • Talented in communicating complex ideas and concepts in a simple and concise manner
  • Demonstrated ability designing and interacting with complex persisted data models
  • Experience with SOA, micro-services, and/or distributed architectures
  • Working knowledge with infrastructure-as-code architecture and infrastructure automation
  • Strong software architectural skills with demonstrated ability to identify and analyze all trade-offs in every solution to determine a simple path forward.

Nice to have:

  • Experience in/knowledge of Chaos Engineering, safety engineering, resilience engineering
  • Experience with designing and maintaining large distributed systems including concepts like consensus, advisory locking, fault recovery, fail-stop vs fail-slow, infrastructure automation
  • Experience with load testing, scalability regression testing, and/or performance engineering
  • Experience writing and delivering on premise software, especially to enterprise clients
  • Contribution to CNCF projects or commercial k8s software

Primary responsibilities:

  • Work collaboratively with the engineering team to deliver consistent, incremental improvements to our product.
  • Engineer the most sophisticated module for uncovering systemic availability, security, and management vulnerabilities in Kubernetes:
    • Uncover systemic weakness in Kubernetes infrastructure and applications running on top of it
    • Enhance the CVP Kubernetes integration to support controlled experimentation of services deployed on Kubernetes to exercise these weaknesses
  • Engineer quality code worthy of top-tier enterprise deployment at a competitive pace.
  • Design, develop, test (unit/integration/etc), deploy and maintain application code and containerized architecture
  • Work with a variety of technologies: Postgres, gRPC, Redis, React, Typescript, Golang, Kafka, Kubernetes, IAM, AWS, GKE, Azure and more
  • Lead efforts to build efficient, scalable and maintainable architecture
  • Code with empathy and embrace a learning environment where you mentor and are mentored by your peers
  • Maintain alignment toward the product vision, which is allowing enterprise customers to understand and improve their complex systems by empirically defining and validating their safety margins in production.
  • Quickly surface obstacles to execution, gaps in understanding, and other symptoms of poor alignment.
  • Contextualize and communicate engineering decisions to the team and larger organization, mentor and knowledge share with the team
  • Promote psychological safety.
    • Maintain an inclusive environment.
    • Call out anti-inclusive behavior so it can be corrected.

How do we know when this person is successful?

  • Direct teammates consider this person to be a professional and skilled asset to the team. [Peer feedback is the most effective signal we have for individual contributor performance.]
  • We can pull this person aside at any time and ask them how their work contributes to the C-level’s vision, and it is clear that their current work is the highest priority in that narrative.
  • This person contributes directly and incontrovertibly to the success of the Kubernetes module.
  • This person’s manager concludes that as far as this person’s contribution is concerned, feature velocity proceeds at a competitive pace and code quality is on par with top tier enterprise deployment.