# joeymckenzie.tech > Writing about software, mostly. Written by Joey McKenzie. Every post below links to its markdown source; the rendered page is at the same path without `index.md`. ## Posts - [Artisanally Laravibing](https://joeymckenzie.tech/blog/artisanally-laravibing/index.md): Singularity or not, I'm just along for the ride. - [Local Laravel with nix and devenv](https://joeymckenzie.tech/blog/local-laravel-with-nix/index.md): We have Herd at home. - [Wonderful world of worktrees (and Laravel)](https://joeymckenzie.tech/blog/wonderful-world-of-worktrees-and-laravel/index.md): Worktrees... SO hot right now! - [Terminally driven, Laravel inspired](https://joeymckenzie.tech/blog/terminally-driven-laravel-inspired/index.md): Neovim (btw) - [Parallel testing with Pest and SQLite](https://joeymckenzie.tech/blog/parallel-testing-with-pest-and-sqlite/index.md): I live my life one parallel test at a time... - [Content caching with Statamic](https://joeymckenzie.tech/blog/content-caching-with-statamic/index.md): Cachin' checks, breakin' (bottle)necks. - [Dynamic error assertions with PHPStan](https://joeymckenzie.tech/blog/dynamic-error-assertions-with-phpstan/index.md): This blog post could have been tweet, but yet here I am. - [Adventures with PHP, APIs, and sharing types with PHPStan](https://joeymckenzie.tech/blog/adventures-with-php-apis-and-sharing-types-with-phpstan/index.md): I like my PHP like I like my Rust... statically analyzed. - [Dapper multi-mapping relationships and value equality](https://joeymckenzie.tech/blog/dapper-multi-mapping-relationships-and-value-equality/index.md): So long, IEqualityComparer, you'll be sorely missed. - [Exploring developer experience with PHP, public APIs, and beer](https://joeymckenzie.tech/blog/exploring-developer-experience-with-php-public-apis-and-beer/index.md): It's 2024... and PHP still isn't dead?! - [Content-driven websites with PHP and Laravel](https://joeymckenzie.tech/blog/content-driven-websites-with-php-and-laravel/index.md): It's PHPin' time! - [Rust, AWS Lambda, and too many Office quotes](https://joeymckenzie.tech/blog/rust-aws-lambda-and-too-many-office-quotes/index.md): Identity theft is not a joke, Jim! - [.NET Core service lifetimes in a nutshell](https://joeymckenzie.tech/blog/net-core-service-lifetimes-in-a-nutshell/index.md): Singleton? More like single... not. I'm sorry. - [Back to the server with Rust, Axum, and htmx](https://joeymckenzie.tech/blog/back-to-the-server-with-rust-axum-and-htmx/index.md): (Insert meme about React devs rediscovering the magic of PHP and ASP). - [Ziggin' around with linked lists](https://joeymckenzie.tech/blog/ziggin-around-with-linked-lists/index.md): Flashback to detecting loops in a list on a whiteboard... - [Learning to fly with Rust and Postgres](https://joeymckenzie.tech/blog/learning-to-fly-with-rust-and-postgres/index.md): If it can be Dockerized, it can be deployed. - [Going serverless with Rust and Shuttle](https://joeymckenzie.tech/blog/going-serverless-with-rust-and-shuttle/index.md): Managing infrastructure sucks, let's write some serverless Rust with Shuttle! - [Migrating to Astro](https://joeymckenzie.tech/blog/migrating-to-astro/index.md): Astro, Svelte, and Rust walk into a bar... - [Constructing objects with intent](https://joeymckenzie.tech/blog/constructing-objects-with-intent/index.md): Build better object APIs with named constructors and fluent builders! - [Rethinking exceptions in .NET](https://joeymckenzie.tech/blog/rethinking-exceptions-in-net/index.md): Exceptions... exceptions everywhere! - [React data fetching with RxJS](https://joeymckenzie.tech/blog/react-data-fetching-with-rxjs/index.md): Believe it not, it's actual legal to use RxJS outside of Angular. - [JAMstack Angular apps with Scully and Netlify](https://joeymckenzie.tech/blog/jamstack-angular-apps-with-scully-and-netlify/index.md): Something something JAMstack, something something Angular. - [Hitchhiker's guide to Angular development with Nx](https://joeymckenzie.tech/blog/hitchhikers-guide-to-angular-development-with-nx/index.md): The answer is simple... 42 (projects in the same monorepo). - [Implementing dark mode in Angular with Tailwind](https://joeymckenzie.tech/blog/implementing-dark-mode-in-angular-with-tailwind/index.md): If you're website doesn't have dark, it's a no for me dawg. - [Build a Tailwind modal with Angular and NgRx](https://joeymckenzie.tech/blog/build-a-tailwind-modal-with-angular-and-ngrx/index.md): Make homemade modals great again! - [Decoupling controllers with ApiEndpoints](https://joeymckenzie.tech/blog/decoupling-controllers-with-apiendpoints/index.md): No one likes monolithic controllers, and with ApiEndpoints, API design just got a whole lot easier. - [State Management with Blazor using Fluxor (Part 2)](https://joeymckenzie.tech/blog/state-management-with-blazor-using-fluxor-part-2/index.md): It's redux, but for... .NET? - [State Management with Blazor using Fluxor (Part 1)](https://joeymckenzie.tech/blog/state-management-with-blazor-using-fluxor-part-1/index.md): Redux... redux ALL the things! - [Clean architecture, Dapper, MediatR, and buzzword bingo (part 4)](https://joeymckenzie.tech/blog/clean-architecture-dapper-mediatr-and-buzzword-bingo-part-4/index.md): MediatR... so hot right now! - [Clean architecture, Dapper, MediatR, and buzzword bingo (part 3)](https://joeymckenzie.tech/blog/clean-architecture-dapper-mediatr-and-buzzword-bingo-part-3/index.md): Testing, testing... is this thing on? - [Nullable reference types and designing with intent](https://joeymckenzie.tech/blog/nullable-reference-types-and-designing-with-intent/index.md): Null reference exceptions can be a thing of the path, but with great power comes great responsibility. - [Clean architecture, Dapper, MediatR, and buzzword bingo (part 2)](https://joeymckenzie.tech/blog/clean-architecture-dapper-mediatr-and-buzzword-bingo-part-2/index.md): To repository or not to repository... that is the question. - [Clean architecture, Dapper, MediatR, and buzzword bingo (part 1)](https://joeymckenzie.tech/blog/clean-architecture-dapper-mediatr-and-buzzword-bingo-part-1/index.md): Beer and code... a match made in heaven.