This is where I publish things that I’ve written
If you’re coming from my Hashnode blog, you might be interested in why I migrated to a self-managed blog.
- Oct 26, 2024 Eating Vegetarian for Now
- Sep 7, 2024 I Am a Technician, Not a Strategist
- Feb 4, 2024 The Meaning of Life: 2024 Edition
- Feb 1, 2024 Efficiently Determining the Gradient of an Unknown Static Vector Field
- Jan 4, 2024 Frontend and Backend Development Are the Same Thing
- Jan 1, 2024 2023 in review: My favorite album releases
- Nov 27, 2023 I Guess I’m an AI Optimist Now
- Sep 19, 2023 The Best Professional Advice I Have Ever Received
- Aug 23, 2023 Arrival EP Release
- Aug 7, 2023 Job Search Retrospective
- Jul 27, 2023 How I Kept My Sanity In My First Month of Job Searching
- Jul 21, 2023 Trying (and Failing) to Build the World’s Fastest Case-Changing TypeScript Library
- Jul 7, 2023 The Case for Overshooting
- Jun 28, 2023 On grieving a sudden job loss
- Jun 13, 2023 All entitled on the Reddit front
- Jun 9, 2023 Slippery slopes are the antithesis of mindfulness
- Jun 2, 2023 Eric’s life hacks #1: Take cold showers
-
May 25, 2023
Indispensable VS Code shortcuts #1:
cmd+k+w
- May 17, 2023 I am a web developer and I wrote a real algorithm
- May 10, 2023 “Should” is the worst word
- May 7, 2023 One weird trick to clear out your backlog
- Apr 27, 2023 Techno Optimism Is Not the Opposite of Techno Realism
- Apr 19, 2023 Migrating From Hashnode to Self-Managed
- Apr 11, 2023 Testing against a database: new approaches
- Mar 8, 2023 The most challenging part of being an adult is finding balance
- Mar 3, 2023 Switching from coffee to tea has increased my sense of peace
- Dec 14, 2022 Loop Supreme, part 12: v1.0 release and project retro
- Dec 9, 2022 My favorite album releases of 2022
- Dec 8, 2022 Loop Supreme, part 11: Exporting stems and changing inputs
- Nov 28, 2022 Loop Supreme, part 10: Keyboard bindings
- Nov 23, 2022 Loop Supreme, part 9: Visualizing the waveform
- Nov 18, 2022 Loop Supreme, part 8: Building and hosting
- Nov 16, 2022 Loop Supreme, part 7: Latency, and adding track functionality
- Nov 13, 2022 Loop Supreme, part 6: Workers and AudioWorklets
- Nov 12, 2022 Loop Supreme, part 5: Record and loop a track
- Nov 7, 2022 Loop Supreme, part 4: Adding a Scene
- Nov 6, 2022 Loop Supreme, part 3: Metronome click
- Nov 4, 2022 Loop Supreme, part 2: Adding a Metronome
- Nov 3, 2022 New project: building a web-based audio looper!
- Aug 30, 2022 Risotto is good, risotto is great
- Aug 24, 2022 My creative process for my latest track, Long Heat
- Aug 21, 2022 The Purge makes no sense
- Jul 30, 2022 How to communicate as a software engineer
- Mar 26, 2022 Hello from the crypto future!
- Dec 16, 2021 Conditionally define TypeScript types using data
- May 19, 2021 Write clean database tests with Jest
- Apr 23, 2021 The Quil tech stack
- Mar 6, 2021 Make clean PRs with git merge –squash
- Jan 23, 2021 If you can code, then make art. Else, return false
- Dec 6, 2020 How to call GitHub’s GraphQL API in vanilla JS
- Dec 4, 2020 A poor person’s JS profiler