Doist is hiring a

Senior Backend Developer (Python)

Palo Alto, United States
Remote

At Doist, our mission is to inspire the workplace of the future by creating simple yet powerful productivity tools that promote a more fulfilling way to work and live.

We're a multidisciplinary, fully remote team that’s passionate about creating products, like Todoist and Twist, that improve people’s lives. We thrive on innovating new solutions to old productivity challenges and we seek to rethink how productivity tools are made.

When you become a Doister, you’re not only joining a global, remote-first company, but a team of 70+ people who value:

  • Independence. Others can trust that you’ll deliver on time and your teammates don’t need to worry about you keeping your word.
  • Mastery. You love what you do and care deeply about the quality of your work, down to the smallest details. You’re continuously learning and pushing yourself to the limits of your ability. You're never satisfied with the status-quo.
  • Communication. Your communication is clear, concise, and engaging whether you're explaining a complex idea or providing feedback to a teammate.
  • Balance. You're mindful about cultivating a healthy work-life balance. You care about the well-being of yourself, your team and the people around you.
  • Impact. You're able to take a bird's eye view to pinpoint and then solve issues that have a high impact on our customers, our team, and our company. You're committed to the health and success of both your teammates and Doist as a company.

We invite you to visit our blog to learn more about us, our values, and how we work.

The Doist Backend team is looking for a Backend Developer to grow Todoist 10x and Twist 100x in five years.

How we work

In the Backend team, we take care of all server-side code, infrastructure, and API. The main product work happens inside cross-disciplinary teams that we call squads. You can read more about how we manage projects on our blog. Also, we have a rotating role of so-called Hero, whose main responsibility is to triage support issues and fix the most pressing ones. Finally, we dedicate time to housekeeping and learning. We use Twist to keep ourselves on the same page. We use GitHub pull requests to review each other’s work. Once a week, we have a video chat to discuss the challenges of the past week and plan our work.

Day-to-day work

What you can expect to do on a regular basis:

  • Make features. From the proposal, through specification and implementation, to maintenance. Often these features are implemented as documented API endpoints. You're encouraged and expected to propose things that you think can be helpful for the product.
  • Provide feedback. When planning a feature, it's the job of senior developers of each team to provide feedback on expected challenges and unknowns as early as possible.
  • Improve the code. With time, our code and data structures accumulated some technical debt, which we pay off. Often we do it while we make features, but we also dedicate time to housekeeping.
  • Be a responsible team member. We do code reviews, refactor code, learn new things and share our knowledge. Occasionally you will be appointed as the mentor of newcomers.
  • Occasionally be a Squad Leader. Squad leaders bear the ultimate responsibility for the success of their projects. In practical terms, they plan the squad work and orchestrate its execution until the end of the cycle. They balance this activity with hands-on work within the same squad.
  • Occasionally be a Hero. A hero is a developer whose main priority is working closely with support at triaging and fixing bug reports. Also, they help speed up reviewing processes and support other teams in their projects.

Indicators that this could be a good role for you

  • You feel that your values resonate with ours, and you see how they can act as guidance for your day-to-day work.
  • You are fluent in written and spoken English.
  • You have at least 5 years of professional experience developing for the web.
  • You have experience with the entire software development life cycle. You have designed and built several projects or features that have been deployed to production.
  • You are familiar with Python, its quirks, weak spots, and workarounds. You can name at least three things which you don’t like in Python, and what is usually done to work around its limitations. You follow the evolution of the Python ecosystem.
  • Besides Python, you used at least one other programming language to create commercial or open-source products.
  • You are familiar with OWASP top10 web app security risks and know how to mitigate them. You can assess security implications of a pull request or an architecture decision.
  • You are familiar with MySQL or PostgreSQL and know at least some of its quirks, weak spots and workarounds. You can name at least one thing you don’t like in your database of choice and how to work around its limitations. You care and understand the performance impact of SQL queries your code makes, and have experience assessing and optimizing their performance.
  • You feel at home in the Unix shell. You are familiar with grep, and sed or awk. You often write bash or python console scripts to automate your work.
  • You’ve written unit-tests for your code long enough to have a taste of how a good test looks like, and follow testing best practices.
  • You understand the value and cost of abstraction and have a habit of making refactorings to follow best practices and apply programming principles such as DRY, SRP, YAGNI, etc.
  • You are familiar with some software design patterns and can implement them in Python.
  • You are familiar with making data-informed technical decisions, and have experience collecting data to back your decisions.

Requirements

A complete application includes:

  • A resume or manually entered experience (you can choose your preference).
  • Thoughtful, thorough responses to all the application questions.


Applications will be accepted until February 29th (or as long as the role is listed at doist.com/jobs). Interviews will be scheduled to begin during the first week of March.

Benefits

We’re bootstrapped, profitable, and committed to building a sustainable company that will grow for decades to come. We’ve built a benefits package that invests in our employee’s long-term personal and professional growth and well-being. Here’s a sample of what that includes:

  • Competitive compensation.
  • Flexible schedule & location. This is a fully remote position, so you can work from wherever you please and on a schedule that works best for you. All you need is a computer and access to a stable internet connection (which we sponsor!).
  • Generous paid vacation + national holidays. You’ll receive 40 days of paid time off to use on vacation and holidays.
  • Paid parental leave. 18 weeks of paid maternity leave and 5 weeks of paid paternity/adoption leave.
  • Health & well-being stipend. You’ll have a monthly budget to spend on the things that keep you happy and healthy like a gym membership, books, snacks, internet, and health insurance.
  • Amazing people. Being a part of the Doist team means you get to work with incredibly diverse, talented people who also enjoy having fun!
  • Annual company retreats. Although we work remotely, we still enjoy bringing the whole team together to get to know each other, bond, and have face-to-face discussions in places like Spain (2015), Iceland (2016), Greece (2017), Chile (2018), and the Azores (2019) .
  • Meaningful work. Working at Doist isn’t just about getting a job done; it’s about working together to positively influence people and teams all over the world.
  • So much more!

---

All information collected through this application is stored in Workable, Doist’s Applicant Tracking System, where it will be used for recruitment purposes only. For more information on how we handle candidate data at Doist, we invite you to review our recruitment privacy notice. For questions, please contact us at [email protected]

Similar jobs

Other jobs at Doist