Senior Backend Developer (Python)
Looks like this career opportunity is no longer available. We know this isn't what you were hoping for, but we have many other great remote jobs for you to check out.
Start a new search to view all remote jobs at teams that are currently hiring.
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.
- Ambition & Balance. You aspire to put a dent in the universe. To do this, you set high standards for yourself and those around you. The time you spend on work isn’t measured by quantity, but by quality.
- 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.
How we work
On 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.
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 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.
- Lead a squad. 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.
- 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 our values resonate with yours and you see how they can act as guide 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.
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 October 9th. Invitations to the hiring process will be sent by October 12th. The process will be as follows:
- Interview with Roman I., our Head of Backend Development.
- We’ll ask you to complete a test task.
- Interview with Thomas J., a member of our Backend team.
- Interview with Gonçalo S., our CTO.
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:
- 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 [email protected]