Software Engineer

London, United Kingdom · Engineering

Description

Software Engineers are the core of our Engineering team at Pusher, working across the stack to deliver awesome products at massive scale.

Pusher

Pusher is a communication layer for application developers that routes data at scale and in realtime.

The current core Pusher product is a multi-tenant distributed system that allows our customers to deliver tens of billions of messages to their connected users. We operate at mind-boggling scale, and this informs and affects everything we do.

We want to improve the lives of other developers by solving hard problems for them, and by freeing them from operating and maintaining their own infrastructure. We’re passionate about developer experience and making our APIs as easy to use as we can.

What you will be doing

Pusher is a challenging but supportive environment. We are still small enough to be a team of generalist engineers with individual specialisms, so we want you to get involved with as much of our engineering lifecycle as possible. Your typical week might involve the following...

Coding

We’re a polyglot engineering team. We value using the right tool for the job over sticking to a single technology, although we have focused on Ruby, Go and Node for concurrent programming, with the occasional use of functional languages such as Haskell where it makes sense.

We also believe in using existing technologies wherever we can. We use Redis and MySQL extensively, and we use ZooKeeper, Consul and Kafka to manage our distributed platform.

Our engineering team also build and maintain everything that surrounds the core message bus and makes things easy for our customers to integrate, understand and use Pusher. This includes maintaining our open source integration libraries and our customer-facing dashboard (we have friendly front-end engineers to help you with this).

Design

You should expect to spend some of your time at Pusher designing new features and reviewing other people’s ideas.

On our core product, you will influence how our APIs are designed, and work with the rest of the team to bring new features to life. You may also take ownership of some of our integration libraries, and develop them further.

We also continually work on more exploratory ideas for new products, where we believe that great things emerge from small empowered teams unencumbered by too many outside opinions. We make sure engineers have the tools and time to explore new ideas and focus on novel solutions.

Operations

Our engineering team is heavily involved in operations, automation and testing, and you will be deploying, monitoring and maintaining a large production system using Puppet and Ansible. You should be intrigued by the technical challenge of automating processes and testing on a realtime, distributed, stateful platform.

Requirements

Personal Qualities

Practical Experience

We look for personal qualities as much as experience, but some of the things that might help are:

Bonus Points


Pusher is an equal opportunity employer and we value diversity and inclusion at our company. We welcome people of different nationalities, backgrounds, experiences, abilities and perspectives.


Benefits

What you get

Apply for this job