41554 blogs · [ { "id": "01a087a1-7afb-7074-82f0-acc256ba2e4f", "title": "My AI Coding Workflow", "url": "https://mathieularose.com/my-ai-coding-workflow", "published_at": "2026-07-19T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc2577f948c", "title": "Authorization as a Service: Data Filtering is Still Hard", "url": "https://mathieularose.com/authorization-as-a-service-data-filtering-is-still-hard", "published_at": "2026-01-02T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc257af0f23", "title": "Rethinking Git Pre-Commit Hooks", "url": "https://mathieularose.com/rethinking-git-pre-commit-hooks", "published_at": "2025-12-07T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc257f937b2", "title": "Exploring Safe Withdrawal Rates with Monte Carlo Simulations", "url": "https://mathieularose.com/exploring-safe-withdrawal-rates-with-monte-carlo-simulations", "published_at": "2025-10-07T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25871785b", "title": "Evolving Integer Compression Algorithms with LLMs", "url": "https://mathieularose.com/evolving-integer-compression-algorithms-with-llms", "published_at": "2025-08-02T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc2587d9b9a", "title": "Optiverse: Evolving Code with LLMs", "url": "https://mathieularose.com/optiverse-evolving-code-with-llms", "published_at": "2025-07-10T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc258d331a9", "title": "How Authorization is Implemented in Libredesk", "url": "https://mathieularose.com/libredesk-authorization", "published_at": "2025-03-15T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc2590d5bae", "title": "hnsync: A Hacker News Sync Tool", "url": "https://mathieularose.com/hnsync", "published_at": "2024-11-24T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25a028e3d", "title": "Securing CI/CD Pipelines with Egress Filtering", "url": "https://mathieularose.com/securing-ci-cd-pipelines-with-egress-filtering", "published_at": "2024-06-30T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25a3c1f77", "title": "Back Up Your Git Repositories to S3 or Any S3-Compatible Storage", "url": "https://mathieularose.com/back-up-your-git-repositories-to-s3", "published_at": "2024-06-02T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25a833845", "title": "Write Readable Commands with Long Options", "url": "https://mathieularose.com/write-readable-commands-with-long-options", "published_at": "2024-05-20T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25ae2d720", "title": "Speed Up Your CI/CD Pipeline with Change-Based Testing in a Yarn-Based Monorepo", "url": "https://mathieularose.com/ci-cd-pipeline-change-based-testing-yarn-based-monorepo", "published_at": "2024-05-17T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25b52e697", "title": "Building a GitOps CI/CD Pipeline with GitHub Actions (SOC 2)", "url": "https://mathieularose.com/gitops-cicd-github-actions", "published_at": "2024-04-28T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25be10b4a", "title": "Changelog-Driven Releases", "url": "https://mathieularose.com/changelog-driven-releases", "published_at": "2024-04-20T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25cdfacb7", "title": "Financial Tips For Young Software Developers", "url": "https://mathieularose.com/financial-tips-for-young-software-developers", "published_at": "2024-03-25T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25d3881be", "title": "Local .gitignore files", "url": "https://mathieularose.com/local-gitignore-files", "published_at": "2024-02-16T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25dcf1a5f", "title": "Unicode and UTF-8", "url": "https://mathieularose.com/unicode-and-utf-8", "published_at": "2020-12-13T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25e488e6c", "title": "GitHub Commit Injection", "url": "https://mathieularose.com/github-commit-injection", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25e750fa8", "title": "How to Design and Implement a Plugin Architecture in Python", "url": "https://mathieularose.com/plugin-architecture-in-python", "published_at": "2020-07-19T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25eab6017", "title": "Main function in Node.js", "url": "https://mathieularose.com/main-function-in-node-js", "published_at": "2020-06-21T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25f1e1709", "title": "Ubuntu 19.10 on Lenovo ThinkPad X1 Carbon 7th Gen", "url": "https://mathieularose.com/ubuntu-19-10-on-lenovo-thinkpad-x1-carbon-7th-gen", "published_at": "2020-04-05T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25fecff98", "title": "How to Log in JSON with Logback", "url": "https://mathieularose.com/logback-json", "published_at": "2018-05-26T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc25ffa83ad", "title": "How to Debug OpenSSL with Eclipse", "url": "https://mathieularose.com/how-to-debug-openssl-with-eclipse", "published_at": "2017-12-17T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc26006b553", "title": "Decoding CAPTCHAs", "url": "https://mathieularose.com/decoding-captchas", "published_at": "2017-08-25T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc2601a4a26", "title": "Understanding Python Variables", "url": "https://mathieularose.com/python-variables", "published_at": "2015-12-01T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc260d8bbc0", "title": "How Prototype Works in JavaScript", "url": "https://mathieularose.com/javascript-prototype", "published_at": "2014-07-01T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc261cb48d1", "title": "Choosing the Right Data Structures", "url": "https://mathieularose.com/choosing-the-right-data-structures", "published_at": "2013-08-01T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc26247340e", "title": "Function Composition in Python", "url": "https://mathieularose.com/function-composition-in-python", "published_at": "2013-01-01T00:00:00+00:00" }, { "id": "01a087a1-7afb-7074-82f0-acc2624faa14", "title": "How Not to Flatten a List of Lists in Python", "url": "https://mathieularose.com/how-not-to-flatten-a-list-of-lists-in-python", "published_at": "2013-01-01T00:00:00+00:00" } ] posts Claim your blog
Back to mathieularose.com
Blog · corpus.blog/blogs/mathieularose.com/posts

mathieularose.com

mathieularose.com

2026

2025

2024

2020

2018

2017

2015

2014

2013