Continuous Deployment Cloud Hosting
Platform.sh is a groundbreaking hosting and development tool for web applications. We’re a European VC-Backed scaleup with a host of blue-chip Enterprise clients and a string of awards and grants. To reinforce our technical prowess, we are looking to grow our engineering team. If you’re looking for an exciting, high-growth opportunity with an award-winning, cutting-edge company, this could be just the job for you.
We run dozens of cloud regions all over the world with a mix of clients from individual developers running small development clusters, to the biggest companies on earth that run some of their critical apps on us.
The company is fully distributed and remote first, with a strong accent on diversity and inclusion in all of its dimensions (gender, sexual orientation, race, country of origin - you have it, we want it). You won’t find any ableism of ageism either.
For its groundbreaking PaaS solution, https://platform.sh is looking for a Pythonian Cloud Engineer with a taste for Go, good Linux system understanding, and a real hunger for the challenges of building robust, distributed systems.
Platform.sh is a PaaS shrouded in a lot of black magic (we can consistently clone a whole running cluster, with its state, databases, indexes in a matter of seconds). We want to get this down to the hundreds of milliseconds domain. Interested? There is more...
- Our external API is pure Hypermedia REST + oAuth on top of Pyramid. It mechanizes the Git layer and needs more features.
- We can consistently generate from the same manifest a Docker container, an LXC one, or VM disk images (AWS, Azure, Google Cloud, OpenStack).
- We probably have the highest container density in the industry. We need to get it higher.
- We have been working hard on a fast, resilient, and cost-optimized observability framework in order to know how the system behaves, now we want to better predict how it will behave.
- We support any Python, Ruby, NodeJS, PHP, Java, and .NET, Elixir, of course, Elixir, time to roll-out Rust, somebody needs to push that button.
- We need to have more auto-healing on the high-availability clusters. We need more performance out of our multi-protocol ssh proxy. We need work on our Ceph Implementation; we have strictly cool things to do on the Edge. We need… great ideas on how to make Platform.sh even better. Interested? Join us!
This is a remote position and very occasional travel to cool places like Paris, France, may be required.
Skills & requirements:
- Be a really really good dev that likes testing, understands how an OS works, knows networking, how git works, and the constraints of a distributed system.
- Be proficient in Python or in Go (expertise in either or both, highly appreciated). But if you are a sufficiently fast learner and got a couple of other languages under your belt (such as Lua, Rust, Erlang, Ruby, or C …), we might bite.
Would be really great if you had:
- Experience with C / C++ (we contribute to a bunch of upstream projects, like LXC) is a plus; love of C or C++ not required
- Great knowledge of Git
- Good Networking background (routing/protocols)
- Good grasp of practical security and cryptography
- Good knowledge of how the Web works (hacking Nginx with Lua a plus). You may want to brush up on HTTP before the interview
- Good understanding of how database systems and search engines work
- A good notion on distributed systems (consensus protocols like Raft/Paxos, eventual consistency models, gossip protocols)
- Mad Debian Skills. Sporting a Debian plaid cloth during the interview is not frowned upon
To be clear so you are not surprised in the technical interview, this job is very much more for a systems engineer, rather than an application developer. So knowing about system calls is important, while knowing Django, not so much.
A bit about seniority, diplomas, and experience:
- We don’t care, at all, about diplomas, you have a Ph.D. in computer science? That is lovely! We love science. You are a self-taught hacker whose main deployment target for years was Arduino? You could very well be a match.
- We have senior juniors and junior seniors. Everybody is. Some of us have been coding for multiple decades. Some of us are fresh out of school. We expect you to have some very strong points. But we know everybody has continents of ignorance; that’s fine. As long as you love learning; you will be surrounded by people who love to share what they have learned.
- Specifically, there is a catch-22 for “seniority requirements” for underrepresented candidates. Try us. We will go the extra mile (more probably a kilometer btw). We will take into account any valuable candidate with less experience in DevOps and System roles if needs be.
A bit about the interview process:
- It is usually quite short. Two or three remote interviews. There will be no whiteboarding. Few if any algorithmic questions (unless you love those we would not like to frustrate the preppers).
- The people interviewing you are going to be people you may end up working with. The interviews are going to be a bit “all over the place” with a bunch of detailed questions. The point is less to get the right answer than to give a glimpse of your “technical intellectual world”. You do not remember by heart the flags on a TCP packet? Well, neither do we, but it is a good conversation starter.