Blog

You can find my latest AI engineering articles on Substack, leadership on LeadDev, or browse my topic guides and personal blog posts below.

Personal Blog

Running inclusive meetings

Running inclusive meetings

Inclusive meetings can help surface multiple perspectives and ideas, which can lead to better decision making and problem solving.

Effective Learning with Bloom's Taxonomy

Effective Learning with Bloom's Taxonomy

Write about what you learn. It pushes you to understand topics better. Sometimes the gaps in our knowledge only become clear when explaining things to others. Blooms Taxonomy ca...

First Principles for Software Engineers

First Principles for Software Engineers

First principles thinking can be helpful for solving complex problems because it allows you to break down a problem into its core elements and then systematically build up a sol...

A coach, a mentor and a sponsor

A coach, a mentor and a sponsor

A coach talks to you, a mentor talks with you, and a sponsor talks about you. Each can play a valuable role in your career growth.

Debugging Tactics

Debugging Tactics

Debugging is the process of finding and fixing problems in software so that it functions as intended

Managing Complex Change

Managing Complex Change

The Managing Complex Change model by Dr. Mary Lippitt is an effective framework that can be used in any organization to initiate change

Software Engineering - The Soft Parts

Software Engineering - The Soft Parts

Today I will share some of the software engineering soft skills I have learned from my first 10 years on Google Chrome, where I am a Senior Staff Engineering Manager

React Server Components

React Server Components

React Server Components aim to enable modern UX with a server-driven mental model. In this post I will share some notes I took while catching up on the latest RFC and talk aroun...

The Import On Interaction Pattern

The Import On Interaction Pattern

Tip: Lazy-load non-critical resources when a user interacts with UI requiring it. Your page may contain code or data for a component or resource that isnt immediately necessary....

Incremental Migrations

Incremental Migrations

Incremental migrations are excellent for updating large legacy projects. Migrate a small piece at a time with lower risk then gradually do the rest.

Faster Web App Delivery with PRPL

Faster Web App Delivery with PRPL

PRPL is a pattern for structuring and serving web applications and Progressive Web Apps with an emphasis on improved app delivery and launch performance.

Substack

LeadDev

Managing the chaos of context switching

It's time to examine the good, the bad, and the very ugly elements of context switching. Even better, we'll take a look at some strategies for managing it.

What makes an effective software engineer?

Being a good software engineer is not necessarily the same as being an effective one. Here, Google's Addy Osmani identifies the ten key traits of effective software engineers.