41554 blogs · [ { "id": "01a08791-05a5-70a0-9539-dab962bc1303", "title": "Is software ever done?", "url": "https://joshghent.com/is-software-ever-done/", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab963b33b3b", "title": "How I build products with AI", "url": "https://joshghent.com/how-i-build-products-with-ai/", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab963f45fa5", "title": "Lessons learned from using GitHub Actions", "url": "https://joshghent.com/github-actions-lessons/", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab964ecd436", "title": "Coffee roasters", "url": "https://joshghent.com/coffee-roasters/", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96513a9e4", "title": "Claude migrated me off Authy", "url": "https://joshghent.com/claude-migrated-me-off-authy/", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab965491220", "title": "Technical Project Discovery Checklist", "url": "https://joshghent.com/technical-discovery-checklist/", "published_at": "2026-06-23T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96620b626", "title": "What's new with Repowarden", "url": "https://joshghent.com/repowarden-update/", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9664c9dec", "title": "One item purchased, Ten emails", "url": "https://joshghent.com/online-shopping/", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab966abcd1c", "title": "Anti-Book Book club", "url": "https://joshghent.com/antibook-book-club/", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9676321c2", "title": "Supply Chain Irony", "url": "https://joshghent.com/supply-chain-irony/", "published_at": "2026-02-27T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9684c7918", "title": "Todoist Setup 2026", "url": "https://joshghent.com/todoist-setup/", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab968e66a2a", "title": "Power Puttering", "url": "https://joshghent.com/power-puttering/", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9693915c5", "title": "Launch: Repowarden - AI-powered repository maintenance", "url": "https://joshghent.com/repowarden/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab969fbc756", "title": "Thoughts on LLMs and AI", "url": "https://joshghent.com/thoughts-on-llms/", "published_at": "2025-08-29T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96ac6af15", "title": "Just launched, PlanPacer - The easiest way to add payment plans to your app using Stripe", "url": "https://joshghent.com/planpacer/", "published_at": "2025-06-25T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96bbf313d", "title": "Book Notes - The Mezzanine", "url": "https://joshghent.com/the-mezzanine/", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96c52f02b", "title": "Event Driven Architecture Rules of Thumb", "url": "https://joshghent.com/eda-rules-of-thumb/", "published_at": "2025-01-09T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96d1812de", "title": "ClickOps and IaC - which are Pets and Cattle?", "url": "https://joshghent.com/pets-vs-cattle/", "published_at": "2025-01-08T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96dfde51b", "title": "Learning to Type Fast", "url": "https://joshghent.com/typing-fast/", "published_at": "2024-12-12T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96eb8f6dd", "title": "Allgood - Instant healthcheck webpage and API for JS/TS projects", "url": "https://joshghent.com/allgood/", "published_at": "2024-11-25T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96f72817b", "title": "Vendor Lock-in is an Imaginary Problem", "url": "https://joshghent.com/vendor-lockin/", "published_at": "2024-10-23T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab96fe2846c", "title": "DynamoDB Considered Harmful", "url": "https://joshghent.com/dynamodb-harmful/", "published_at": "2024-10-21T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab970923e4d", "title": "An engineers guide to the Solutions Architecture role", "url": "https://joshghent.com/solutions-architecture/", "published_at": "2024-08-21T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9717c5697", "title": "Should I learn to code if AI will replace me?", "url": "https://joshghent.com/will-ai-take-my-job/", "published_at": "2024-05-07T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97219b0f1", "title": "Components of a Great Architecture Diagram", "url": "https://joshghent.com/architecture-diagrams/", "published_at": "2024-05-02T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab972f1680c", "title": "Set your time zone manually when in the Canary Islands", "url": "https://joshghent.com/canary-islands-tz/", "published_at": "2024-05-01T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab973144782", "title": "AWS Summit 2024", "url": "https://joshghent.com/aws-summit-2024/", "published_at": "2024-04-26T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9731bd6b7", "title": "Markdown for Slides", "url": "https://joshghent.com/marp/", "published_at": "2024-03-12T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab973d81b17", "title": "Cool Links from Around the Web", "url": "https://joshghent.com/cool-links/", "published_at": "2024-03-11T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab973e2af19", "title": "Common phrases that probably aren't true", "url": "https://joshghent.com/not-true/", "published_at": "2024-03-10T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9740e6743", "title": "Tips for Battling Alert Fatigue", "url": "https://joshghent.com/alert-fatigue/", "published_at": "2024-03-09T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab974cd3741", "title": "What people mean when they say - we do TDD", "url": "https://joshghent.com/tdd/", "published_at": "2024-01-16T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97517aeea", "title": "11ty or Bust", "url": "https://joshghent.com/11ty-or-bust/", "published_at": "2024-01-03T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97571e360", "title": "Lambda Warming is an Antipattern", "url": "https://joshghent.com/lambda-warming-antipattern/", "published_at": "2023-12-18T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab975f6125f", "title": "How to buy a car", "url": "https://joshghent.com/how-to-buy-car/", "published_at": "2023-08-30T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab976516cba", "title": "Business Version 2", "url": "https://joshghent.com/consulting-launch-2023/", "published_at": "2023-08-30T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab977178a94", "title": "TIL - How to send an SQS message from a Lambda inside a VPC", "url": "https://joshghent.com/sqs-inside-vpc-lambda/", "published_at": "2023-08-15T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab977420561", "title": "Pull Request Environments in GitHub Actions (with SST, AWS and Cloudflare pages)", "url": "https://joshghent.com/github-actions-pr-env/", "published_at": "2023-07-24T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab977ccfa34", "title": "How Part Time has helped me in life", "url": "https://joshghent.com/part-time/", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97894413f", "title": "Why are software companies so obsessed with doing anything but work?", "url": "https://joshghent.com/complexity/", "published_at": "2023-06-21T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97941a0bf", "title": "Lifehacks", "url": "https://joshghent.com/lifehacks/", "published_at": "2023-06-09T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab979ea976c", "title": "Setup a Repo in Github", "url": "https://joshghent.com/github-repo-setup/", "published_at": "2023-05-03T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97a22ed90", "title": "SQS, SNS, Eventbridge, DynamoDB - Chosing the right queue system in AWS", "url": "https://joshghent.com/aws-queues/", "published_at": "2023-05-02T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97a8e7337", "title": "Raising £1000 for MSF", "url": "https://joshghent.com/running/", "published_at": "2023-04-28T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97b6d7cc8", "title": "Whimsical Software", "url": "https://joshghent.com/whimsical-software/", "published_at": "2023-03-24T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97be7de6e", "title": "Devblog - LoginLlama 001", "url": "https://joshghent.com/loginllama-001/", "published_at": "2023-03-23T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97cb81b6c", "title": "Rules of Thumb for creating API's", "url": "https://joshghent.com/api-rules-of-thumb/", "published_at": "2023-03-14T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97d037e4f", "title": "Simple sites", "url": "https://joshghent.com/simple-sites/", "published_at": "2023-03-09T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97d777ace", "title": "You can't fix engineering culture with communication", "url": "https://joshghent.com/communication/", "published_at": "2023-03-08T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97e4e2a4c", "title": "The Cobra Effect and Software", "url": "https://joshghent.com/cobra-effect/", "published_at": "2023-02-28T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97ef609b2", "title": "Five Things I Wish I learnt sooner", "url": "https://joshghent.com/things-learned-sooner/", "published_at": "2023-02-13T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab97fe0bbe3", "title": "Favourite Subreddits", "url": "https://joshghent.com/favourite-subreddits/", "published_at": "2023-01-20T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab9807cb0fe", "title": "Albums I listened to in 2022", "url": "https://joshghent.com/2022-music/", "published_at": "2023-01-19T00:00:00+00:00" }, { "id": "01a08791-05a5-70a0-9539-dab980b676f0", "title": "Onebag", "url": "https://joshghent.com/onebag/", "published_at": "2023-01-18T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f069f4ee9", "title": "Ten Software Architecture Rules of Thumb", "url": "https://joshghent.com/rules-of-thumb/", "published_at": "2023-01-04T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0777474d", "title": "Book notes - The Seven Deaths of Evelyn Hardcastle", "url": "https://joshghent.com/seven-deaths-evelyn-hardcastle/", "published_at": "2023-01-03T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0874db01", "title": "Five books", "url": "https://joshghent.com/five-books/", "published_at": "2022-12-14T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f093731e9", "title": "Book notes - Project Hail Mary", "url": "https://joshghent.com/project-hail-mary/", "published_at": "2022-12-07T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0a1a7171", "title": "What it takes to become a lead developer", "url": "https://joshghent.com/become-lead-developer/", "published_at": "2022-11-16T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0aea612b", "title": "No Calendar", "url": "https://joshghent.com/no-calendar/", "published_at": "2022-11-10T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0ba6ec31", "title": "Common objections to CI/CD and why they are wrong", "url": "https://joshghent.com/ci-cd-objections/", "published_at": "2022-11-02T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0c3a8999", "title": "Get rid of your retrospective meetings", "url": "https://joshghent.com/no-more-retro/", "published_at": "2022-10-27T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0c54609f", "title": "Creating my own personal Instagram", "url": "https://joshghent.com/webstagram/", "published_at": "2022-10-06T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0ce79c52", "title": "How to fix 'Public key authentication failed' for Azure DevOps", "url": "https://joshghent.com/azure-ssh-fix/", "published_at": "2022-10-06T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0cfa07cd", "title": "Blog Roll", "url": "https://joshghent.com/blogroll/", "published_at": "2022-09-28T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0d8cf34b", "title": "Making the case for CI/CD", "url": "https://joshghent.com/case-for-ci-cd/", "published_at": "2022-08-31T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0defb966", "title": "Question your Rate limits", "url": "https://joshghent.com/rate-limits/", "published_at": "2022-08-02T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0ea6e63f", "title": "Site Upgrades - Gatsby V4 and Webmentions", "url": "https://joshghent.com/site-upgrades/", "published_at": "2022-07-28T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f0f84e6ad", "title": "The Culture of Estimations", "url": "https://joshghent.com/estimation-culture/", "published_at": "2022-07-04T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1008a167", "title": "My journey with carpal tunnel", "url": "https://joshghent.com/carpal-tunnel/", "published_at": "2022-06-21T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f106c49b0", "title": "Deeply Remove a Key from an Object", "url": "https://joshghent.com/deep-remove-key-from-object/", "published_at": "2022-06-14T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f10c28b6f", "title": "Creating legacy code is ok", "url": "https://joshghent.com/creating-legacy/", "published_at": "2022-06-08T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f117c7ff4", "title": "Questions for Developers to ask at interviews", "url": "https://joshghent.com/interview-questions/", "published_at": "2022-05-24T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f12164db8", "title": "Bookshelf", "url": "https://joshghent.com/bookshelf/", "published_at": "2022-05-22T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1305305b", "title": "There is always more", "url": "https://joshghent.com/more/", "published_at": "2022-04-26T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f134f6253", "title": "Advancing from a Mid-Level to Senior Developer", "url": "https://joshghent.com/mid-to-senior-dev/", "published_at": "2022-04-12T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f13ad3eab", "title": "Quarterly planning for life", "url": "https://joshghent.com/quarterly-plan/", "published_at": "2022-03-29T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f14244abb", "title": "Should I split my monolith into microservices?", "url": "https://joshghent.com/monolith-to-microservice/", "published_at": "2022-03-22T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1488788f", "title": "How to make changes as a Junior Developer", "url": "https://joshghent.com/junior-developer/", "published_at": "2022-03-15T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f15822f71", "title": "Be friendly and don't ignore Recruiters", "url": "https://joshghent.com/recruiters/", "published_at": "2022-03-10T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f15b97aac", "title": "Mistakes I made as a self-taught developer", "url": "https://joshghent.com/self-taught-mistakes/", "published_at": "2022-02-15T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f163690ea", "title": "Building Collaboration with Remote Teams", "url": "https://joshghent.com/remote-collaboration/", "published_at": "2022-02-08T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f16ba2088", "title": "Facing the Legacy Code Monster", "url": "https://joshghent.com/scary-legacy/", "published_at": "2022-01-25T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f177e4915", "title": "How to Ship Software Faster", "url": "https://joshghent.com/ship-faster/", "published_at": "2022-01-18T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f18383104", "title": "Cache Auth0 M2M Tokens", "url": "https://joshghent.com/auth0-cache/", "published_at": "2022-01-11T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f18804494", "title": "How You Work", "url": "https://joshghent.com/how-you-work/", "published_at": "2022-01-07T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f18a417f9", "title": "Maybe don't hire", "url": "https://joshghent.com/hiring/", "published_at": "2022-01-06T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1912c06a", "title": "Software Beauty", "url": "https://joshghent.com/software-beauty/", "published_at": "2022-01-05T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1a00ffba", "title": "Continuous Delivery to ECS with Terraform", "url": "https://joshghent.com/terraform-ecs-cicd/", "published_at": "2021-08-11T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1ad9fbf1", "title": "Web Performance for Developers on a Deadline", "url": "https://joshghent.com/webperf-on-deadline/", "published_at": "2021-04-29T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1b56914c", "title": "How to Run Sequelize Migrations in Azure Pipelines", "url": "https://joshghent.com/azure-pipelines-sequelize/", "published_at": "2021-04-07T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1b5a803f", "title": "How to Improve Your Typing Speed", "url": "https://joshghent.com/typing-practise/", "published_at": "2021-03-30T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1c128230", "title": "Super Fast React/Node App Testing with GitHub Actions", "url": "https://joshghent.com/github-actions-perf/", "published_at": "2021-03-25T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1c97b469", "title": "Solve Your Problems. Not Others.", "url": "https://joshghent.com/your-business/", "published_at": "2021-03-24T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1d31bd7b", "title": "SpellcheckCI", "url": "https://joshghent.com/spellcheck-ci/", "published_at": "2021-03-04T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1dd9bd5c", "title": "Setting up LightHouse CI for React in GitHub Actions", "url": "https://joshghent.com/lighthouse-ci-react/", "published_at": "2021-02-16T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1e2535da", "title": "So, You've Messed Up", "url": "https://joshghent.com/you-messed-up/", "published_at": "2021-02-15T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1e646659", "title": "Shutdown Routine", "url": "https://joshghent.com/shutdown-routine/", "published_at": "2021-02-04T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1eae9332", "title": "Resumé Red Flags", "url": "https://joshghent.com/resumes/", "published_at": "2021-02-03T00:00:00+00:00" }, { "id": "01a08791-05a6-7063-a41f-4e5f1ec002ff", "title": "My Advice on Become a Software Developer", "url": "https://joshghent.com/learning-software/", "published_at": "2021-01-31T00:00:00+00:00" } ] posts Claim your blog
Back to joshghent
Blog · corpus.blog/blogs/joshghent.com/posts

joshghent

joshghent.com

2026

2025

2024

2023

2022

2021