At Doist, our mission is to empower people with simple yet powerful tools.
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.
They are few, but they are mighty. From creating processes to decision-making and recruiting, we build our four core values into nearly every single thing we do.
We invite you to visit our blog to learn more about us, our values, and how we work.
As a Backend Engineer, you will propose, specify, implement, maintain and decommission code that powers Todoist for millions of active users through our diverse portfolio of apps and integrations. Contributing to an architectural revamp, ensuring flawless cross-device sync, and seamless sharing are some current opportunities where you can have a large impact.
Our codebase is far from perfect. An in-house Python framework that resembles Flask and circular dependencies are challenges representative of our codebase. We are working hard to modernize our stack and architecture, and build a backend that is rock-solid running on AWS and fun to work with. While Python is our main language today, we aim to reduce barriers across teams and stacks, and expect engineers to be comfortable reaching beyond language or framework boundaries when needed.
We're a great fit if you are independent and driven, thrive in understanding and evolving legacy systems, maintaining a high delivery cadence and quality, systematically repaying technical debt, mentoring colleagues, and working with a highly resilient team. We are looking for an engineer who will raise the bar for the team and help us continue evolving our momentum, solution architecture, and overall quality.
Being a Backend Engineer is not just about churning out code. You get to lead projects right from their inception, work with our talented leadership (filled with engineers-at-heart who understand the value of refactoring), and collaborate with adjacent teams to solve pain points our users face. Being a reliable partner is critical for our long-term success, so we value strong communication skills, consistent delivery, a high level of professionalism, and active participation in our culture of frequent, high-quality feedback exchange.