Joshua Colvin
Home Writing Bookshelf Projects

Writing

Thoughts on software engineering, web development, and the craft of building things.

  • Feb 1, 2026

    Git Worktrees for Parallel Development

    Scaling Local Development with Isolated Worktrees and AI Coding Agents

    gitworktreesautomationai
    Read article
  • Jan 3, 2026

    Best Books I Read in 2025

    My favorite reads from 2025.

    booksreading
    Read article
  • Mar 28, 2022

    Creating Angular Component Styling Hooks with CSS Custom Properties

    Learn how to create styling hooks for your Angular components using CSS custom properties (CSS variables) to make them easily customizable.

    angularcss
    Read article
  • Mar 19, 2022

    Understanding Angular ::ng-deep

    A guide to understanding the Angular ::ng-deep CSS selector and how to use it responsibly.

    angularcss
    Read article
  • Sep 20, 2021

    How to Prevent Safari from Treating Numbers as Phone Numbers

    A quick tip on how to prevent Safari on IOS from automatically detecting and linking phone numbers.

    htmlsafari
    Read article
  • Sep 13, 2021

    How to get all checked checkbox values using JavaScript

    A quick tip on how to get all selected checkbox values using JavaScript.

    javascript
    Read article
  • Sep 6, 2021

    How to Conditionally Add Attributes in Angular

    A quick tip on how to conditionally add attributes in Angular.

    angular
    Read article
  • Aug 3, 2021

    Building a Pagination Component in Angular

    A step-by-step guide to building a reusable pagination component in Angular.

    angular
    Read article
  • Sep 8, 2020

    How to Check Which Versions of Node Angular CLI Supports

    A quick tip on how to check which versions of Node.js are supported by the Angular CLI by looking at the package.json file on GitHub.

    angular
    Read article
  • Sep 4, 2020

    How to Set Up Git hooks with husky and lint-staged

    A guide on how to set up Git hooks using husky and lint-staged to ensure code quality before commits and pushes.

    git
    Read article
  • Aug 30, 2020

    Subscribing to route params and route data in Angular

    A guide on how to subscribe to both route parameters and resolved data in an Angular component using RxJS.

    angular
    Read article
  • Sep 29, 2019

    Mocking Route params in Angular unit tests

    A guide on how to mock ActivatedRoute params and snapshot data in Angular unit tests.

    angular
    Read article
  • Feb 12, 2019

    Handling Errors in Angular Resolvers

    How to handle and pass errors through Angular route resolvers to components.

    angular
    Read article
  • Jan 1, 2019

    Creating a Route Resolver in Angular

    Learn how to create and use a route resolver in Angular to pre-fetch data before navigating to a route.

    angular
    Read article
  • Oct 29, 2018

    Adding dynamic validators in Angular

    A guide on how to add dynamic validators to Angular form controls.

    angular
    Read article
  • Oct 23, 2018

    Why choose Angular?

    Here are some of the reasons I keep choosing Angular for my projects.

    angular
    Read article
  • Feb 28, 2017

    Simple Mock REST API's with JSON-Server

    How to quickly create a mock REST API with JSON-Server.

    json-server
    Read article
  • Sep 14, 2016

    Understanding JavaScript: Closures

    A beginner friendly explanation of closures in JavaScript with examples.

    javascript
    Read article
  • Sep 5, 2016

    Understanding JavaScript: Hoisting

    A beginner friendly explanation of hoisting in JavaScript with examples.

    javascript
    Read article
  • Aug 29, 2016

    Understanding JavaScript: Scope

    A quick overview of scope in JavaScript.

    javascript
    Read article
  • Feb 28, 2016

    Understanding JavaScript: this

    A guide to understanding the JavaScript this keyword with examples.

    javascript
    Read article
  • Jan 18, 2016

    Writing better JavaScript: Coding Exercises

    A list of resources for coding exercises to help you become a better JavaScript developer.

    Read article

© 2026 Joshua Colvin