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.
- 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
- 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.