Blog

I usually write about software engineering, indie-hacking, and personal growth. Blogging, for me, is a way to keep track of stuff — learning, projects, thoughts, etc. If you find something useful here, do let me know on X.

Notes on Aurelius' launch

Oct 20, 2024#side-projects

I launched Aurelius last week. Here are a some notes on how I launched, how it went, and how I would launch products in the future.

Automating my Tmux workflow using smug

Oct 14, 2024#productivity·#golang·#workflow

I recently automated more of my development workflow — this time for tmux. I used a CLI tool called smug and wrote configurations for automatically setting up my tmux sessions.

Ambitious Projects

Oct 12, 2024#journal·#side-projects

This is a small journal entry about a few ambitious projects that inspire me. And also about my anxiety when I think about my own ambitious project ideas.

The Final Countdown

Oct 02, 2024#productivity·#learning·#journal

Reflecting on regrets and wins of 2024. Reviving projects, learning new things, and setting personal challenges for the year's final stretch. A self-reminder to push harder.

Streamlining Go + Chi Development: generating code from an OpenAPI spec

Sep 27, 2024#side-projects·#productivity·#golang

In this post, I'll talk about how I'm building a RESTful API by generating Go code from an OpenAPI specification.

Are local-first apps the future?

Aug 21, 2024#side-projects·#local-first

While I don't think local-first is a one-size-fits-all way to build apps, I think they'll become ubiquitous. And a lot more developers are going to build local-first features into their apps.

Moving a little bit away from JS land

Aug 12, 2024#golang·#learning

For my entire professional career I've only worked in the JavaScript ecosystem. It was great — for the most part — but recently I've been kinda looking for something different.

Remix is great for local-first apps

Aug 08, 2024#local-first·#remix

There's a lot to love about Remix. But what I've found recently is Remix is a great choice for local-first apps.

Reviving Aurelius

Aug 05, 2024#side-projects·#local-first

After a long time of not working on side projects, I started to miss it again a few weeks back. This came almost right after realizing that all my side projects were dead. So the first step was to revive my favorite project.

All my side projects are dead

May 06, 2024#side-projects·#journal

I haven't updated any of my projects in a while and I also stopped using most of them. Some of them are still useful but it's fine to move on from projects that are no longer needed.

Just use a server

May 02, 2024#opinion

The server vs serverless argument is seemingly never ending but I haven't changed my stance. Just use a server. It's not that hard.

The ephemeral nature of closed-source software

Feb 29, 2024#opinion·#open-source

An app that I was using everyday is shutting down. With nowhere to import the data I exported from this app, I'm thinking about the ephemeral nature of closed-source software and how open-source can mostly mitigate this problem.

I'm using Linear to accomplish my 2024 goals

Jan 19, 2024#productivity·#workflow

Will a beloved project management software built for teams, work for personal use?

How I pick what books to read

Jan 12, 2024#books

After I finish a book, here are the things I consider when choosing what to read next

Hello, 2024

Jan 05, 2024#learning·#journal

Here are my 2024 goals for level up as a software engineer

2023

On Cocoon — a mind-bending puzzle game

Oct 10, 2023

I recently played a 3D puzzle platformer called Cocoon. I was so awestruck by its beautify and game design, I decided to write about it.

Vim Adventures: Final Part

Oct 09, 2023

After over 10 months of using the Neovim, I've decided to move back to WebStorm and RustRover. Here's why.

Using Planetscale with Prisma in a Remix app

Mar 28, 2023

In this post, I'll walkthrough how I combine three of my favorite technologies - Remix, Prisma, and Planetscale - to build fullstack applications

The NPM package stack for 2023

Mar 22, 2023

If you're building a shared library or publishing a library to NPM, then this stack will save you so much time and effort.

Vim Adventures, Part 2

Feb 06, 2023

After over 6 months of using the IdeaVim plugin with WebStorm and learning Vim keybindings, I've finally made the move to Neovim, full time.

I built a component library

Jan 13, 2023

I built my own React UI component library. It's called Catalyst UI. Here's why I decided to do it in 2023, when there are plenty of other options.

Hello, 2023!

Jan 05, 2023

I have a few things I want to accomplish in 2023. Here are the ones that are related to software and development.

2022

Why I like Remix

Jul 28, 2022

I've completely switched to using Remix for my projects. Here's why.

I used GitHub Copilot for a month

Jul 25, 2022

I've been using GitHub Copilot, since it became generally available a month ago. Here's my experience using it for the past month.

Diving deeper into Remix Stacks

Jun 27, 2022

I recently updated my Remix Stack, called Synthwave Stack. Here are some of the choices I made and why I made them.

Vim Adventures

Jun 23, 2022

I decided that it's time I put in some effort and learn Vim. Here's how it went.

Forget git stash and use git worktrees instead

Jun 20, 2022

Git worktree is a feature that lets you check out more than one branch at a time. They've been such a gamechanger for my git workflow.

Learning Go and saving Rust for later

Jun 15, 2022

A while ago, I wrote about how I'm learning Rust. I've actually stopped and chose to learn Go instead.

Writing layouts for time.Parse in Go

May 10, 2022

I had a bit of a hard time wrapping my head around parsing date and time in Go. Here's how I made sense of it.

Learning TypeScript by building stuff

May 02, 2022

Building projects that you would actually use is the best way to learn new things in software

Running on fumes

Apr 21, 2022

I think I'm burnt out

Using Planetscale in a Next.js app with Prisma

Apr 12, 2022

In this article, I explain how to set up a database on Planetscale and how to connect a Next.js app to the database using Prisma.

Exploring Remix Stacks

Apr 08, 2022

With Remix Stacks, you can get a Remix application fully-configured and ready to deploy with one command!

Setting up a terminal you will love to use

Jan 10, 2022

In this post, I'll walk you through how I set up my Linux terminal workflow with very little effort and how you can do the same.

My Tech Stack has changed for 2022

Jan 06, 2022

This year, I've updated my tech stack for building web applications.

Writing an interpreter in Rust

Jan 04, 2022

How does the compiler/interpreter know how many variables there are, how to allocate memory, and what to do about that silly mistake you made? How do you design a programming language from scratch(-ish)?

Technologies I'm learning in 2022

Jan 03, 2022

There are plenty of web technologies to learn and use in 2022. Here are my goals for learning web and related technologies this year.

2021

Overcoming anxiety and launching early

Oct 25, 2021

I'm having trouble launching stuff

Rust's Ownership Model: A Primer

Oct 12, 2021

Rust's Ownership model is a difficult concept for many newcomers to the language. In this article I attempt to explain the concept.

Metawork

Sep 27, 2021

What do I do before I start a project?

How do you write software for space?

Sep 26, 2021

I was curious about how software is written for space travel. Here are a series of stories answering the questions I had about the process, testing, conventions and more about software for space.

How to add Stripe subscriptions to your Next.js application

Sep 26, 2021

In this article, I show how we can add Stripe subscriptions to a Next.js application.

JavaScript's Temporal API fixes problems with the Date API

Sep 20, 2021

I recently heard about the Temporal API and how it fixes issues with the current date implementation in JavaScript. In this article I talk about Temporal API and its features, comparing it to Date.

Learning by building Breakable Toys

Sep 15, 2021

Building breakable toys is one of the best way I know, to learn a new programming language or technology. In this article I write about the features of a breakable toy.

The ongoing climb to be a writer

Sep 14, 2021

The story of why and how I'm on the path to becoming a writer.

Learning Rust as a JavaScript Developer

Sep 09, 2021

I recently decided to learn the Rust programming language. This is an introductory post on why I decided to learn Rust and how I'm going about it.

Serving a Next.js application over HTTPS in localhost

Sep 06, 2021

I recently set up a Next.js application to be served over HTTPS in localhost using mkcert. This is how I did it in under 5 minutes.

My Linux web development workflow

Sep 04, 2021

In this article, I write about all the tools and applications I use on Linux every day to build web applications and be productive.

All the things you can do with Javascript optional chaining

Aug 28, 2021

In this article, I talk about optional chaining and all the things that we can do with it apart from reading nested object properties.

Rapid web development with Next.js, ChakraUI, and MongoDB

Aug 27, 2021

Next.js when combined with Chakra UI and MongoDB is a great way to build powerful web applications while moving fast and has a good developer experience.

Supercharging data fetching in React with SWR

Aug 25, 2021

The default way to fetch data in React applications is good. There is a better way and is super fun to use. It's called SWR.

Creating a lightweight widget in Preact

Jul 28, 2021

In this article, I talk about building a Preact widget, why I chose Preact, and the configuration required to set it all up.

Running Node.js natively in the browser

Jun 16, 2021

WebContainer is a new technology that lets us run Node.js natively in the browser. Built in webassembly, it's blazing fast, secure by default and enables seamless debugging in the Chrome DevTools.

Getting started in Terraform

Jun 13, 2021

A complete Terraform tutorial covering fundamental topics like infrastructure as code, terraform providers, state, terraform plan and terraform apply.

2020

Production-grade AWS architecture [Part 1]: Services

Oct 10, 2020

Amazon Web Services is one of the largest cloud service providers in the world. Thousands of software companies around the world have hosted their products on AWS. Netflix, Twitch, Airbnb, and Lyft use AWS to serve millions of customers worldwide.

Getting started with TailwindCSS

Sep 22, 2020

Tailwind works by exposing a ton of CSS utility classes. But that line doesn't even begin to cover how powerful it makes you as a web developer.

Production-grade AWS architecture [Part 4]: Networking

May 05, 2020

Networking in AWS spans multiple services. Each has its own set of features that provides an incredible level of flexibility for your needs.

3 signs of entropy in your codebase that shouldn't be ignored

Apr 29, 2020

Do you know what I think the coolest law of physics is? It's the second law of thermodynamics — entropy. In this article, I talk about entropy in software and how to mitigate it.

Production-grade AWS architecture [Part 3]: Monoliths vs Microservices

Apr 24, 2020

When you build your software, should you go for monolithic or microservices architecture? This is one of the hottest arguments in developer circles. There are advocates for either side and the argument is never-ending.

Production-grade AWS architecture [Part 2]: First Steps

Apr 23, 2020

In this article, I'll walk you through the first steps that I did after creating the AWS account. Some of these steps may seem unnecessary but they are good practices to follow when using AWS.