Technical content authored by engineers, for engineers.

-
When IN(…) is Not Enough
Use JSON_TABLE to unlock better prepared statement performance when IN(…) falls short.
-
Building a Living Design System
How We Created an Automated Android Component Catalog That Actually Works
-
Implementing a local notification scheduler in Todoist iOS
How we worked around iOS-imposed local notification scheduling limitations
-
Filter Assist: AI-Generated Filters in Todoist
We made Todoist's filters even more powerful with GPT capabilities.
-
Our donations to OSS during 2024
A heartfelt thank you to all creators and maintainers
-
AWS ECS-based Ephemeral consoles for production issue troubleshooting
How Ephemeral consoles enable timely and secure access to production environments, without compromising on accountability
-
Booleans and B-tree Indexes: A Cautionary Tale
Fixing an unintuitive issue with MySQL indexes and boolean columns
-
Decoding DORA Metrics at Doist
How DORA metrics can revolutionize software delivery and offer in-depth insights into operational performance.
-
Regular and Computed Booleans in MySQL
Assessing computed columns as a production-ready alternative to flags
-
Improving our Android app's startup time by 20%
How Baseline Profiles helped the Todoist phone and Wear OS apps get faster easily
-
Feature Flags in Next.js with iron-session
How we use iron-session to implement feature flags in Next.js
-
Our donations to OSS during 2022
A heartfelt thank you to all creators and maintainers
-
Async Engineering Mentorship
How to excel at mentoring Engineers in an asynchronous team
-
Async test projects in practice
Improve your insight of a candidate’s approach to their day-to-day work
-
Server-Driven UI from a Mobile Perspective
How we ended up building our own SDK for Adaptive Cards
-
Synchronised Browser Debugging
Emulating Adam Argyle’s Debugging Corner setup
-
Async whiteboard coding
Evolving our hiring test project for clarity and speed
-
Choosing a Multiplatform Stack
Revisiting and assessing some of the technologies with potential to share common business logic
-
How to use Android's x86 emulators on M1 Macs
Leveraging another PC for unsupported Android emulators
-
Continuous Deployment for iOS
How we ship our iOS apps faster and easier
-
Kotlin Multiplatform on the Web
An exploration on using a shared library from Android and iOS on the Web
-
Building a newbie-friendly codebase
Tips for building codebases that are easy to onboard new people
-
We release our Android apps every day
How we’ve moved from manual to automated releases
-
Debugging the UI of Third-Party iOS Apps
Discover how other developers build specific UI components
-
Embeddable Todoist
This is not an official project, but a fun one nonetheless.
-
Designing Explainable Machine Learning Products
Why explaining Machine Learning is so important