/·Writing · 50 posts

Notes on shipping software.

Practical writing on Laravel, Vue.js, Flutter, Next.js, testing, and the day-to-day of working remote as a fullstack developer.

Laravel

12 posts

  1. Apr 22, 20265 min

    Why Laravel Queue Workers Stop — Common Causes and Fixes

    Laravel queue workers can quietly stop processing jobs in production. Here's how to spot the common causes — memory limits, restarts, lost DB connections — and fix them.

    LaravelPHPQueue
  2. Apr 15, 20264 min

    Laravel N+1 Query Problem: How to Spot and Solve It

    The N+1 query problem is the most common performance issue in Laravel apps. Here's how to detect it with the query log, fix it with eager loading, and prevent it from coming back.

    LaravelEloquentPerformance
  3. Apr 8, 20264 min

    Laravel API Resources vs Fractal — Which Should You Use

    Laravel API Resources and Fractal both transform models into JSON. Here's how they compare on flexibility, includes, performance, and team ergonomics.

    LaravelAPIJSON
  4. Apr 1, 20265 min

    Running Laravel Migrations in Production Without Downtime

    Production database migrations need care — locked tables, long ALTERs, and mismatched code can cause outages. Here's a practical playbook for safe Laravel migrations.

    LaravelMigrationsDevOps
  5. Mar 25, 20264 min

    Testing Laravel Apps with Pest: A Practical Setup

    Pest gives Laravel tests a cleaner syntax than PHPUnit without losing any power. Here's a practical setup for HTTP, database, and feature tests.

    LaravelPestTesting
  6. Mar 18, 20264 min

    Laravel Job Batching for Large Background Tasks

    Job batches in Laravel let you run many related jobs as a single unit, with progress tracking and cancellation. Here's when to use them and how to set them up.

    LaravelQueueJobs
  7. Mar 11, 20264 min

    Laravel Rate Limiting: Setting Sensible Defaults

    Default rate limits in Laravel are easy to set and easy to set wrong. Here's a practical approach to per-route, per-user, and per-IP throttling.

    LaravelSecurityAPI
  8. Mar 4, 20264 min

    Connecting Laravel to Multiple Databases the Right Way

    Laravel supports multiple database connections cleanly. Here's how to set them up, route models to the right database, and avoid the common pitfalls.

    LaravelDatabaseArchitecture
  9. Feb 25, 20264 min

    Laravel Events vs Jobs — When to Use Each

    Events and jobs both let you decouple work in Laravel. Here's a clear way to decide which one fits the task — based on synchrony, fan-out, and retry needs.

    LaravelArchitectureEvents
  10. Feb 18, 20263 min

    Laravel Observers: Cleaner Model Side-Effects

    When a model save needs to trigger side-effects, observers are cleaner than overriding boot methods. Here's a working pattern with examples.

    LaravelEloquentArchitecture
  11. Feb 11, 20265 min

    Practical Laravel Caching Strategies for Production

    Caching in Laravel is more than putting Cache::remember around things. Here's how to think about cache keys, invalidation, and the layers that actually save you load.

    LaravelPerformanceCache
  12. Feb 4, 20263 min

    Laravel Form Requests vs Validator Façade — A Comparison

    Both form requests and the Validator façade work for validating input in Laravel. Here's when each fits, and how to keep validation logic consistent across a codebase.

    LaravelValidation

Vue & Nuxt

10 posts

  1. Jan 28, 20265 min

    Vue 3 Composition API: Patterns That Scale

    The Composition API is more flexible than the Options API but easier to misuse. Here are the patterns that hold up as components grow.

    VueComposition APIJavaScript
  2. Jan 21, 20264 min

    Migrating from Vuex to Pinia: A Practical Guide

    Pinia is now the recommended state library for Vue 3. Here's how to migrate from Vuex incrementally without breaking working code.

    VuePiniaVuex
  3. Jan 14, 20264 min

    Nuxt 3 SSR vs SSG: How to Decide for Your Site

    Nuxt 3 supports server rendering, static generation, and hybrid modes per route. Here's a clear way to choose for content sites, SaaS apps, and marketing pages.

    NuxtVueSSR
  4. Jan 7, 20263 min

    Vue 3 Reactivity Gotchas Every Developer Hits

    Vue 3's reactivity is powerful but has rules. Here are the gotchas that catch most teams — destructuring, array indices, and reactivity loss across boundaries.

    VueReactivityJavaScript
  5. Dec 31, 20253 min

    Using Vue Teleport for Modals and Tooltips

    Vue's Teleport component renders content into a different DOM location while preserving the component tree. It's the cleanest answer to modals, tooltips, and overlays.

    VueUI
  6. Dec 24, 20254 min

    Vue 3 Suspense and Async Components in Practice

    Suspense lets you handle async setup() functions and async components with a single fallback boundary. Here's how to use it without overcomplicating things.

    VueAsyncSuspense
  7. Dec 17, 20254 min

    Nuxt Content Module for Markdown-Driven Sites

    The Nuxt Content module turns a folder of markdown files into a queryable database. Here's a practical setup for a blog, docs, or content-heavy marketing site.

    NuxtContentMarkdown
  8. Dec 10, 20254 min

    Building API Routes with Nuxt 3 Server Handlers

    Nuxt 3's server directory turns your Nuxt project into a backend too. Here's how to structure server routes for forms, webhooks, and API proxies.

    NuxtAPIServer
  9. Dec 3, 20253 min

    Vue 3 watchEffect vs watch: When to Use Each

    Both watchEffect and watch react to changes, but they trigger and track dependencies differently. Here's how to pick the right one each time.

    VueReactivityComposition API
  10. Nov 26, 20254 min

    Vue 3 with TypeScript: Common Pitfalls to Avoid

    Vue 3 has solid TypeScript support, but a few patterns lose type safety quietly. Here's what to watch for in props, refs, and emits.

    VueTypeScript

Flutter

8 posts

  1. Nov 19, 20255 min

    Flutter State Management in 2026: Honest Comparison

    Provider, Riverpod, BLoC, GetX — Flutter has many state management options. Here's how I actually pick between them for real apps.

    FlutterState ManagementMobile
  2. Nov 12, 20254 min

    Flutter Riverpod 2: Practical Patterns for Real Apps

    Riverpod 2 with code generation is the most ergonomic way to manage state in Flutter today. Here are the patterns that hold up in production apps.

    FlutterRiverpodState Management
  3. Nov 5, 20254 min

    Migrating a Flutter App to Null Safety: Lessons Learned

    Migrating an existing Flutter codebase to null safety is mostly mechanical — but a few patterns require real thinking. Here's a practical playbook.

    FlutterDartNull Safety
  4. Oct 29, 20254 min

    Flutter for Web — When It Makes Sense (And When It Doesn't)

    Flutter Web has real strengths and real costs. Here's how to evaluate whether it fits your project, based on bundle size, SEO, and team needs.

    FlutterWebMobile
  5. Oct 22, 20254 min

    Flutter Platform Channels: Calling Native Code Cleanly

    When Flutter doesn't have a plugin for what you need, platform channels let you call native iOS or Android code. Here's a clean pattern that scales.

    FlutterPlatform ChannelsiOS
  6. Oct 15, 20253 min

    Flutter Hero Animations for Smooth Screen Transitions

    Hero animations make screen transitions feel native and intentional. Here's how to use them well — and how to avoid the patterns that look glitchy.

    FlutterAnimationUI
  7. Oct 8, 20254 min

    Testing Flutter Apps: Unit, Widget, and Integration

    Flutter has three test types that cover different layers. Here's a practical strategy that catches real bugs without over-investing in any single layer.

    FlutterTesting
  8. Oct 1, 20254 min

    Flutter API Calls with Dio: Setup and Patterns

    Dio is the most widely used HTTP client in Flutter. Here's how I set it up — interceptors for auth, error mapping, and cancellation — without overengineering.

    FlutterDioAPI

Career

10 posts

  1. Jul 16, 20255 min

    Working Remote as a Fullstack Developer in 2026

    Remote fullstack work has settled into clear patterns by 2026. Here's what actually works — across communication, focus, and career growth.

    Remote WorkCareer
  2. Jul 9, 20255 min

    Joining Legacy Codebases Without Burning Out

    Joining a legacy codebase is the most common scenario in real-world software work. Here's how to navigate it without losing weeks to confusion or making changes you'll regret.

    CareerLegacy CodeOnboarding
  3. Jul 2, 20254 min

    Async Communication Habits That Help Remote Teams

    Async communication isn't just "use Slack instead of meetings." Here are the specific habits that make remote teams genuinely productive.

    Remote WorkCommunication
  4. Jun 25, 20254 min

    Estimating Software Work Realistically

    Software estimates are infamously bad. Here's a practical approach that gets closer to reality without selling false confidence.

    CareerProject Management
  5. Jun 18, 20254 min

    How to Review Code Thoughtfully (and Get Better Reviews)

    Code reviews can be the most valuable or the most demoralizing part of a workday. Here's how to give and receive them well.

    CareerCode Review
  6. Jun 11, 20254 min

    Onboarding to a New Project: A Developer's Checklist

    The first two weeks on a new project shape the rest. Here's a checklist for asking the right questions early and getting productive faster.

    CareerOnboarding
  7. Jun 4, 20254 min

    Working with Non-Technical Stakeholders Without Friction

    Most developer career frustration comes from stakeholder mismatches. Here are habits that translate technical reality into terms stakeholders can act on.

    CareerCommunication
  8. May 28, 20254 min

    Personal Productivity Habits for Developers

    Productivity advice for knowledge workers rarely fits developers' actual work. Here are habits that help with shipping software, specifically.

    CareerProductivity
  9. May 21, 20254 min

    Choosing a Tech Stack for MVPs: A Pragmatic Approach

    Picking a tech stack for an MVP is mostly about your own speed. Here's a practical framework — what to optimize for and what to ignore.

    CareerMVPArchitecture
  10. May 14, 20255 min

    Where AI Actually Helps in Production Apps

    AI features get added to apps for the wrong reasons. Here's where they genuinely improve products — based on real production usage.

    AIOpenAICareer