Skip to content

Senior Software Engineer – Distributed Systems
Company | Censys |
---|
Location | Vienna, VA, USA |
---|
Salary | $149150 – $190000 |
---|
Type | Full-Time |
---|
Degrees | |
---|
Experience Level | Senior |
---|
Requirements
- A deep understanding of how the Internet works. For example, WHOIS, Certificate Subject Alternative Names (SANs), and DNS record types should not be foreign to you.
- 3+ years of experience building distributed and streaming applications.
- 5+ years of experience with common data-oriented programming languages, such as Golang, Python, or Scala.
- 3+ years of experience with continuous integration and continuous delivery tools and methodologies.
- Experience with REST/gRPC and service-oriented architectures.
- Ability to build horizontally scalable systems, with a high degree of availability and fault-tolerance, leveraging techniques such as distributed locking, load-shedding, etc.
- The ability to thoughtfully participate in technical discussions and drive towards data-driven decisions amidst ambiguity and competing priorities.
- Strong communication and documentation skills. Explaining complex technical concepts to other engineers, designers, salespeople, and content marketers is no problem for you.
Responsibilities
- Work to build a complete Attack Surface for our customers based on the data in the Censys Internet Map, combined with a number of other 3rd party data sources.
- Build and extend large scale, real-time streaming services and applications which leverage our massive datasets to power internal product APIs and external applications.
- You will be using and exploring multiple technologies, often being the first to try a new platform or architectural design.
- Design automated solutions for building, testing, monitoring, and deploying applications in a Continuous Integration (CI) and continuous Delivery (CD) environment.
- Maintain a strong customer focus, prioritizing customer feature requests and helping define the ASM roadmap.
Preferred Qualifications
- Familiarity with a service-oriented architecture using gRPC or REST to coordinate and communicate between services and systems.
- You have experience with microservice-based designs with GCP PubSub, etc, and know their tradeoffs.
- Experience building, deploying, and maintaining containerized services in a Kubernetes-based environment.
- You understand the value of building maintainable software. Some of your first tasks when building a new service are ensuring test coverage enforced by CI, adding linters, and adding code complexity checks. You enjoy a good abstraction, and promote established design patterns, but also know when to think outside the box.