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.
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
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
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
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
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
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?
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
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
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
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
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
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
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
Will a beloved project management software built for teams, work for personal use?
How I pick what books to read
After I finish a book, here are the things I consider when choosing what to read next
On Cocoon — a mind-bending puzzle game
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
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
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
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
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
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!
I have a few things I want to accomplish in 2023. Here are the ones that are related to software and development.
I used GitHub Copilot for a month
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
I recently updated my Remix Stack, called Synthwave Stack. Here are some of the choices I made and why I made them.
Vim Adventures
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
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
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
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
Building projects that you would actually use is the best way to learn new things in software
Using Planetscale in a Next.js app with Prisma
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
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
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
This year, I've updated my tech stack for building web applications.
Writing an interpreter in Rust
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
There are plenty of web technologies to learn and use in 2022. Here are my goals for learning web and related technologies this year.
Rust's Ownership Model: A Primer
Rust's Ownership model is a difficult concept for many newcomers to the language. In this article I attempt to explain the concept.
How do you write software for space?
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
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
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
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
The story of why and how I'm on the path to becoming a writer.
Learning Rust as a JavaScript Developer
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
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
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
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
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
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
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
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
A complete Terraform tutorial covering fundamental topics like infrastructure as code, terraform providers, state, terraform plan and terraform apply.
Production-grade AWS architecture [Part 1]: Services
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
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
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
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
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
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.