Posted in

Senior Software Engineer – Distributed Systems

Senior Software Engineer – Distributed Systems

CompanyCensys
LocationMountain View, CA, USA
Salary$149150 – $190000
TypeFull-Time
Degrees
Experience LevelSenior

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.