Senior Software Engineer, Backend
We are looking for an experienced systems engineer to design and implement deployment automation, automatic failover, reliable backup/restoration, and scalable data storage strategies that can be distributed globally.
Our technology stack is based on Haskell, Postgres, NixOS and we deploy to AWS with NixOps. Our ideal candidate is well versed in all these technologies, but most importantly has experience managing, scaling and monitoring high performance web services with any stack.
Additionally, we desire candidates with continuous deployment/delivery experience.Candidates should be familiar with being part of an on-call rotation, and developing a runbook.We rely on our continuous integration server to build, run tests, and provide binary caches of compiled assets to accelerate compilation. We automate anything we can. We know the value of a two line shell script and a one step build.
A typical week might include
- Designing a strategy for horizontally sharing our database.
- Implementing gracefully server shutdown on runaway memory consumption.
- Adding real-time metrics hooks to key areas in the code base, and adding alerts to our monitoring system.
- Developing a offline database jobs system, for zero downtime migration.
- Redesigning existing API’s to common industry practices (HATEOAS, cacheable urls, etc.).
- Profiling slow requests and implementing improvements.
- Addressing production issues from our existing clients.
- Fixing bugs and adding tests to our automated suite.
- Professional Haskell experience is desired but not required. Haskell expertise is required.
- BA/BS in Computer Science, related technical field or equivalent practice experience.
- Minimum 4 years experience writing scalable, reliable software.
To apply, send your cover letter/resume to firstname.lastname@example.org