41554 blogs · [ { "id": "01a0bb45-9fc3-72e2-8563-97ab22008495", "title": "Low Power Mode Is the Wrong Knob", "url": "https://julien.danjou.info/blog/low-power-mode-is-the-wrong-knob/", "published_at": "2026-09-15T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dac5271b1", "title": "Every Customer Gets the Same Software. That's Ending.", "url": "https://julien.danjou.info/blog/every-customer-gets-the-same-software/", "published_at": "2026-09-08T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dac99528c", "title": "Art Was Never About the Effort", "url": "https://julien.danjou.info/blog/art-was-never-about-the-effort/", "published_at": "2026-09-01T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dacdacd85", "title": "Your LLM Is Not a Colleague", "url": "https://julien.danjou.info/blog/your-llm-is-not-a-colleague/", "published_at": "2026-08-25T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dace48425", "title": "Steve Yegge Deleted the Wrong Thing", "url": "https://julien.danjou.info/blog/steve-yegge-deleted-the-wrong-thing/", "published_at": "2026-08-18T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dadda24a3", "title": "GitHub Actions Isn't a CI", "url": "https://julien.danjou.info/blog/github-actions-isnt-a-ci/", "published_at": "2026-08-11T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dae1b1e2d", "title": "The Human Is the New Bottleneck", "url": "https://julien.danjou.info/blog/the-human-is-the-new-bottleneck/", "published_at": "2026-08-04T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dae234471", "title": "The GitHub Platform Era Is Over", "url": "https://julien.danjou.info/blog/the-github-platform-era-is-over/", "published_at": "2026-07-28T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575daed9f3ae", "title": "Merge Queues Were Built for Humans. Agents Don't Wait.", "url": "https://julien.danjou.info/blog/merge-queues-built-for-humans/", "published_at": "2026-06-30T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dafaa626e", "title": "Agents Write My Code. Agents Review It. I Referee.", "url": "https://julien.danjou.info/blog/agents-write-and-review-my-code-i-referee/", "published_at": "2026-06-26T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dafb13fc2", "title": "Europe's Cloud Problem Isn't the Tech. It's the Mindset.", "url": "https://julien.danjou.info/blog/europes-cloud-problem-isnt-the-tech/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db07d3788", "title": "I Shipped a Rust Binary. I Can't Write Rust.", "url": "https://julien.danjou.info/blog/i-shipped-rust-i-cant-write-rust/", "published_at": "2026-06-09T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db0c25c54", "title": "How Much Of A Library Do You Actually Use?", "url": "https://julien.danjou.info/blog/how-much-of-a-library-do-you-actually-use/", "published_at": "2026-05-19T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db173c625", "title": "The Hidden Corruption Tax of AI Delegation", "url": "https://julien.danjou.info/blog/the-hidden-corruption-tax-of-ai-delegation/", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db2430173", "title": "The AI Free Lunch Is (Almost) Over", "url": "https://julien.danjou.info/blog/the-ai-free-lunch-is-almost-over/", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db2623f7b", "title": "Twenty Years of Stacking Commits", "url": "https://julien.danjou.info/blog/twenty-years-of-stacking-commits/", "published_at": "2026-04-28T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db2d90fc1", "title": "The Code Review Bottleneck Is You", "url": "https://julien.danjou.info/blog/the-code-review-bottleneck-is-you/", "published_at": "2026-04-21T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db3aa7b98", "title": "Fixing Alembic's Multiple Heads Problem with Git", "url": "https://julien.danjou.info/blog/fixing-alembics-multiple-heads-problem-with-git/", "published_at": "2026-04-14T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db467eb3c", "title": "An AI Agent Emailed Me", "url": "https://julien.danjou.info/blog/an-ai-agent-emailed-me/", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db4888093", "title": "The SaaSpocalypse Won't Kill SaaS", "url": "https://julien.danjou.info/blog/the-saaspocalypse-wont-kill-saas/", "published_at": "2026-03-31T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db522b6f7", "title": "How to Be a Great Software Engineer in 2026", "url": "https://julien.danjou.info/blog/how-to-be-a-great-software-engineer-in-2026/", "published_at": "2026-03-24T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db60b0f25", "title": "Your CI Pipeline Wasn't Built for This", "url": "https://julien.danjou.info/blog/your-ci-pipeline-wasnt-built-for-this/", "published_at": "2026-03-17T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db6f5db31", "title": "The Flow Is Gone", "url": "https://julien.danjou.info/blog/the-flow-is-gone/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db7080255", "title": "GitHub Is Thinking About Killing Pull Requests", "url": "https://julien.danjou.info/blog/github-is-thinking-about-killing-pull-requests/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db7722739", "title": "Open Source After the Extraction", "url": "https://julien.danjou.info/blog/open-source-after-the-extraction/", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db816db89", "title": "Open Source Is Getting Used to Death", "url": "https://julien.danjou.info/blog/open-source-is-getting-used-to-death/", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db832d262", "title": "How Entire Works Under the Hood", "url": "https://julien.danjou.info/blog/how-entire-works-under-the-hood/", "published_at": "2026-02-12T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db8e56ed9", "title": "Agent-Written Code Needs More Than Git", "url": "https://julien.danjou.info/blog/github-wont-work-for-ai-agents/", "published_at": "2026-02-11T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575db9d8ba46", "title": "So I Will Never Write Code Again", "url": "https://julien.danjou.info/blog/so-i-will-never-write-code-again/", "published_at": "2026-02-10T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dba744f9c", "title": "The Pre-AI Timestamp", "url": "https://julien.danjou.info/blog/the-pre-ai-timestamp/", "published_at": "2026-01-29T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbb34d04d", "title": "AI Won’t Kill Juniors. It Will Expose Seniors.", "url": "https://julien.danjou.info/blog/ai-wont-kill-juniors-it-will-expose/", "published_at": "2026-01-21T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbb6e1af6", "title": "Tech Is the Easy Part", "url": "https://julien.danjou.info/blog/tech-is-the-easy-part/", "published_at": "2026-01-13T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbc4be71e", "title": "GitHub Actions Pricing: The Platform Reality Check", "url": "https://julien.danjou.info/blog/github-actions-isnt-getting-greedy/", "published_at": "2025-12-18T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbcd093bd", "title": "The Future Is Being Built Elsewhere", "url": "https://julien.danjou.info/blog/the-future-is-being-built-elsewhere/", "published_at": "2025-11-26T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbd6f8314", "title": "AI feels like 1999 all over again", "url": "https://julien.danjou.info/blog/ai-feels-like-1999-all-over-again/", "published_at": "2025-11-06T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbdd80d1f", "title": "42 Lessons at 42", "url": "https://julien.danjou.info/blog/42-lessons-at-42/", "published_at": "2025-10-24T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbeb822ab", "title": "Building Features One Prompt at a Time", "url": "https://julien.danjou.info/blog/vibe-coding-a-feature-with-ai/", "published_at": "2025-08-26T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbf2bc145", "title": "The Em Dash Is Dead", "url": "https://julien.danjou.info/blog/the-em-dash-is-dead/", "published_at": "2025-08-05T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbf35056f", "title": "The Synthetic Wave Is Already Here", "url": "https://julien.danjou.info/blog/the-synthetic-wave-is-already-here/", "published_at": "2025-07-29T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dbfc49c86", "title": "The Day I Got Custom Table Legs", "url": "https://julien.danjou.info/blog/the-day-i-got-custom-table-legs/", "published_at": "2025-07-22T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc0b3d671", "title": "The Problem with OKRs Isn’t OKRs", "url": "https://julien.danjou.info/blog/the-problem-with-okrs-isnt-okrs/", "published_at": "2025-07-15T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc10ecc4a", "title": "AI Is a Human Interface Nightmare", "url": "https://julien.danjou.info/blog/ai-is-a-human-interface-nightmare/", "published_at": "2025-07-08T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc153864b", "title": "Not Everything is a Hustle", "url": "https://julien.danjou.info/blog/not-everything-is-a-hustle/", "published_at": "2025-07-01T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc15878cd", "title": "Why We Still Care About Quality", "url": "https://julien.danjou.info/blog/why-we-still-care-about-quality/", "published_at": "2025-06-24T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc2180f44", "title": "Why Engineers Shouldn’t Decide Your Cloud Strategy", "url": "https://julien.danjou.info/blog/why-engineers-shouldnt-decide-your/", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc287b86a", "title": "Marc Chagall Never Painted That", "url": "https://julien.danjou.info/blog/marc-chagall-never-painted-that/", "published_at": "2025-06-03T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc29f3e9e", "title": "Security Starts Where Convenience Ends", "url": "https://julien.danjou.info/blog/security-theater-is-not-security/", "published_at": "2025-05-27T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc331d1e2", "title": "Why French Tech Is Playing Not to Lose", "url": "https://julien.danjou.info/blog/why-french-tech-is-playing-not-to/", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc427e111", "title": "From Failure to Focus", "url": "https://julien.danjou.info/blog/from-failure-to-focus/", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc4485fe1", "title": "Not Just a Job, It’s a Ride", "url": "https://julien.danjou.info/blog/not-just-a-job-its-a-ride/", "published_at": "2025-04-15T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc4f0fb0b", "title": "When Great Tech Isn’t Enough", "url": "https://julien.danjou.info/blog/when-great-tech-isnt-enough/", "published_at": "2025-03-26T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc5ae055b", "title": "“It’s Complicated” Is Not an Excuse", "url": "https://julien.danjou.info/blog/its-complicated-is-not-an-excuse/", "published_at": "2025-03-11T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc5f22f6d", "title": "When Nobody Wants Your Product", "url": "https://julien.danjou.info/blog/when-nobody-wants-your-product/", "published_at": "2025-03-04T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc6ce0e0d", "title": "The Hidden Cost of Badly Typed Python Wrappers", "url": "https://julien.danjou.info/blog/the-hidden-cost-of-badly-typed-python/", "published_at": "2025-02-25T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc780fabf", "title": "The $100,000 Mistake", "url": "https://julien.danjou.info/blog/the-100000-mistake/", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc8436390", "title": "SaaS Pricing is Hard", "url": "https://julien.danjou.info/blog/saas-pricing-is-hard/", "published_at": "2025-02-04T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc8ff6fe1", "title": "Why We Left Heroku", "url": "https://julien.danjou.info/blog/why-we-left-heroku/", "published_at": "2025-01-28T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc90fdf18", "title": "Remote Work: Great, But Not Perfect", "url": "https://julien.danjou.info/blog/remote-work-great-but-not-perfect/", "published_at": "2025-01-21T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc95c07ca", "title": "Reflecting on 2024", "url": "https://julien.danjou.info/blog/reflecting-on-2024/", "published_at": "2025-01-07T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dc9ebb15d", "title": "The Collapse of Social Platforms", "url": "https://julien.danjou.info/blog/the-collapse-of-social-platforms/", "published_at": "2024-12-17T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dca649fac", "title": "Aligning Project Management with Company's Values", "url": "https://julien.danjou.info/blog/aligning-project-management-with/", "published_at": "2024-12-10T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcaff6c86", "title": "SaaS and Work-based Pricing", "url": "https://julien.danjou.info/blog/saas-and-work-based-pricing/", "published_at": "2024-11-19T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcb64e07f", "title": "The Engineer’s Dilemma: What We Did Right at Mergify", "url": "https://julien.danjou.info/blog/the-engineers-dilemma-what-we-did/", "published_at": "2024-11-05T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcb9e19f5", "title": "There's (almost) no GitLab", "url": "https://julien.danjou.info/blog/theres-almost-no-gitlab/", "published_at": "2024-10-29T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcba8494f", "title": "What's going on with Dependabot?", "url": "https://julien.danjou.info/blog/whats-going-on-with-dependabot/", "published_at": "2024-10-15T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcc1cf883", "title": "Why Stock Options are Terrible for Employees", "url": "https://julien.danjou.info/blog/why-stock-options-are-terrible-for/", "published_at": "2024-10-08T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcc9f59af", "title": "Why You Need Product Engineers", "url": "https://julien.danjou.info/blog/why-you-need-product-engineers/", "published_at": "2024-10-01T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcd0255b5", "title": "How To Test Your API Integration", "url": "https://julien.danjou.info/blog/how-to-test-with-an-api/", "published_at": "2024-09-24T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcdf12868", "title": "Is GitHub the Future or Becoming Obsolete?", "url": "https://julien.danjou.info/blog/is-github-the-future-or-becoming/", "published_at": "2024-09-17T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcecd9a33", "title": "Staying Competitive", "url": "https://julien.danjou.info/blog/staying-competitive/", "published_at": "2024-09-10T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcfb82c3a", "title": "How to Be a Great Software Engineer", "url": "https://julien.danjou.info/blog/how-to-be-a-great-software-engineer/", "published_at": "2024-09-03T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dcfe45102", "title": "Launching Byte Brigade", "url": "https://julien.danjou.info/blog/launching-byte-brigade/", "published_at": "2024-08-20T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd07ae7fd", "title": "Solving Build vs Buy", "url": "https://julien.danjou.info/blog/solving-build-vs-buy/", "published_at": "2024-08-13T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd12422ab", "title": "Connecting the Dots with AI", "url": "https://julien.danjou.info/blog/connecting-the-dots-with-ai/", "published_at": "2024-08-06T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd17f6b52", "title": "Reflecting on the Journey of \"Nom d'un Pipeline !\"", "url": "https://julien.danjou.info/blog/reflecting-on-the-journey-of-nom/", "published_at": "2024-07-30T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd24444eb", "title": "The Challenges of Merge Queues", "url": "https://julien.danjou.info/blog/the-challenges-of-merge-queues/", "published_at": "2024-07-23T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd2dc70c0", "title": "Navigating SQL Migrations with Confidence: Introducing sql-compare", "url": "https://julien.danjou.info/blog/navigating-sql-migrations-with-confidence/", "published_at": "2024-07-16T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd342eb58", "title": "A Journey of Embracing Linters", "url": "https://julien.danjou.info/blog/the-journey-of-embracing-linters/", "published_at": "2024-07-09T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd3d4f287", "title": "The Biggest Mistake We Made Building Mergify: Navigating the Hiring Minefield", "url": "https://julien.danjou.info/blog/the-biggest-mistake-we-made-building-a43/", "published_at": "2024-07-02T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd4bd8332", "title": "Discovering the Tech Community in Toulouse: A Three-Year Journey", "url": "https://julien.danjou.info/blog/discovering-the-tech-community-in/", "published_at": "2024-06-25T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd4d96d33", "title": "A Decade of Writing Books and Selling 25,000 Copies", "url": "https://julien.danjou.info/blog/a-decade-of-writing-books-and-selling/", "published_at": "2024-06-12T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd51f046a", "title": "The Biggest Mistake We Made Building Mergify: Navigating the Payment System Nightmare", "url": "https://julien.danjou.info/blog/the-biggest-mistake-we-made-building/", "published_at": "2024-06-11T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd5ffedb8", "title": "Sponsoring Conferences", "url": "https://julien.danjou.info/blog/sponsoring-conferences/", "published_at": "2024-06-06T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd6b03763", "title": "Attending Conferences", "url": "https://julien.danjou.info/blog/attending-conferences/", "published_at": "2024-06-04T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd6b656c9", "title": "I used to write", "url": "https://julien.danjou.info/blog/i-used-to-write/", "published_at": "2024-05-21T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd6e47a78", "title": "Debugging C code on macOS", "url": "https://julien.danjou.info/blog/debugging-c-code-on-macoss/", "published_at": "2021-02-11T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd71cdce2", "title": "I am a Software Engineer and I am in Charge", "url": "https://julien.danjou.info/blog/i-am-a-software-engineer-and-i-am-in-charge/", "published_at": "2020-12-22T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd71e5e02", "title": "Interview: The Performance of Python", "url": "https://julien.danjou.info/blog/interview-the-performance-of-python/", "published_at": "2020-05-11T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd7675d92", "title": "Being in Charge", "url": "https://julien.danjou.info/blog/being-in-charge-10x-engineers-le-podcast/", "published_at": "2020-04-17T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd83a66d9", "title": "One year of Mergify", "url": "https://julien.danjou.info/blog/one-year-of-mergify/", "published_at": "2020-03-12T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd89c8d78", "title": "Attending FOSDEM 2020", "url": "https://julien.danjou.info/blog/attending-fosdem-2020/", "published_at": "2020-02-06T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd9248e2c", "title": "Python Logging with Datadog", "url": "https://julien.danjou.info/blog/python-logging-with-datadog/", "published_at": "2020-02-03T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dd9fd9c58", "title": "Atomic lock-free counters in Python", "url": "https://julien.danjou.info/blog/atomic-lock-free-counters-in-python/", "published_at": "2020-01-06T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575ddabc6266", "title": "Properly managing your .gitignore file", "url": "https://julien.danjou.info/blog/properly-managing-your-gitignore/", "published_at": "2019-12-02T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575ddbac69a9", "title": "Finding definitions from a source file and a line number in Python", "url": "https://julien.danjou.info/blog/finding-definitions-from-a-source-file-and-a-line-number-in-python/", "published_at": "2019-11-04T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575ddc507ec0", "title": "Sending Emails in Python — Tutorial with Code Examples", "url": "https://julien.danjou.info/blog/sending-emails-in-python-tutorial-code-examples/", "published_at": "2019-10-15T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575ddca2c7d0", "title": "Python and fast HTTP clients", "url": "https://julien.danjou.info/blog/python-and-fast-http-clients/", "published_at": "2019-10-07T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575ddd60499e", "title": "Dependencies Handling in Python", "url": "https://julien.danjou.info/blog/dependencies-handling-in-python-automatic-update/", "published_at": "2019-09-02T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575ddd6472de", "title": "The Art of PostgreSQL is out!", "url": "https://julien.danjou.info/blog/the-art-of-postgresql-is-out/", "published_at": "2019-08-28T00:00:00+00:00" }, { "id": "01a08792-4ba9-73a9-a0b2-575dde29dfc5", "title": "Handling multipart/form-data natively in Python", "url": "https://julien.danjou.info/blog/handling-multipart-form-data-python/", "published_at": "2019-07-01T00:00:00+00:00" } ] posts Claim your blog
Back to Julien Danjou
Blog · corpus.blog/blogs/julien.danjou.info/posts

Julien Danjou

julien.danjou.info

2026

2025

2024

2021

2020

2019