Writing
2024
- Eng Log 0001 - Nov 23
- AI as QA Agent - Jun 16
- Package Footprint - Jun 2
- Merge and Rebase - May 15
- Replacing Jest with Node test runner - Apr 16
- TPM - Mar 24
- Typescript - Mar 22
- Descriptive, Prescriptive, Predictive - Mar 16
- Breville Grind Control - Feb 29
- npmgraph - Feb 7
- 50-Line Patches - Jan 31
2023
- Nudging and Budging - Sep 22
- Issues with Github Issues Comments - Sep 20
- LinkedIn Developer API - Jul 18
- Asymmetrical Inputs - Jul 13
- When SemVer doesn't work - May 21
- The Fediverse At Work - Feb 12
- Drip, Drip, Drop - Jan 28
- Failing to Debug pnpm Workspaces - Jan 20
- Hydration - Jan 18
- Investigating Signal Handling in Node.js - Jan 16
- 2023: Home Screen - Jan 11
- CSS Rollover Animation - Jan 8
- TickTick - Jan 5
- Indieweb Overload - Jan 3
- Webmentions Test - Jan 2
2022
- A Test Suite & Design System For My Blog - Dec 28
- Federated meetups at Apple - Dec 26
- How To Transfer Safari Tabs To Chrome on iOS - Dec 25
- Get The Right Timezone in Javascript - Dec 17
- First Developer Experience With htmx - Dec 16
- One Hour With Enhance.dev - Dec 13
- Recently Highlighted - Dec 11
- Dream RSS Reader - Dec 9
- The Infrastructure Is The Framework - Jul 5
- 3 Pillars of IC Success - Jun 21
- Technical Debt Terms - Jun 7
- Today in CS: Graphs - May 9
- TIL: Creating Globals - Apr 18
- Cookie Log No. 2 - Feb 11
- Debugging a Flash of Unstyled Text - Jan 20
- Cookie Log No. 1 - Jan 2
2021
- Release Process for Shared npm Packages - Nov 19
- Current Interests - Aug 2021 - Aug 15
- EMFILE: too many open files - Aug 13
- Terser vs esbuild: Ember app case study - Aug 5
- Node 14 and npm 7 upgrade gotchas - Jul 8
- The Work Leading Up To The Work - Jun 16
2020
- Can I Give Some Experience Back? - Jul 16
- Stop Extending Ember's Built In Components - Jul 6
- Coming around to merge commits - Jun 10
- Distributing Javascript Libraries - May 9
- Rails to Ruby - Apr 30
- Ember Template Lint Rule from Addon - Mar 25
- New Ember Projects - Feb 5
- 2020: Home Screen - Jan 3
- Site Performance Improvements - Jan 2
2019
- Post-Octane Ember Routing - Dec 22
- Ember Octane: Default Values - Dec 6
- Ember Services - Oct 24
- Stateful Programming - Jul 1
- #EmberJS2019: Roadmap Response - Jun 10
- Getting Surprised By Technology - Jan 4
2018
- 5 Strategies To Refactoring Architecture - Jul 2
- Debugging Flaky Ember Tests - Apr 24
- Auto Closing Attribute Selectors? - Apr 11
- Change Git Commit Authors - Mar 9
- CORS and Preflight Requests - Mar 9
- EventListener objects - Jan 22
- Disabled Inputs - Jan 12
- Instapaper Wish List - Jan 2
2017
- Ember Object Model extend vs create - Dec 7
- Ember core classes cheatsheet - Dec 4
- stdout vs stderr - Nov 20
- Using Python Virtualenvs - Oct 17
- Simple Vs. Simplistic - Sep 29
- Reduce - Aug 14
- Blockchain Mining and Transferring - Jun 14
- Regex: The Greedy Dot Star - May 19
- How I Debugged The Last Thing - May 2
- The Factory Pattern and Circular Dependencies - Apr 19
- Switching to Functional CSS - Mar 6
- Ruby callable methods - Feb 10
- Neat Recursion Trick with UNIX Signals - Feb 8
- 2017: Home Screen - Jan 1
2016
- Japan Journal - Dec 3
- UI architecture - Aug 28
- Nothing In Your Head - Jul 19
- A Brief History of Nuclear Diplomacy - Jun 10
- Open Ember Questions - Mar 30
- 3 years of API development - Mar 7
- Linkedin is even less useful to me now - Feb 24
- 2016: Home Screen - Jan 8
2015
- Bringing Down the... Website? - Sep 25
- Where Have All The Bards Gone? - Sep 18
- No Words - Sep 4
- Stochastic Self Similarity - Aug 30
- Why Product Management is Hard - Aug 26
- Good Morning Son - Aug 21
- Ukeleles - Aug 14
- Feeling Good - Aug 7
- Grand & Picturesque - Jul 24
- Really Thrilling & Cosmic - Jul 17
- Me Gustas Tu - Jul 10
- I Don't Know What A Deductible Is - Jul 5
- We Are Nowhere, And It's Now. - Jul 3
- One. Catchy. Bengali. Number. - Jun 26
- Khalbali - Jun 19
- People let me paint a picture - Jun 12
- Every Week In Your Inbox - Jun 5
- Triple Threat - May 29
- Unit Testing: Interface vs. Implementation - May 26
- How Do I Make You Feel - May 22
- every week to your inbox - May 15
- Legacy - May 8
- The Guy Next Door - May 1
2014
- How Rails Works - Oct 4
- Active Model Serializers has_many association - Oct 2
- Protips: brought to you by pain - Oct 1
- Programming Fundamentals - Sep 27
- What is a website? - Sep 27
- Cherry pick commit OUT of history - Aug 22
- Goals for 2014 - Mar 12
- Auxiliary Business - Mar 1
2013
- Rails Postgres OSX Install - Jan 10
2012
- The Mechanics of Transcendental Meditation - Dec 7
- Alan Kay on The Web - Jul 10
- Textbooks are Broken - Jul 3
- The Power Of Social Media - May 12
- βCalled id for nil, which would mistakenly be 4β - Apr 1
- Method Names And Variables Are The Same Thing - Mar 17
- Pockets of Culture & Packets of Color - Mar 9
- The Art of Being Confused - Feb 18
- Friday morning bootcamp blues (in Ruby) - Feb 10
2011
2010
- Building Social Business - May 20
- Networking Training Seminar - Jan 27