Senior Backend Engineer – Python at Doist
Senior Backend Engineer (Python)
Full-time – Remote
Doist’s mission is to build the future of work.
While the future of work concept has floated around as a trendy catchall, appearing in bland blog titles and uninspiring corporate webinars, do not be mistaken: Doist’s future of work is not their future of work.
Their future of work is more pings, tracking, and meetings. It’s trying to force the square peg of antiquated office work into the round and limitless circle of what work can be.
They approach the future of work from the past. We approach the future of work without assumptions. We’re not incrementally improving upon the past. We’re questioning everything and radically rethinking what’s possible.
As Doist builds the future of work, many more people across the globe will thrive, both professionally and personally.
By relying on our best-in-class tools like Todoist and Twist, and inspiration from our very own workflows we will empower people to turn their big ideas into reality by focusing on meaningful, high-value work. And we will enable people from anywhere to participate in the global economy, thanks to more effective collaboration across time zones and continents.
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.
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. Ensuring flawless cross-device sync and seamless sharing are two of the current challenges where you can make an impact.
Our codebase is far from perfect – a quirky in-house Python framework built by our founder and frequent circular dependencies are challenges representative of our codebase. We are working hard to evolve our 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 enjoy mentoring your colleagues, systematically repaying technical debt, and working with a highly resilient team. We are looking for devs who will help us continue evolving our solution architecture and overall quality.
Being a backend engineer is not just about churning out code. You get to lead projects from the cradle to the grave, work with our talented product leadership (filled with ex-engineers 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 consistent delivery and a high level of professionalism.
What you can expect to do on a regular basis:
- Create 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 technical debt which we systematically pay off. Often we do it while we make features as well as dedicating exclusive time to housekeeping.
- Be a present 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.
- Lead projects. Project leaders bear the ultimate responsibility for the success of their projects. In practical terms, they shepherd the overall planning and work and orchestrate its execution until the end of the cycle. They balance this activity with hands-on work.
- Be a Hero. A Hero is a developer whose main priority is working closely with support at triaging and fixing bug reports. They also help speed up reviewing processes and support other teams in their projects.
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 all the moving parts (DNS, HTTP, DBs, etc). You have designed, built, and maintained several projects or 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 another programming language.
- 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 architecture decision.
- You are familiar with MySQL or PostgreSQL and have experience with its quirks, weak spots and workarounds. 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 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.
Our perks and benefits are designed to support your ambitious goals and personal wellbeing. Here’s what that looks like:
- Work from anywhere. Doisters can work from anywhere in the world. We never place restrictions on locations.
- Design your own schedule. Work during the time of day that’s best for you. Doisters are encouraged to work 8-hour days and no more than 40 hours/week.
- Negotiation-free compensation package. Our formula-based salaries are calculated based on industry-benchmarked skills and geographical location no stressful negotiation required.
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.
- Continue your education. You’ll have a recurring budget to spend on attending conferences, taking courses, and purchasing books.
- Collaborate in-person at retreats. Our team- and company-wide retreats are unforgettable. The connections that we make in person inspire us throughout the year.
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.
- Subscribe to apps and services. You’ll have a monthly budget to spend on services that help you do your job: home internet, work apps, music subscription, etc.
- Purchase the hardware you need. Every Doister has access to a recurring budget to spend on work-related equipment.
Focus on your well-being
- Recharge with generous time off. Doisters get 8 weeks (40 days) of PTO per year to use as they wish on vacations and national holidays.
- Spend time with your new baby. 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. Take care of yourself with a monthly budget for things like a gym membership, healthy snacks, massages, health insurance, etc.