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 Kafka module for Verica’s Continuous Verification Platform, and we are hiring an engineer with deep Kafka 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
  • Extensive experience with Kafka from both an operational and development perspective allowing you to provide data and experience-driven guidance
  • 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:

  • Work well with the engineering team to deliver consistent, incremental improvements to the product.
  • Engineer the most sophisticated module for uncovering systemic security and availability vulnerabilities in Kafka:
    • Enhance the CVP to integrate with Kafka.
    • Provide data- and experience-driven guidance regarding:
      • Common Kafka infrastructure configurations.
      • Common security and availability pitfalls in operations, which can be operationalized as verifications.
      • Canonical answers to questions regarding the Kafka ecosystem.
  • Enhance the Kafka module to uncover systemic weakness in applications that have a dependency on Kafka:
    • Enhance the CVP Kafka integration to support controlled experimentation of applications relying on Kafka.
    • Provide data- and experience-driven guidance regarding:
      • Common application design patterns atop Kafka infrastructure.
      • Common security and availability pitfalls in application deployment with respect to Kafka, which can be operationalized as verifications.
      • Canonical answers to questions regarding the application development atop Kafka.
  • Engineer quality code worthy of top-tier enterprise deployment, at a competitive pace.
  • Maintain alignment toward the product vision.
  • Quickly surface obstacles to execution, gaps in understanding, and other symptoms of poor alignment.
  • 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 Kafka 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.