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 an experimentation platform for complex systems. This Senior Software Engineer will help guide our team through architectural decisions, provide technical leadership, build high-quality software to address difficult and interesting problems, and work with our team and customers as we research potential product opportunities.

Requirements:

  • Engineering experience with demonstrated proficiency in two or more of the following languages:, Go, React, Node.JS, Typescript
  • 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

Primary responsibilities:

  • Enhance and evolve the Continuous Verification Platform
  • 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
  • Partner with module teams and customers through installations and support of the product
  • Engineer quality code worthy of top-tier enterprise deployment
  • Review and collaborate with other engineers on their code
  • Code with empathy and embrace a learning environment where you mentor and are mentored by your peers
  • Build internal and external facing documentation/demos to give our colleagues and customers confidence and understanding
  • Quickly surface obstacles to execution, gaps in understanding, and other symptoms of poor alignment
  • Contextualize and communicate engineering decisions to the team, and throughout the organization
  • 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 product and different modules.
  • 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.