FOSS Backend Engineer at New Vector (Go, Python, Node)

New Vector is the open source software development startup which employs the core team behind Matrix.org – the leading project for secure open decentralised communication. Matrix’s mission is to create a universal open network and protocol for real-time communication. New Vector builds flagship apps for Matrix such as Riot.im as well as contributing to the core Matrix open source clients, SDKs, servers, bridges and the protocol itself.

We believe that the future of the internet should be decentralised and open, that previously siloed communications platforms should be interoperable and that individuals should control their own data and choose who they share it with.

Ultimately, our aim is to make it as simple to message or video call anyone in the world as it is to send them an email.

Our products are for everyone and we know we cannot succeed without a diverse team. Our hiring process is designed to be humane and give candidates the best possible chance to show us what you can do. If we ever fall down on this, please let us know.

The Role

As an early stage startup the role is very broad. Some example projects in flight right now include:

Get Dendrite into Production – Dendrite is our next generation homeserver written in Go, split into ~10 separate microservices which are connected via append-only logs. Each service has its own datastore and can cluster arbitrarily wide, theoretically letting a single deployment horizontally scale up to hundreds of millions of users, whilst also letting individual services be hot-redeployed for maximum availability. Alternatively, you can link all of the services into a single ‘monolith’ binary which can scale down to run on a Raspberry Pi. Dendrite was designed to address Synapse’s limitations of being single core, single DB-writer with no type safety- and when ready will be one of the most advanced open source messaging servers on the planet. All it needs is for the remaining Matrix APIs to be implemented!

Improve Synapse Performance – With thousands of deployments in production today, Synapse is the dominant homeserver implementation in the Matrix ecosystem and the technology that backs the matrix.org homeserver. Written in Python/Twisted, there is massive scope for performance improvements as the schema and algorithms were originally written to prove the Matrix APIs rather than for efficiency. Today the Synapse deployment on matrix.org supports 30K daily active users, but that figure is growing exponentially and it is vital that we keep pace with the growth of the network.

Building out our App store and integration hosting platform (codename Scalar). Helping to extend the existing interfaces between matrix and other platforms as well as creating paid, hosted apps and integrations for use in the Matrix ecosystem.

Our backend projects are written in Go (Dendrite, Scalar) as well as Python (Synapse) and Node.js (Bridges)

Since almost everything we do is open source you can get a good feel for exactly what it would be like to work on these projects, and similarly joining dev-centric channels such as #matrix-dev:matrix.org or #dendrite-dev:matrix.org provides a window into the core team and the community. Come and say hi!

We have multiple backend positions open at a range of experience levels. If you are junior, we’ll hire for potential, if you are senior we’ll place value in your experience to date.

About you

The most important thing is that you believe passionately in the mission of decentralisation of the internet. More specifically that you believe that communications should not be centralised in the hands of a small number of very large organisations and instead individuals should control their own data and choose who they share it with.

Additionally, we are looking for someone who:

Is good at finding clean and elegant solutions to problems

Likes to ship early and often

Likes to write tests :)

Cares about what they do

Is articulate and empathetic.

Is comfortable with the pace, trade offs and ambiguity of an early stage startup (specifically: how to take care of yourself and get your work done without working crazy hours).

Your experience

We don’t have hard requirements for the role, we just want to build the best possible team, but as a bonus it would be great if some of the following are true.

Experience of designing, building and maintaining distributed systems at scale

Experience maintaining and/or contributing to open source projects

Experience with Go (and to a lesser extent Python and Node)

Designing RESTAPIs with flexibility and extensibility in mind.

Experience working in a continuous delivery environment

Experience in IM or VoIP communications

Benefits

Our general approach is to treat people like adults and acknowledge that by being flexible we create an environment for people to do their best work. For more details here is our manifesto. That said specific points that differentiate us.

Work (almost) full time on FOSS projects with high visibility and a large enthusiastic community

Since our technology is relevant to anything that requires real-time comms, the role provides exposure to a wide range of domains from web and app dev through to VR, VoIP and IoT.

Health, dental and travel insurance.

Family friendly environment, many of the team have small children and we look to accommodate that as best we can.

People tend to stay with the company for a long time, we take this a sign that we have a cohesive supportive culture, that we have engaging challenging work and that people can develop their skills and careers here for the long term.

Free ‘good’ coffee.

We like food a lot, we have some excellent chefs on the team, and Chiswick has some great places for lunch. You will eat well :)

New Vector does not discriminate on the basis of race, sex, colour, religion, age, national origin, marital status, disability, veteran status, genetic information, sexual orientation, gender identity or any other reason prohibited by law in provision of employment opportunities and benefits.