<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Doist Engineering</title><description>Technical content authored by engineers, for engineers.</description><link>https://www.doist.dev/</link><language>en-us</language><item><title>Optimizing GRDB in Todoist for iOS</title><link>https://www.doist.dev/optimizing-grdb-in-todoist-for-ios</link><guid isPermaLink="true">https://www.doist.dev/optimizing-grdb-in-todoist-for-ios</guid><description>The hidden cost of LEFT JOINs in GRDB</description><pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate><author>Andris Zālītis</author></item><item><title>Building Ramble #3: Visualizing the Waveform</title><link>https://www.doist.dev/building-ramble-3-visualizing-the-waveform</link><guid isPermaLink="true">https://www.doist.dev/building-ramble-3-visualizing-the-waveform</guid><description>How we render a smooth, real-time audio waveform with Canvas in the browser</description><pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate><author>Ricardo Amaral</author></item><item><title>Building Ramble #2: Capturing Audio in Real-Time</title><link>https://www.doist.dev/building-ramble-2-capturing-audio-in-real-time</link><guid isPermaLink="true">https://www.doist.dev/building-ramble-2-capturing-audio-in-real-time</guid><description>The unexpected challenges of streaming microphone audio through modern browser APIs</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><author>Ricardo Amaral</author></item><item><title>Building Ramble #1: Taming the Microphone</title><link>https://www.doist.dev/building-ramble-1-taming-the-microphone</link><guid isPermaLink="true">https://www.doist.dev/building-ramble-1-taming-the-microphone</guid><description>The surprising complexity behind asking users for microphone permission on the Web</description><pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate><author>Ricardo Amaral</author></item><item><title>Orchestrating our UI test suite with Maestro</title><link>https://www.doist.dev/orchestrating-ui-tests-with-maestro</link><guid isPermaLink="true">https://www.doist.dev/orchestrating-ui-tests-with-maestro</guid><description>How we nailed reliability, halved costs, and improved runtime performance of our tests</description><pubDate>Thu, 20 Nov 2025 00:00:00 GMT</pubDate><author>Prateek Prasad</author></item><item><title>Bitmapist</title><link>https://www.doist.dev/bitmapist</link><guid isPermaLink="true">https://www.doist.dev/bitmapist</guid><description>How we built an open-source analytics tool that saved millions and transformed our decision-making</description><pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate><author>Amir Salihefendic</author></item><item><title>When IN(…) is Not Enough</title><link>https://www.doist.dev/in-mysql</link><guid isPermaLink="true">https://www.doist.dev/in-mysql</guid><description>How to improve MySQL performance using JSON_TABLE in place of IN(…).</description><pubDate>Thu, 19 Jun 2025 00:00:00 GMT</pubDate><author>Artyom Pervukhin</author></item><item><title>Building a Living Design System</title><link>https://www.doist.dev/android_component_catalog</link><guid isPermaLink="true">https://www.doist.dev/android_component_catalog</guid><description>How We Created an Automated Android Component Catalog That Actually Works</description><pubDate>Fri, 13 Jun 2025 00:00:00 GMT</pubDate><author>Pedro Santos</author></item><item><title>Implementing a local notification scheduler in Todoist iOS</title><link>https://www.doist.dev/implementing-a-local-notification-scheduler-in-todoist-ios</link><guid isPermaLink="true">https://www.doist.dev/implementing-a-local-notification-scheduler-in-todoist-ios</guid><description>Reliably schedule large amounts of local notifications on iOS</description><pubDate>Wed, 08 Jan 2025 00:00:00 GMT</pubDate><author>Nolan Warner</author></item><item><title>Filter Assist: AI-Generated Filters in Todoist</title><link>https://www.doist.dev/filter-assist</link><guid isPermaLink="true">https://www.doist.dev/filter-assist</guid><description>How we leveraged AI to assist users when using our filter feature.</description><pubDate>Thu, 14 Mar 2024 00:00:00 GMT</pubDate><author>Natalie Mclaren</author></item><item><title>Our donations to OSS during 2024</title><link>https://www.doist.dev/our-donations-to-oss-in-2023</link><guid isPermaLink="true">https://www.doist.dev/our-donations-to-oss-in-2023</guid><description>Why and how we donated $5,189 across 17 projects and maintainers during 2024</description><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate><author>Henning Muszynski</author></item><item><title>AWS ECS-based Ephemeral consoles for production issue troubleshooting</title><link>https://www.doist.dev/ephemeral-consoles</link><guid isPermaLink="true">https://www.doist.dev/ephemeral-consoles</guid><description>The journey of how we built an ephemeral consoles system to enable timely and secure access to production environments, without compromising on accountability.</description><pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate><author>Artyom Pervukhin</author></item><item><title>Booleans and B-tree Indexes: A Cautionary Tale</title><link>https://www.doist.dev/is-mysql</link><guid isPermaLink="true">https://www.doist.dev/is-mysql</guid><description>Are you sure your indexes are being used?</description><pubDate>Thu, 30 Nov 2023 00:00:00 GMT</pubDate><author>Felipe &quot;Bidu&quot; Rodrigues</author></item><item><title>Decoding DORA Metrics at Doist</title><link>https://www.doist.dev/decoding-dora-metrics-at-doist</link><guid isPermaLink="true">https://www.doist.dev/decoding-dora-metrics-at-doist</guid><description>How DORA metrics can improve software delivery and offer in-depth insights into operational performance.</description><pubDate>Fri, 20 Oct 2023 00:00:00 GMT</pubDate><author>Henning Muszynski</author></item><item><title>Regular and Computed Booleans in MySQL</title><link>https://www.doist.dev/computed-booleans</link><guid isPermaLink="true">https://www.doist.dev/computed-booleans</guid><description>A comparison between regular boolean fields and MySQL&apos;s Computed Columns along the rationale behind changes in our codebase</description><pubDate>Thu, 06 Jul 2023 00:00:00 GMT</pubDate><author>Felipe &quot;Bidu&quot; Rodrigues</author></item><item><title>Improving our Android app&apos;s startup time by 20%</title><link>https://www.doist.dev/android-app-baseline-profiles</link><guid isPermaLink="true">https://www.doist.dev/android-app-baseline-profiles</guid><description>How Baseline Profiles helped the Todoist phone and Wear OS apps get faster easily</description><pubDate>Wed, 03 May 2023 00:00:00 GMT</pubDate><author>Afzal Najam</author></item><item><title>Feature Flags in Next.js with iron-session</title><link>https://www.doist.dev/feature-flags-iron-session-nextjs</link><guid isPermaLink="true">https://www.doist.dev/feature-flags-iron-session-nextjs</guid><description>Server side, Middleware and API route feature flags in Next.js with iron-session</description><pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate><author>Anton Ball</author></item><item><title>Our donations to OSS during 2022</title><link>https://www.doist.dev/our-donations-to-oss-in-2022</link><guid isPermaLink="true">https://www.doist.dev/our-donations-to-oss-in-2022</guid><description>Why and how we donated $7295 across 14 projects and maintainers in 2022</description><pubDate>Fri, 30 Dec 2022 00:00:00 GMT</pubDate><author>Gonçalo Silva</author></item><item><title>Async Engineering Mentorship</title><link>https://www.doist.dev/async-engineering-mentorship</link><guid isPermaLink="true">https://www.doist.dev/async-engineering-mentorship</guid><description>Master the art of onboarding and mentoring Engineers asynchronously</description><pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate><author>Pedro Santos</author></item><item><title>Async test projects in practice</title><link>https://www.doist.dev/async-test-projects-in-practice</link><guid isPermaLink="true">https://www.doist.dev/async-test-projects-in-practice</guid><description>An alternative test project format for your interviews</description><pubDate>Wed, 16 Nov 2022 00:00:00 GMT</pubDate><author>Jan Kratochvíl</author></item><item><title>Server-Driven UI from a Mobile Perspective</title><link>https://www.doist.dev/server-driven-ui-from-a-mobile-perspective</link><guid isPermaLink="true">https://www.doist.dev/server-driven-ui-from-a-mobile-perspective</guid><description>The what, why and how of Server-Driven UI at Doist from a Mobile perspective</description><pubDate>Fri, 23 Sep 2022 00:00:00 GMT</pubDate><author>Pedro Carrasco</author></item><item><title>Synchronised Browser Debugging</title><link>https://www.doist.dev/synchronised-browser-debugging</link><guid isPermaLink="true">https://www.doist.dev/synchronised-browser-debugging</guid><description>How to synchronise browser debugging</description><pubDate>Thu, 18 Aug 2022 00:00:00 GMT</pubDate><author>Anton Ball</author></item><item><title>Async whiteboard coding</title><link>https://www.doist.dev/async-whiteboard-coding</link><guid isPermaLink="true">https://www.doist.dev/async-whiteboard-coding</guid><description>Aligning our hiring with our day-to-day work</description><pubDate>Fri, 15 Jul 2022 00:00:00 GMT</pubDate><author>Rastislav Vaško</author></item><item><title>Choosing a Multiplatform Stack</title><link>https://www.doist.dev/choosing-a-multiplatform-stack</link><guid isPermaLink="true">https://www.doist.dev/choosing-a-multiplatform-stack</guid><description>Revisiting and assessing some of the technologies with potential to share common business logic</description><pubDate>Thu, 28 Apr 2022 00:00:00 GMT</pubDate><author>Nuno Baldaia</author></item><item><title>How to use Android&apos;s x86 emulators on M1 Macs</title><link>https://www.doist.dev/how-to-use-x86-emulators-on-m1-macs</link><guid isPermaLink="true">https://www.doist.dev/how-to-use-x86-emulators-on-m1-macs</guid><description>Leveraging another PC for unsupported Android emulators</description><pubDate>Tue, 15 Mar 2022 00:00:00 GMT</pubDate><author>Afzal Najam</author></item><item><title>Continuous Deployment for iOS</title><link>https://www.doist.dev/continuous-deployment-for-ios</link><guid isPermaLink="true">https://www.doist.dev/continuous-deployment-for-ios</guid><description>Making our deployment better with continuous improvements</description><pubDate>Tue, 15 Feb 2022 00:00:00 GMT</pubDate><author>Hiroki Nagasawa</author></item><item><title>Kotlin Multiplatform on the Web</title><link>https://www.doist.dev/filterist-kotlin-multiplatform-javascript-exploration</link><guid isPermaLink="true">https://www.doist.dev/filterist-kotlin-multiplatform-javascript-exploration</guid><description>Breaking native boundaries by using shared code</description><pubDate>Thu, 20 Jan 2022 00:00:00 GMT</pubDate><author>Pedro Alves</author></item><item><title>Building a newbie-friendly codebase</title><link>https://www.doist.dev/building-a-newbie-friendly-codebase</link><guid isPermaLink="true">https://www.doist.dev/building-a-newbie-friendly-codebase</guid><description>Make your codebase easy for everyone to get acquainted with</description><pubDate>Thu, 02 Dec 2021 00:00:00 GMT</pubDate><author>Pedro Santos</author></item><item><title>We release our Android apps every day</title><link>https://www.doist.dev/android-app-continuous-deployment</link><guid isPermaLink="true">https://www.doist.dev/android-app-continuous-deployment</guid><description>How we setup Android apps continuous deployment</description><pubDate>Wed, 13 Oct 2021 00:00:00 GMT</pubDate><author>Piotr Wilczek</author></item><item><title>Debugging the UI of Third-Party iOS Apps</title><link>https://www.doist.dev/debugging-the-ui-of-third-party-ios-apps</link><guid isPermaLink="true">https://www.doist.dev/debugging-the-ui-of-third-party-ios-apps</guid><description>Discover how other developers build specific UI components</description><pubDate>Wed, 15 Sep 2021 00:00:00 GMT</pubDate><author>Enric Enrich</author></item><item><title>Embeddable Todoist</title><link>https://www.doist.dev/embeddable-todoist</link><guid isPermaLink="true">https://www.doist.dev/embeddable-todoist</guid><description>This is not an official project, but a fun one nonetheless.</description><pubDate>Tue, 24 Aug 2021 00:00:00 GMT</pubDate><author>Seva Zaikov</author></item><item><title>Designing Explainable Machine Learning Products</title><link>https://www.doist.dev/designing-explainable-machine-learning-products</link><guid isPermaLink="true">https://www.doist.dev/designing-explainable-machine-learning-products</guid><description>Mistrust often comes from a lack of understanding</description><pubDate>Tue, 20 Jul 2021 00:00:00 GMT</pubDate><author>Dominic Monn</author></item></channel></rss>