Backend Engineer
Doist
N/A
Job Details
Full-time
Full Job Description
At Doist, we're building the future of work.
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.
Our Core Values
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.
- Ambition. You aspire to put a dent in the universe. You set high standards for yourself and those around you. You solve issues that have a high impact on our customers and our company.
- Mastery. You care deeply about the quality of your work. You’re continuously learning and pushing yourself to the limits of your ability. As a champion of your craft, you are also a champion of your well-being – you work intensely, then disconnect completely.
- Independence. Others can trust that you’ll deliver on time. You keep your word and trust your teammates to do the same. You are proactive, take ownership, and remain accountable with little or no direction.
- Communication. Your communication is clear, concise, and engaging. You keep others in the loop and never go radio silent. You speak respectfully and foster warm relationships through your interactions. You’re culturally and socially aware and can appropriately navigate social situations.
We invite you to visit our blog to learn more about us, our values, and how we work.
About the role
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 client 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. A quirky in-house Python framework that resembles Flask built by our founder and frequent circular dependencies are challenges representative of our codebase. We are working hard to modernize our stack and architecture and build a backend that is fun to work on and rock-solid when running on AWS, our cloud vendor of choice.
We’re a great fit if you 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, and a high level of professionalism.
About you
It's important to us that the person we hire will thrive in this role. Here are some core things we believe will set you up for success:
- You have substantive professional experience with developing web services and understand the moving parts (DNS, HTTP, DBs, etc.). You have designed, built, and maintained projects and features that have been deployed to production.
- You are familiar with Python, know both its strengths (and how to capitalize on them) and weak points (and how to work around them), and you’re able to argue about them. You follow the evolution of the Python ecosystem. You’ve also used at least one other programming language professionally.
- You are familiar with OWASP Top 10 web app security risks and know how to avoid and mitigate them. You can assess the security implications of a pull request or an architectural decision.
- You are familiar with MySQL or PostgreSQL and have experience with their quirks, weak spots and workarounds. You care about 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 scripts to automate your work.
- You’ve written unit tests long enough to have a taste for what a good test looks like, are aware of current testing practices, and can argue about an approach’s merits and degenerate cases.
- You understand the value and cost of abstraction, are versed in current architectural practices, and judiciously apply programming principles like SOLID, DRY, YAGNI, etc.
- You yearn to be more than a mere executor, look for ways to inform the overall direction of the products you work on, and actively participate in sketching an implementation plan that focuses on value delivery with a well-derisked approach.
Requirements
Not sure the role is a good fit for you? That's okay! We'd still be happy to consider you. Here's what the process looks like:
- Submit your complete application by May 17 at 2PM UTC. This includes a resume (or manually entered experience) and thoughtful responses to all the application questions. No cover letter needed!
- Application screening. We read every application to understand your motivation, skills, and experience. Once your application has been reviewed, you'll receive a response regarding the status of your application.
- Value alignment interview with Gonçalo Silva, our CTO.
- Take-home test project. This will be your opportunity to showcase your role-specific skills.
- Role-specific interview with Luke Merrett, a member of our Backend team.
- Culture contribution interview with Alex Rodrigues, our Head of Infrastructure.
We estimate that we'll complete the whole process by the mid June.
Benefits
Our perks and benefits are designed to provide the freedom and support you need to grow personally and professionally. Here’s what that looks like:
The basics
- Work from anywhere in the world. We never place restrictions on locations.
- Design your own schedule. Work no more than 40 hours/week.
- Competitive pay. Our formula-based salary calculation provides a highly competitive rate based on your skills and location.
Expand your professional skills
- Pursue personal projects. All Doisters get one month per year to spend on a work-related project they’re passionate about
- Attend conferences. You’ll have a recurring budget to spend on attending conferences that grow your professional knowledge, skills, and network.
- Company retreats. Our annual company-wide retreats are unforgettable.
Craft your ideal work environment
- Cozy up at a coworking space. Find a coworking space that’s right for you and Doist will cover the expense.
- Apps and services budget. You’ll have a monthly budget to spend on services that help you do your job.
- Hardware budget. You’ll have access to a recurring budget to spend on work-related equipment.
Focus on your well-being
- Generous time off. Doisters get 8 weeks (40 days) of PTO/year to use as they wish on vacations and national holidays.
- Parental leave. New parents receive 5 weeks of paid parental leave in addition to 13 weeks of paid pregnancy-related medical leave.
- Invest in your health and wellness. You’ll have a monthly budget to spend on things like gym membership, healthy snacks, massages, health insurance, etc.
---
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 careers@doist.com (managed by Andrew Gobran & Allan Christensen from People team).