Series

A cluttered desk setup with several AI coding assistant windows open side by side, each mid-session, next to an unread pull request and a design document
Engineering and Development

Nobody Trained Me to Manage Five AI Agents at Once

Running several AI agents in parallel doesn't shrink the work, it moves the bottleneck to reviewing and trusting what they wrote. That's AI agent fatigue.

Nobody Trained Me to Manage Five AI Agents at Once

Running several AI agents in parallel doesn't shrink the work, it moves the bottleneck to reviewing and trusting what they wrote. That's AI agent fatigue.

Three parallel lanes of small glowing nodes, shaped like a web page, a mobile screen, and a CI pipeline, each with a different distribution of check marks weighted toward its riskiest section
Engineering and Development

Your Testing Problem Is a Confidence-Allocation Problem

Most testing debates are about shape, not risk. A plain-language look at risk-based testing across web, mobile and CI/infra work.

Your Testing Problem Is a Confidence-Allocation Problem

Most testing debates are about shape, not risk. A plain-language look at risk-based testing across web, mobile and CI/infra work.

Editorial illustration connecting web performance metrics with search visibility and page experience
Engineering and Development

Core Web Vitals and SEO: What They Do and Don't Influence

A source-backed look at how Core Web Vitals relate to SEO: what Google says, where they matter, and how to prioritize without overclaiming ranking impact.

Core Web Vitals and SEO: What They Do and Don't Influence

A source-backed look at how Core Web Vitals relate to SEO: what Google says, where they matter, and how to prioritize without overclaiming ranking impact.

One Shiba Inu hits another on the head with a baseball bat, captioned BONK, beside a honey pot icon and a palette icon. A pile of gibberish bot emails sits to the right, under the words No bots allowed.
Engineering and Development

I Stopped Bot Emails With a Multi-Step Contact Form

Bot emails hit my one-page contact form: SEO pitches, gibberish. A four step form, a honeypot, a two-second timer, and the bots went quiet.

I Stopped Bot Emails With a Multi-Step Contact Form

Bot emails hit my one-page contact form: SEO pitches, gibberish. A four step form, a honeypot, a two-second timer, and the bots went quiet.

Side-by-side comparison of Microdata, JSON-LD, and RDFa structured data code examples
Engineering and Development

Microdata vs JSON-LD vs RDFa: 2026 Comparison Guide

Microdata vs JSON-LD vs RDFa compared for 2026 — what Google recommends and how to choose without ranking myths. Part 2 of the series.

Microdata vs JSON-LD vs RDFa: 2026 Comparison Guide

Microdata vs JSON-LD vs RDFa compared for 2026 — what Google recommends and how to choose without ranking myths. Part 2 of the series.

Core Web Vitals optimization strategies showing quick wins for LCP, INP, and CLS in 2026
Engineering and Development

Core Web Vitals in 2026: Optimization Quick Wins

A triage-first guide to the quick fixes that most often move LCP, INP and CLS in production, with pointers for the stubborn issues that remain.

Core Web Vitals in 2026: Optimization Quick Wins

A triage-first guide to the quick fixes that most often move LCP, INP and CLS in production, with pointers for the stubborn issues that remain.

Core Web Vitals performance metrics showing LCP, INP, and CLS thresholds for 2026
Engineering and Development

Core Web Vitals in 2026: Understanding LCP, INP & CLS

The 2026 guide to Core Web Vitals: what LCP, INP and CLS measure, the updated thresholds, how to test them, and why Lighthouse differs from field data.

Core Web Vitals in 2026: Understanding LCP, INP & CLS

The 2026 guide to Core Web Vitals: what LCP, INP and CLS measure, the updated thresholds, how to test them, and why Lighthouse differs from field data.

Automated performance testing pipeline with Lighthouse CI running in GitHub Actions
Engineering and Development

Automated Performance Testing with Lighthouse CI and RUM

Run Lighthouse CI in GitHub Actions with performance budgets, then collect Real User Monitoring data for Core Web Vitals.

Automated Performance Testing with Lighthouse CI and RUM

Run Lighthouse CI in GitHub Actions with performance budgets, then collect Real User Monitoring data for Core Web Vitals.

Modern Redux Toolkit architecture with RTK Query data fetching and TypeScript
Engineering and Development

Modern Redux with Redux Toolkit & RTK Query in 2026

A 2026 guide to Redux Toolkit and RTK Query with TypeScript: createSlice, createAsyncThunk, automatic caching and tag-based invalidation.

Modern Redux with Redux Toolkit & RTK Query in 2026

A 2026 guide to Redux Toolkit and RTK Query with TypeScript: createSlice, createAsyncThunk, automatic caching and tag-based invalidation.

Side-by-side comparison of a Gatsby site and an Astro site with performance metrics, showing the Astro build with faster load times and simpler architecture
Engineering and Development

Rebuilding My Site with Astro and Tailwind CSS

Why I left Gatsby for Astro, and how I rebuilt my site with Tailwind CSS, Content Collections and MDX, with migration steps and lessons learned.

Rebuilding My Site with Astro and Tailwind CSS

Why I left Gatsby for Astro, and how I rebuilt my site with Tailwind CSS, Content Collections and MDX, with migration steps and lessons learned.

A photograph illustrating composition and light in photography
Philosophy

Lessons from Photography for Solving Engineering Problems

Exploring my thoughts on how photography principles like composition, lighting, and creativity can enhance problem-solving and innovation as an engineer.

Lessons from Photography for Solving Engineering Problems

Exploring my thoughts on how photography principles like composition, lighting, and creativity can enhance problem-solving and innovation as an engineer.

Performance monitoring dashboard showing LCP and INP metrics optimization with CDN and RUM data
Engineering and Development

Advanced Core Web Vitals: LCP, INP, CDN and Field Data

Go beyond the first fixes with fetchpriority, yielding long tasks, CDN and cache review, and field monitoring, without hunting for a silver bullet.

Advanced Core Web Vitals: LCP, INP, CDN and Field Data

Go beyond the first fixes with fetchpriority, yielding long tasks, CDN and cache review, and field monitoring, without hunting for a silver bullet.

A futuristic assembly line where glowing web page mockups pass through scanning gates that highlight accessibility elements like form labels and contrast ratios, color-coded green or amber, in a sleek dark industrial space with teal and violet lighting
Engineering and Development

Automated Accessibility Testing with axe-core and Playwright

Run accessibility regression checks in CI with axe-core, Playwright and GitHub Actions, then add manual testing where the tools stop.

Automated Accessibility Testing with axe-core and Playwright

Run accessibility regression checks in CI with axe-core, Playwright and GitHub Actions, then add manual testing where the tools stop.

Split image showing a frustrated user struggling with an inaccessible form versus a happy user easily completing an accessible form with proper labels and clear feedback
Engineering and Development

Creating Accessible Web Forms

A developer's guide to accessible web forms: WCAG 2.2, ARIA roles, semantic HTML, keyboard navigation and clear error handling.

Creating Accessible Web Forms

A developer's guide to accessible web forms: WCAG 2.2, ARIA roles, semantic HTML, keyboard navigation and clear error handling.

Accessible web app with ARIA and keyboard navigation
Engineering and Development

Web Accessibility Guide: ARIA, Keyboard and Color Contrast

A practical accessibility guide covering semantic HTML, keyboard support, focus management, color contrast and when ARIA is needed. Updated for WCAG 2.2.

Web Accessibility Guide: ARIA, Keyboard and Color Contrast

A practical accessibility guide covering semantic HTML, keyboard support, focus management, color contrast and when ARIA is needed. Updated for WCAG 2.2.

GitHub Actions workflow for frontend projects
Engineering and Development

Automate Frontend Workflows with GitHub Actions Webhooks

Set up CI/CD with custom webhooks in GitHub Actions to deploy Astro, React and static sites automatically when content changes.

Automate Frontend Workflows with GitHub Actions Webhooks

Set up CI/CD with custom webhooks in GitHub Actions to deploy Astro, React and static sites automatically when content changes.

Optimized images in various formats and sizes
Engineering and Development

Image Optimization for the Modern Web

Speed up image loading with responsive srcset and sizes, WebP and AVIF conversion, lazy loading and CI automation, with code examples throughout.

Image Optimization for the Modern Web

Speed up image loading with responsive srcset and sizes, WebP and AVIF conversion, lazy loading and CI automation, with code examples throughout.

Core Web Vitals metrics dashboard showing performance optimization results
Engineering and Development

Core Web Vitals: Real-World Optimization Strategies

Optimize Core Web Vitals for better SEO and UX. Practical strategies for LCP, INP, and CLS with code examples and real-world implementation tips.

Core Web Vitals: Real-World Optimization Strategies

Optimize Core Web Vitals for better SEO and UX. Practical strategies for LCP, INP, and CLS with code examples and real-world implementation tips.

Advanced PWA features showing offline support, push notifications, and background sync capabilities
Engineering and Development

Advanced PWA Guide: Offline, Push and Background Sync

Build offline PWAs with cache-first and network-first strategies, IndexedDB queues, Background Sync and Web Push with VAPID keys, with working code.

Advanced PWA Guide: Offline, Push and Background Sync

Build offline PWAs with cache-first and network-first strategies, IndexedDB queues, Background Sync and Web Push with VAPID keys, with working code.

SEO link equity flow diagram showing link juice distribution between interconnected web pages
Engineering and Development

Link Juice and SEO: Nofollow, Noreferrer and Link Equity

Learn how link juice, the nofollow and noreferrer attributes and link equity work, with advice on managing internal and external links.

Link Juice and SEO: Nofollow, Noreferrer and Link Equity

Learn how link juice, the nofollow and noreferrer attributes and link equity work, with advice on managing internal and external links.

JSON-LD code example and validation workflow for structured data implementation
Engineering and Development

JSON-LD Guide 2026: Implementation, Validation & Sync

Complete 2026 JSON-LD guide: placement, validation, and keeping markup in sync with page content. Part 1 of the Structured Data series.

JSON-LD Guide 2026: Implementation, Validation & Sync

Complete 2026 JSON-LD guide: placement, validation, and keeping markup in sync with page content. Part 1 of the Structured Data series.

HTML code with Microdata and Microformats semantic markup highlighted showing SEO structured data implementation
Engineering and Development

Microformats and Microdata: Where They Still Fit

How Microformats and Microdata differ, where each still fits, and why most new Google-focused structured data work now starts with JSON-LD.

Microformats and Microdata: Where They Still Fit

How Microformats and Microdata differ, where each still fits, and why most new Google-focused structured data work now starts with JSON-LD.

Comprehensive SEO checklist with technical optimization elements for web developers
Engineering and Development

Ultimate SEO Checklist for Web Developers: Complete Guide

A developer's SEO checklist covering technical optimizations, metadata, structured data and performance, so search engines and users understand your pages.

Ultimate SEO Checklist for Web Developers: Complete Guide

A developer's SEO checklist covering technical optimizations, metadata, structured data and performance, so search engines and users understand your pages.

AI and human collaboration in web development workspace
Engineering and Development

Will Artificial Intelligence fully replace Web Developers?

Businesses use AI to boost efficiency and cut costs, yet web development still has no substitute for human expertise. Here is why.

Will Artificial Intelligence fully replace Web Developers?

Businesses use AI to boost efficiency and cut costs, yet web development still has no substitute for human expertise. Here is why.

Abstract black and white photograph showing gradients between light and shadow representing life's ambiguities
Philosophy

Grays and Whites: Embracing Life's Ambiguities

How we label the ambiguous parts of our lives, career choices especially, and why embracing the undefined can beat rigid categories.

Grays and Whites: Embracing Life's Ambiguities

How we label the ambiguous parts of our lives, career choices especially, and why embracing the undefined can beat rigid categories.

TypeScript declaration merging and module augmentation patterns
Engineering and Development

TypeScript Declaration Merging and Module Augmentation

Extend third-party library types without forking: declaration merging, module augmentation, ambient declarations and .d.ts files, with real examples.

TypeScript Declaration Merging and Module Augmentation

Extend third-party library types without forking: declaration merging, module augmentation, ambient declarations and .d.ts files, with real examples.

TypeScript type guards and control flow narrowing visualization
Engineering and Development

TypeScript Type Guards: Narrowing, Predicates and typeof

Use TypeScript type guards for runtime type safety: discriminated unions, custom type predicates, typeof, instanceof and control flow narrowing.

TypeScript Type Guards: Narrowing, Predicates and typeof

Use TypeScript type guards for runtime type safety: discriminated unions, custom type predicates, typeof, instanceof and control flow narrowing.

Contemplative train journey through rural Indian countryside representing Buddhist impermanence concept
Philosophy

Trains and the Buddhist Principle of Impermanence

Exploring how train journeys reflect the Buddhist concept of impermanence, teaching us to cherish moments and embrace life's transitory nature.

Trains and the Buddhist Principle of Impermanence

Exploring how train journeys reflect the Buddhist concept of impermanence, teaching us to cherish moments and embrace life's transitory nature.

TypeScript strict mode compiler configuration and type safety visualization
Engineering and Development

TypeScript Strict Mode: Best Practices for Production Code

A guide to TypeScript strict mode: configure strictNullChecks, strictPropertyInitialization, noImplicitAny and related options for production code.

TypeScript Strict Mode: Best Practices for Production Code

A guide to TypeScript strict mode: configure strictNullChecks, strictPropertyInitialization, noImplicitAny and related options for production code.

TypeScript utility types and advanced type system patterns visualization
Engineering and Development

TypeScript Utility Types and Advanced Patterns (2026)

Practical TypeScript utility types: Partial, Pick, Omit, Record, mapped, conditional and template literal types, with production-ready examples.

TypeScript Utility Types and Advanced Patterns (2026)

Practical TypeScript utility types: Partial, Pick, Omit, Record, mapped, conditional and template literal types, with production-ready examples.

Automated Lighthouse audit dashboard showing CI/CD performance testing pipeline for Progressive Web Apps
Engineering and Development

Programmatic Lighthouse Audits with Mocha and Chai

A code-first way to automate Lighthouse audits with Mocha, Chai and chrome-launcher. Lighthouse CI is the better default for most new projects.

Programmatic Lighthouse Audits with Mocha and Chai

A code-first way to automate Lighthouse audits with Mocha, Chai and chrome-launcher. Lighthouse CI is the better default for most new projects.

React hooks useContext and useReducer implementation replacing Redux for state management
Engineering and Development

React State Management Without Redux: Context and Reducer

Manage complex React state with useContext and useReducer: a scalable, Redux-like pattern with no external dependencies.

React State Management Without Redux: Context and Reducer

Manage complex React state with useContext and useReducer: a scalable, Redux-like pattern with no external dependencies.

Scalable React application architecture diagram showing Redux store structure with sagas and services
Engineering and Development

Scalable React Architecture: Redux, Sagas & Services Pattern

Learn Redux architecture patterns for React applications. Complete guide to organizing Redux store, sagas, services, and selectors for enterprise projects.

Scalable React Architecture: Redux, Sagas & Services Pattern

Learn Redux architecture patterns for React applications. Complete guide to organizing Redux store, sagas, services, and selectors for enterprise projects.

Diagram illustrating React application architecture concepts and directory structures.
Engineering and Development

Scalable React Architecture: Directory Structure Guide

Learn how to structure React applications with scalable, maintainable architecture. Practical directory organization patterns based on real-world experience.

Scalable React Architecture: Directory Structure Guide

Learn how to structure React applications with scalable, maintainable architecture. Practical directory organization patterns based on real-world experience.

React Native logo with Android emulator illustration
Engineering and Development

Android Emulator Without Android Studio for React Native

Set up an Android emulator for React Native on Mac, Linux and Windows from the command line, with no Android Studio and minimal resource use.

Android Emulator Without Android Studio for React Native

Set up an Android emulator for React Native on Mac, Linux and Windows from the command line, with no Android Studio and minimal resource use.

React Native security implementation with encrypted data storage and Redux persist
Engineering and Development

React Native Data Encryption: Secure Redux Store Persistence

Encrypt Redux store persistence in React Native with redux-persist-transform-encrypt to protect user data stored on the device.

React Native Data Encryption: Secure Redux Store Persistence

Encrypt Redux store persistence in React Native with redux-persist-transform-encrypt to protect user data stored on the device.

React Native Android app size optimization showing before and after build size reduction
Engineering and Development

Reduce React Native Android APK Size: Optimization Guide

Reduce the size of a React Native Android app with ProGuard, architecture-specific builds and bundle splitting for a smaller, faster APK.

Reduce React Native Android APK Size: Optimization Guide

Reduce the size of a React Native Android app with ProGuard, architecture-specific builds and bundle splitting for a smaller, faster APK.