<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Vic Vijayakumar</title><description>Hi, I am Vic. I blog about software engineering and indie making.</description><link>https://vicvijayakumar.com/</link><item><title>My favorite base image for Node.js apps is Debian</title><link>https://vicvijayakumar.com/posts/debian-node-docker-image/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/debian-node-docker-image/</guid><description>Using Alpine is all fun and games until you need to install something for which there is no prebuilt musl package, and now you need to install the entire universe &amp; build it from source.</description><pubDate>Wed, 07 May 2025 04:00:00 GMT</pubDate></item><item><title>When recursion may not be the right answer</title><link>https://vicvijayakumar.com/posts/when-recursion-is-too-slow-fibonacci/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/when-recursion-is-too-slow-fibonacci/</guid><description>I was recently asked about the best way to calculate a particular Fibonacci number. In this post I explain why you may not always want to reach for recursion, a favorite technique of interviewers. ✨ WITH MEMES AND GRAPHS. ✨</description><pubDate>Thu, 21 Jan 2021 20:50:00 GMT</pubDate></item><item><title>Containerizing a Next.js, Remix, or other Node.js app with Docker</title><link>https://vicvijayakumar.com/posts/dockerizing-nextjs-remix-node-apps/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/dockerizing-nextjs-remix-node-apps/</guid><description>This is an example of how to run a node.js app in a Docker container.</description><pubDate>Mon, 04 Sep 2023 04:00:00 GMT</pubDate></item><item><title>Building a full stack app with Remix, Prisma, and Supabase</title><link>https://vicvijayakumar.com/posts/full-stack-app-remix-prisma-supabase-vercel/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/full-stack-app-remix-prisma-supabase-vercel/</guid><description>There is a misconception that Remix is only for static sites. This is a how-to guide for building a full-stack app with the new framework + Prisma + Supabase, and deploying it to Vercel.</description><pubDate>Mon, 14 Mar 2022 04:00:00 GMT</pubDate></item><item><title>Zen and the art of writing good commit messages</title><link>https://vicvijayakumar.com/posts/the-art-of-writing-good-commit-messages/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/the-art-of-writing-good-commit-messages/</guid><description>The difference between good and bad commit messages, and how to enforce the structure with commitlint and Husky git hooks.</description><pubDate>Mon, 28 Feb 2022 23:01:00 GMT</pubDate></item><item><title>Prettier, ESLint, &amp; the Airbnb Style Guide in VS Code</title><link>https://vicvijayakumar.com/posts/eslint-airbnb-style-guide-prettier/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/eslint-airbnb-style-guide-prettier/</guid><description>We spend far more time reading code than writing it. Set up a linter and code formatter so you don&apos;t spend time worrying about how your code should look, and automatically fix a lot of common errors.</description><pubDate>Fri, 22 May 2020 21:00:00 GMT</pubDate></item><item><title>TypeScript: Type Alias versus Interface</title><link>https://vicvijayakumar.com/posts/typescript-type-alias-vs-interface/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/typescript-type-alias-vs-interface/</guid><description>Should you use Type Aliases or Interfaces? The answer may surprise you.</description><pubDate>Tue, 30 Nov 2021 04:00:00 GMT</pubDate></item><item><title>Migrating away from Google Analytics to Plausible</title><link>https://vicvijayakumar.com/posts/switching-from-google-analytics-to-plausible/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/switching-from-google-analytics-to-plausible/</guid><description>I&apos;ve decided to move away from GA and go with a different analytics product.</description><pubDate>Mon, 29 Nov 2021 04:00:00 GMT</pubDate></item><item><title>Who&apos;s your BFF? Rough notes on the popular BFF architecture pattern</title><link>https://vicvijayakumar.com/posts/the-bff-backend-for-frontends-architectural-pattern/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/the-bff-backend-for-frontends-architectural-pattern/</guid><description>Let&apos;s talk about the BFF pattern. No, BFF doesn&apos;t mean Best Friends Forever, but really it kinda is.</description><pubDate>Sun, 28 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Docker containers with persistent storage</title><link>https://vicvijayakumar.com/posts/docker-containers-with-persistent-storage/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/docker-containers-with-persistent-storage/</guid><description>Running a Docker container usually does not allow you to persist any configs or other files. Let&apos;s look at a few ways to make this more useful.</description><pubDate>Tue, 13 Apr 2021 02:22:00 GMT</pubDate></item><item><title>Chasing a red herring across the stack</title><link>https://vicvijayakumar.com/posts/the-most-interesting-bug-ever/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/the-most-interesting-bug-ever/</guid><description>This is a dramatic retelling of the time I had to chase a particular bug across several layers of the stack. Read on and see if you can figure out what the issue was.</description><pubDate>Tue, 30 Mar 2021 16:00:00 GMT</pubDate></item><item><title>Automatically set your Slack status using your Calendar</title><link>https://vicvijayakumar.com/posts/automatically-set-slack-status/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/automatically-set-slack-status/</guid><description>Automate the process of updating your Slack status using information in your calendar.</description><pubDate>Thu, 19 Apr 2018 04:00:00 GMT</pubDate></item><item><title>Convert JSON API responses into CSV with jq</title><link>https://vicvijayakumar.com/posts/convert-api-responses-from-json-to-csv-with-jq/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/convert-api-responses-from-json-to-csv-with-jq/</guid><description>It gets tedious if you need to write a script every time you need to parse an API response to do some data analysis on it. This post shows you how to do that from the command line.</description><pubDate>Sat, 28 Nov 2020 20:01:00 GMT</pubDate></item><item><title>The terminal where it happens - basic text analysis using Unix/Linux utilities</title><link>https://vicvijayakumar.com/posts/basic-data-analysis-unix-linux-tools/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/basic-data-analysis-unix-linux-tools/</guid><description>Unix/Linux utilities are one of my favorite ways to do basic text analysis. This post was originally a Twitter thread but I kept running into the character limit and wanted to write it down in longer form, so here we are.</description><pubDate>Wed, 04 Nov 2020 20:48:00 GMT</pubDate></item><item><title>Don’t make your tech candidates do whiteboarding interviews</title><link>https://vicvijayakumar.com/posts/dont-whiteboard-your-developers/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/dont-whiteboard-your-developers/</guid><description>Fix your interview process! Complicated whiteboarding sessions only test whether you’re good at interviewing and whether you are good at memorizing textbook solutions to textbook problems. They don&apos;t tell you if someone will be good at their job.</description><pubDate>Wed, 26 Aug 2020 05:50:00 GMT</pubDate></item><item><title>yakdb: a NoSQL database in Go</title><link>https://vicvijayakumar.com/posts/yakdb-a-nosql-database-in-go/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/yakdb-a-nosql-database-in-go/</guid><description>yakdb is a highly-performant in-memory key-value store. This in an experiment in writing a key-value store with Golang.</description><pubDate>Tue, 05 May 2015 04:00:00 GMT</pubDate></item><item><title>Mass virtual hosting with NGINX</title><link>https://vicvijayakumar.com/posts/mass-virtual-hosting-in-nginx/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/mass-virtual-hosting-in-nginx/</guid><description>I seem to get a lot of traffic to my post about mass virtual hosting with Apache, so I felt like I should probably write this simply for the sake of completeness, even though it&apos;s brutally simple.</description><pubDate>Sat, 25 Apr 2015 04:00:00 GMT</pubDate></item><item><title>Migrating large INNODB database tables</title><link>https://vicvijayakumar.com/posts/migrating-large-innodb-tables/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/migrating-large-innodb-tables/</guid><description>I needed to move a 100gb database (all tables are INNODB) from a server in datacenter A to a different server in datacenter B. It was complicated enough to need to be documented.</description><pubDate>Fri, 05 Apr 2013 04:00:00 GMT</pubDate></item><item><title>Mass virtual hosting with Apache</title><link>https://vicvijayakumar.com/posts/mass-virtual-hosting-in-apache/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/mass-virtual-hosting-in-apache/</guid><description>Sometimes you have no choice but to use Apache. And you might want to support wildcard domains for your entire team so dynamic hostnames work.</description><pubDate>Wed, 16 Jan 2013 04:00:00 GMT</pubDate></item><item><title>Rebooting a blog in under 24 hours with Jekyll</title><link>https://vicvijayakumar.com/posts/rebooting-a-blog-in-under-24-hours/</link><guid isPermaLink="true">https://vicvijayakumar.com/posts/rebooting-a-blog-in-under-24-hours/</guid><description>This is the story of the time I converted my blog to Jekyll.</description><pubDate>Tue, 08 Jan 2013 04:00:00 GMT</pubDate></item></channel></rss>