About Overleaf

Who We Are

Overleaf is a startup and social enterprise that builds modern collaborative authoring tools for scientists — like Google Docs for Science. We have over two million registered users from around the world. Our primary product is an online, real time collaborative editor for papers, theses, technical reports and other documents written in the LaTeX markup language.

Overleaf was founded by two mathematicians who were inspired by their own experiences in academia to create a better solution for scientific collaboration and communication. Now we are a team of thirty with about a dozen developers, based mainly in and around the UK and in the US.

About half of our development team joined us through our acquisition of ShareLaTeX, another major online LaTeX editor, last summer, and we've now integrated the two teams.

Our Tech

Overleaf is based on open source software, and following our integration with ShareLaTeX, around 80% of our product code is itself open source. You can find it on GitHub: https://github.com/sharelatex/sharelatex

We currently have two overlapping tech stacks, one from Overleaf and one from ShareLaTeX. We are working on merging them together into "Overleaf v2", which is now in public beta (https://www.overleaf.com/help/342) and will launch in time for the fall academic term in September 2018.

Overleaf v1 has a Ruby on Rails backend using PostgreSQL and redis, hosted mainly on Heroku. We also have several node.js services that we've extracted from our rails monolith. On the frontend, recent development has been with React in ES6, bundled with webpack.

Overleaf v2 and ShareLaTeX run on a node.js backend using MongoDB and redis, hosted mainly on Linode and managed with Chef. Here we use a microservice architecture, with about a dozen services. Mainly our code is written in CoffeeScript, but new code is being written in ES6 where possible. On the frontend, we mainly use Angular v1, with some newer components being written with React.

We use Docker to manage our development environments, and our devops team is currently working on moving our production infrastructure to Kubernetes. We support continuous delivery and typically deploy at least a few times a day (less on Fridays).

How We Work

Overleaf is remote-first — all founders and staff work remotely. We also have an office by King's Cross station for those in the London area, and we get the whole team together in London several times a year for face-to-face time.

We encourage flexible working. Our core hours are 2pm–5pm UK time, during which we have a 10–15 minute daily standup call for the whole development team. We have few standing meetings for developers, but we do many smaller video or voice calls for pairing or within project groups.

We don't yet have standing teams, but we form and dissolve smaller teams on a per-project basis; we try to give everyone the opportunity to serve as a team lead if they want to.

We always collect user feedback to inform our work. We have UX professionals on our team, and we run many surveys and user interviews.

We organize our work with Kanban. We use GitHub pull requests for each feature with code review to share knowledge and best practices (and catch bugs). We test thoroughly with automated unit and acceptance tests, supported by continuous integration (CI). We're also fans of linting to minimise bike-shedding (and to catch bugs).

How We Hire

The stages in our hiring process are typically:

  1. We will aim to update you on the status of your application within one week from when we receive it.
  2. We'll schedule a short video or voice call to discuss your application. This is a non-technical screening call, up to 30 minutes long, in which we get to know each other and assess whether there may be a good fit. In particular, we'll discuss logistics and your ambitions and expectations, and we may ask for clarifications on your application. This is also an opportunity for you to ask questions.
  3. We'll schedule a more in-depth interview, which is typically two hours long. The first hour is discussion, and the second hour is technical. For the technical, you'll have the option of either completing a homework assignment, which requires about one hour of your time before the interview, or solving a problem in the interview, if you prefer. The problems are practical in nature (no fizz-buzz or reversing linked lists), and you can use Google, man pages, etc., and ask us questions.
  4. We'll make an offer. We usually interview in batches, so there may be a short delay while we interview other candidates, but we will try to keep you informed throughout the process.

If you have a deadline, please let us know in your application, and we will try to be accommodating.

Current openings

No open jobs at this moment