
[
    
    {
    "title": "Easily use multiple git identities on one laptop",
    "url": "https://blog.charlesdesneuf.com/articles/easily-use-multiple-git-identities-on-one-laptop/",
    "tags": ["bash","productivity","Git","AI","LLM","Agentic-coding","fzf"],
    "description": "Learn how to manage multiple Git identities on a single laptop using a zsh hook and fzf. Never accidentally commit with the wrong email again—perfect for consultants and developers juggling personal and work repositories."
    },
    {
    "title": "Solving Obsidian + Readwise Merge Conflicts with a Custom Git Driver",
    "url": "https://blog.charlesdesneuf.com/articles/solving-obsidian-readwise-merge-conflicts-with-a-custom-git-driver/",
    "tags": ["bash","productivity","Git","AI","LLM","Agentic-coding"],
    "description": "Learn how to create a custom Git merge driver to automatically resolve Obsidian Readwise plugin conflicts. Includes Bash testing with Bats and full code."
    },
    {
    "title": "Test Migration: From Mocks to Real Database with Test Switcher",
    "url": "https://blog.charlesdesneuf.com/articles/test-migration-from-mocks-to-real-database-with-test-switcher/",
    "tags": ["Testing","typescript"],
    "description": "Master test migration from ORM mocks to real databases using the Test Switcher pattern for gradual, risk-free refactoring without breaking CI."
    },
    {
    "title": "Testing Rule of Thumb: if it looks too much like the real implementation, doubt it",
    "url": "https://blog.charlesdesneuf.com/articles/testing-rule-of-thumb-if-it-looks-too-much-like-the-real-implementation-doubt-it/",
    "tags": ["Testing"],
    "description": "If a test looks like it’s doing calculation or is using the same code as the implementation code it might not be helping you as much as you think."
    },
    {
    "title": "Quickly open Google Calendar Tab in Google Chrome from Alfred",
    "url": "https://blog.charlesdesneuf.com/articles/quickly-open-google-calendar-tab-in-google-chrome-from-alfred/",
    "tags": ["Alfred","productivity"],
    "description": "Just type a few letters in Alfred command palette and go to your emails and calendar in a pinned Google Chrome tab."
    },
    {
    "title": "How test frameworks work : Cleaning after a failure, the birth of TearDown and SetUp",
    "url": "https://blog.charlesdesneuf.com/articles/how-test-frameworks-work-cleaning-after-a-failure-the-birth-of-teardown-and-setup/",
    "tags": ["Testing"],
    "description": "Understand how test frameworks evolved to handle cleanup after failures, leading to the creation of TearDown and SetUp methods for reliable test execution."
    },
    {
    "title": "A clean commit history with Git WipSquash",
    "url": "https://blog.charlesdesneuf.com/articles/a-clean-commit-history-with-git-wipsquash/",
    "tags": ["Git","productivity","alias","Refactoring"],
    "description": "Learn a lazy guy maintains clean and atomic commit histories, with the `wipsquash` script."
    },
    {
    "title": "Displaying Process Behavior Charts on iPhone with Charty and Google Sheets",
    "url": "https://blog.charlesdesneuf.com/articles/displaying-process-behavior-charts-on-iphone-with-charty-and-google-sheets/",
    "tags": ["Process Behavior Charts","Apple Shortcut","Spreadsheet","productivity"],
    "description": "Master the integration of Google Sheets with Charty app to create real-time Process Behavior Chart visualizations on iPhone for data-driven decision making."
    },
    {
    "title": "Streamlining Development with Custom Shell Functions: Reusing a command with a custom config for each project",
    "url": "https://blog.charlesdesneuf.com/articles/streamlining-development-with-custom-shell-functions/",
    "tags": ["bash","productivity","PhpUnit","Composer","Docker","PHP"],
    "description": "Discover how to create custom shell functions for PHPUnit, Composer, and other tools to streamline your development workflow, especially when working across various tech stacks."
    },
    {
    "title": "Run Laravel Artisan Tests directly in PhpStorm test view",
    "url": "https://blog.charlesdesneuf.com/articles/run-laravel-artisan-test-directly-from-phpstorm/",
    "tags": ["Laravel","PhpStorm","PHP","Testing","productivity"],
    "description": "Learn how to run Laravel tests directly in PhpStorm with a custom workaround for artisan test and PHPUnit."
    }
]
