My Blog
2025
Migrating from Gatsby to Next.js
October 20, 2025 — Next.js, Gatsby, React
Rebuilding Clash of Clans’ building system in React
June 5, 2025 — React, Game Dev
2024
Cleaning up dead files in your React project
November 29, 2024 — React
Why I regret not launching my side project
October 10, 2024 — Notes, Side Projects
Using React Context for Supabase state management
July 24, 2024 — React, Supabase
Creating a swipeable stories component in React
July 23, 2024 — React
Creating a custom React Hook to fetch image dimensions
July 22, 2024 — React
Building dynamic routes in Next.js with Supabase
July 4, 2024 — Next.js, Supabase
2023
Exploring TypeScript: typeof and keyof
September 30, 2023 — TypeScript
Exploring TypeScript: type guards
September 2, 2023 — TypeScript
Exploring TypesScript: any vs unknown
September 1, 2023 — TypeScript
Exploring TypeScript: generics (w/ React example)
August 31, 2023 — TypeScript
Debounce method in JavaScript code challenge
August 30, 2023 — JavaScript
useMemo overdose
August 20, 2023 — React
HTML table generator in React code challenge
July 22, 2023 — JavaScript, React
Get deeply nested object in JavaScript code challenge
July 16, 2023 — JavaScript, Algorithms
Chunk method in JavaScript code challenge
July 15, 2023 — JavaScript, Algorithms
My first talk experience: embracing failure and growth
July 12, 2023 — Notes
Build a Text-to-Speech component in React
April 5, 2023 — React, Web Speech API
How to efficiently refactor useState to useReducer in React
April 3, 2023 — React
How to implement your version of Array.map() in JavaScript
February 19, 2023 — JavaScript, Data Structures
The Almanack of Naval Ravikant book notes
February 18, 2023 — Notes, Books
Integrating sound effects in React
February 10, 2023 — React
Removing stickers from my MacBook Pro
February 8, 2023 — Notes
Maximising performance with React code splitting techniques
February 2, 2023 — React
Types vs Interfaces in TypeScript
January 27, 2023 — TypeScript
Extreme Ownership book notes
January 23, 2023 — Notes, Books
Transform CSV string into JSON format JavaScript code challenge
January 20, 2023 — JavaScript, Data Structures
4 ways to implement pagination on the front-end
January 18, 2023 — Front-End
Closures in JavaScript
January 1, 2023 — JavaScript
2022
Hoisting in JavaScript
December 29, 2022 — JavaScript
React's useLayoutEffect explained
December 26, 2022 — React
Callbacks in JavaScript
December 21, 2022 — JavaScript
Promises in JavaScript
December 18, 2022 — JavaScript
Implement an array-based Stack data structure in JavaScript
December 13, 2022 — JavaScript, Data Structures
Find pivot index code challenge
November 29, 2022 — JavaScript, Algorithms
FizzBuzz code challenge
November 28, 2022 — JavaScript, Algorithms
Number of steps to reduce a number to zero code challenge
November 28, 2022 — JavaScript, Algorithms
Richest customer wealth code challenge
November 28, 2022 — JavaScript, Algorithms
Bill Division code challenge
November 27, 2022 — JavaScript, Algorithms
Running sum of 1d array code challenge
November 27, 2022 — JavaScript, Algorithms
Compare the Triplets code challenge
November 26, 2022 — JavaScript, Algorithms
Backspace String Compare code challenge
November 25, 2022 — JavaScript, Algorithms
Breaking the Records code challenge
November 24, 2022 — JavaScript, Algorithms
My tech stack
November 23, 2022 — Productivity
Counting Sort 1 code challenge
November 21, 2022 — JavaScript, Algorithms
Find the Median code challenge
November 21, 2022 — JavaScript, Algorithms
How to add Utterances to your dev blog
November 21, 2022 — React
Diagonal Difference code challenge
November 20, 2022 — JavaScript, Algorithms
Lonely Integer code challenge
November 20, 2022 — JavaScript, Algorithms
Time Conversion code challenge
November 20, 2022 — JavaScript, Algorithms
Mini-Max Sum code challenge
November 19, 2022 — JavaScript, Algorithms
Plus Minus code challenge
November 19, 2022 — JavaScript, Algorithms
My favourite 5 talks from Next.js Conf 2022
November 17, 2022 — Next.js, Conferences
DevX Conf 2022 Recap
May 12, 2022 — Developer Experience, Conferences
Add search to a Gatsby blog
April 3, 2022 — React, Gatsby
14 habits of highly productive developers book notes
March 19, 2022 — Notes, Books
List of goals for 2022
January 2, 2022 — Notes, Life Goals
2021
2021 Recap
December 31, 2021 — Notes, Life Goals
How to strip emojis from string in JavaScript
December 22, 2021 — JavaScript
How to reverse a string in JavaScript
September 22, 2021 — JavaScript, Algorithms
Two years to find a perfect backpack
February 26, 2021 — Notes, Backpacks
How to remove duplicates from array in JavaScript
February 16, 2021 — JavaScript
Vim cheat sheet
February 14, 2021 — Vim
How to yarn audit fix
February 11, 2021 — Yarn, Npm
Add social share buttons to Gatsby blog
February 9, 2021 — React, Gatsby
How to use Redux-Persist with Redux-Toolkit
January 29, 2021 — React, Redux
List of goals for 2021
January 1, 2021 — Notes, Life Goals
2020
How to deploy Create-React-App to Firebase Hosting
August 21, 2020 — React, Firebase
Migrating from WordPress to Gatsby
August 20, 2020 — Gatsby, WordPress, CMS
Hooked Book Notes
February 3, 2020 — Notes, Books