Notebook
163 entries across 18 topics. An archive of things I learned and wanted to remember, kept as they were written. The newer thinking is in the changelog.
Topics
All entries
Architecture decision records: a practical guide and templateArchitectureGit branching strategies: Gitflow, trunk-based and GitHub FlowGitHarness engineering for coding agentsAIHealth checks in LaravelLaravelLogging in LaravelLaravelMonitoring and alerting in LaravelLaravelProps, children and component composition in ReactReactREST API design rules for URLs, methods and fieldsAPISREST API response shape, pagination and errorsAPISREST API security, authentication and rate limitingAPISRunning a REST API: caching, versioning, deprecation and releaseAPISSharing state in React without ReduxReactSoftware engineering in the age of AIAIuseState, useReducer and the mental model of state in ReactReactWhat happens to developers who don't adapt to AIAIMy VPS got throttled to 20% CPU, so I'm buying a mini PC for homeAIWhy I use the CLI with Herdr instead of desktop apps and orchestratorsAII moved my coding agents to a VPS so I could close my laptopAIInfrastructure questions belong before the first line of codeAISEO feedback should become bounded engineering workAIAgent workflows should outlive their modelsAIA Modern Quality Pipeline and Testing Strategy for Frontend ProjectsGood CodeAgents Are Cron Jobs and Markdown FilesAIMeasure Your Agent Skills or Delete ThemAIWhat to Do If You're Not Detail OrientedCareerHow to Stay Resilient in a Difficult Engineering JobCareerAI Code Review: Pre-Existing Bugs as a Side QuestAISoftware Factory: Build Factories, Not FeaturesAISmall npm Packages Are Mostly DeadAIThe Four Levels of Working with AIAIHow AI Agents Made Me CLI-FirstAIHow I Build Software With Agent LoopsAIHigher-Order Components and Why Hooks Replaced ThemReactPure Components and Why Purity Matters in ReactReactReact Fragments and When You Actually Need ThemReactRefs and when useRef beats useStateReactDefault Props and Optional Props in ReactReactHandling Form Submission in ReactReactClient-side validation before Server Actions in Next.jsNext.jsType-Safe Adapter Registries with as const and satisfiesTypeScriptUsing Service Interfaces and Null Objects for Resilient TypeScript ScriptsTypeScriptValidating Multi-Provider Credentials with Zod Discriminated UnionsTypeScriptBuilding a URL Shortener with Next.jsNext.jsMagic Link Authentication in Next.jsAPISAPI Key Management in Next.jsAPISTransactional Email with Resend and React EmailNext.jsType Annotations vs Type Inference: When to Write the TypeTypeScriptThe Compound Component Pattern in ReactReactThe Render Prop Pattern in ReactReactDynamic OG Images in Next.js with opengraph-image.tsxNext.jsConditional Rendering Patterns in ReactReactLists and Keys in React: Why They Actually MatterReactWhy Dyslexia Made Me a Better Software EngineerCareerEvent Handling in ReactReactGit Commands for Reading New CodebasesGitExtracting a Queries Layer from Next.js Server ComponentsNext.jsThe Virtual DOM and How React Reconciliation WorksReactAvoiding Unnecessary Rerenders in ReactReactControlled vs Uncontrolled Forms in ReactReactCustom Hooks: Naming and StructureReactDeploying Next.js to Cloudflare PagesNext.jsError and Not-Found Pages in the App RouterNext.jsFetching Data in Server ComponentsNext.jsgenerateStaticParams and Static ExportNext.jsImage Optimisation in Next.jsNext.jsIncremental Static Regeneration ExplainedNext.jsMiddleware Patterns in Next.jsNext.jsReact Error Boundaries in PracticeReactReact Server Components vs Client ComponentsReactReact Suspense: loading fallbacks, boundaries and use()ReactRoute Handlers vs Server ActionsNext.jsServer Actions in Next.js 15Next.jsStreaming and Suspense in Next.jsNext.jsStructuring Large React AppsReactTesting React Components with Vitest and Testing LibraryReactThe Metadata API and SEO in Next.jsNext.jsThe Next.js App Router Mental ModelNext.jsuseEffect Mistakes I Stopped MakingReactWhen to Use useMemo and useCallbackReactDocker Compose HealthchecksDockerTemplate Method Design PatternDesign PatternsTesting in LaravelLaravelLinkedIn ProfileCareerAI Job InterviewsAIEverything Is Markdown NowAISaaS vs Open Source in the Age of AI CodingCareerA Reusable PRD Framework for Standard SaaS FeaturesProject DocsProject SpecProject DocsWebsite Go Live ChecklistDeploymentsAdapter Design PatternDesign PatternsAI RulesAIContextual Attributes in LaravelLaravelGitHub ProfileCareerLaravel Pint: configuration, rules and CI checksLaravelRector: Automated PHP Code RefactoringPHPScheduled Tasks in LaravelLaravelSecurity Headers in LaravelLaravelAgent SkillsAIClaude Sub-AgentsAIPHPStan: Static Analysis for PHPPHPRate Limiting in LaravelLaravelCLAUDE.md FileAIBuilder Design PatternDesign PatternsCI/CDDeploymentsContainerisationDeploymentsManaging Cognitive Load in CodeGood CodeA/B Testing DeploymentsDeploymentsActions Pattern in PHPGood CodeArchitecture DocumentationProject DocsAvoiding N+1 Queries in LaravelLaravelBlue/Green DeploymentDeploymentsBridge Design PatternDesign PatternsCache Invalidation Strategies in LaravelLaravelCaching in LaravelLaravelCanary DeploymentDeploymentsCarbonImmutable in Laravel: prevent date mutation bugsLaravelChange the Origin of a Git RepositoryGitChangelogProject DocsChoosing the Right Company Size as a Software EngineerCareerClean Up DockerDockerCreate a Brag DocumentCareerCreating a Software Developer CVCareerCreating Pull RequestsGitCustom Collections in LaravelLaravelData Transfer Objects (DTO)Good CodeDomain-Driven DesignGood CodeEloquent Builder vs Scopes in LaravelLaravelEnd of Contract ChecklistCareerEnvironmentsProject DocsFeature TogglesDeploymentsForm Request Validation Patterns in LaravelLaravelFreelancingCareerGCP VM Port ForwardingGCPGit HooksGitGitHub Copilot Instructions TemplateAIInfrastructure as CodeDeploymentsInterviewingCareerLaravel Coding StandardsLaravelMass Assignment Guarding in LaravelLaravelPerformance Improvements in LaravelLaravelPermanent vs ContractingCareerPHP Coding StandardsPHPPull Request TemplateGithubQueues in LaravelLaravelRead/Write Database Splitting in LaravelLaravelRepository PatternGood CodeReviewing Pull RequestsGitRoute Organisation and Naming in LaravelLaravelRunbook TemplateObservabilitySecrets and Config Validation in LaravelLaravelSOLID PrinciplesGood CodeSpec-Driven Development with AIAIStacked Pull RequestsGitState Design PatternDesign PatternsStrategy Design PatternDesign PatternsTech Stack DocumentProject DocsThe Twelve-Factor AppGood CodeUsing .env in LaravelLaravelUsing Multiple SSH KeysGitValue ObjectsGood CodeVersioningGitWorking with Large Datasets in LaravelLaravelWriting Good Commit MessagesGit