We are looking for a Senior Software Engineer to join our small (< 10 developers) engineering team. Reporting to the CTO, you will be essential for designing, developing, and supporting code that runs every part of our hosted APM service, Scout APM (scoutapm.com)
Who you are
You are an experienced developer that has advanced knowledge of Ruby, with strong back-end and cloud skills. Aside from Ruby, you have experience using other languages in production environments and know when to use the right language/tool for the job. You are an organized self-starter, able to prioritize tasks and understand when, and when not, to spend time refactoring. You strive to write simple, clear, well documented, and well tested code. You embrace the DevOps philosophy of owning the code you produce through deployment and operation in production. You enjoy helping and mentoring other developers on the team and the idea of creating impactful developer tooling inspires you.
Among your responsibilities
- Help design and develop all parts of our infrastructure, Rails application, and ruby client library. You will be involved in all parts of our code base and infrastructure.
- Design maintainable data structures ingested from clients via API, stored in time series, key/value, and relational databases, and queried through our UI.
- Develop and maintain our ingestion pipeline, currently written in Go, backed by Kafka, processing over 50 million incoming agent payloads per day.
- Shared responsibility for managing AWS based infrastructure, participating in on-call rotation.
- Proactively monitor and scale compute and database infrastructure. Identify where our potential bottlenecks are and address them before they impact our service. Configure our monitoring systems to alert proactively.
- Diagnose and troubleshoot infrastructure stability issues in the rare cases of degraded performance or interruptions in service.
- Diagnose and troubleshoot APM agent issues from customers. Our Agent libraries are deployed to tens of thousands of different customer environments on-prem and cloud. Diagnose the root cause of an agent not reporting or not functioning on any number of diverse environments.
Ideally you are/have
- Advanced knowledge of Ruby
- Developed on a large Rails code base
- Strong programming fundamentals with experience in multiple languages (Go, Rust, or Python a plus!)
- Familiarity with different programming paradigms (e.g. functional, object-oriented, data flow)
- Experience in frontend web development with a SPA framework such as VueJS, React or Angular
- Comfortable with agile software processes
- Strong familiarity with cloud computing environments and infrastructure - AWS preferred
- Proponent of DevOps, GitOps, CI/CD, and the non-functional requirements that make them successful
- Knowledge of time-series challenges and datastores
- Operational knowledge of different Linux distros. Ubuntu, RHEL and derivatives, ArchLinux, etc.
- Knowledgeable in network and systems security as well as secure coding practices.
- Practice empathy and kindness, and you look to help others
Our technology soup
We use a lot of different technologies to get the job done: Ruby/Rails/Sinatra, Go/GoLang, Python, Rust, SaltStack, Terraform, lots of AWS (ELB, EC2/Linux, ElastiCache (Redis), RDS (Postgresql), S3, MSK, DynamoDB, TimeStream, Lambda ...), Vue, jQuery, Backbone, Highcharts, Kafka, InfluxDB, and more.
- Unlimited, responsible PTO policy
- Health, dental, vision insurance with HSA, as applicable
- Parental leave
- Dependent care FSA accounts
- Commuter benefits