Codehack Blog
Getting Your Work Back After git reset --hard
I ran git reset --hard with a few hours of staged, uncommitted work in the index. Then I sat there for a second. I felt my stomach drop as I thought I might have just lost all my hard work. If that's...
Read more →
Fixing Swagger in .NET 10
If you've upgraded an ASP.NET Core API to .NET 10 and your Swashbuckle security configuration stopped compiling, this is why — and why almost every answer you'll find online describes an API that no l...
Read more →
Dragging a Laravel 5.7 App to Laravel 12
I wrote a blog in 2018 on Laravel 5.7, PHP 7.1 and MySQL, hosted on Heroku. When Heroku retired its free tier in 2022 I didn't migrate the database in time and lost every post — which is part of why I...
Read more →
Getting Started with Laravel: Frameworks, Virtualization, and Homestead
Whether you're a veteran in the development world or you're just opening its doors, you should understand the general purpose of software frameworks: to make the entire web development process more ef...
Read more →
About
I'm Gavin, a full-stack developer working mainly in C# / ASP.NET Core / Azure and PHP/Laravel, with SQL, Postgres, Docker and AWS underneath.
I write about the problems that don't have a clean answer online - things I've run into and my debugging paths that actually worked. I hope you find them useful. Thanks for visiting.