change:log #1 - New website, who dis?


New pages, navigation, and change:log launch on millansingh.com

A lot has changed since I first built my website in the Summer of 2022:

  1. Modern meta frameworks exploded in popularity: Next.js, Remix, Astro, Tanstack Start, etc.
  2. Headless UI frameworks emerged as the best way to create UI.
  3. Tailwind went stratospheric as the way to style websites now it seems.
  4. Third party tooling got stronger: think auth systems like Clerk and WorkOS, analytics platforms like PostHog and Amplitude/Statsig, or marketing software like Resend and Loops.
  5. And of course, AI labs and builder apps made it easier than ever to build a website.

And a lot changed with me too:

  1. I left the Vue ecosystem behind in favor of React.
  2. I learned a lot more backend engineering and server programming, growing from a front-end engineer to a proper full-stack engineer.
  3. I built many more complex systems on my own or with a team, and am now leading engineering teams at a fast-paced fintech startup.

My website has remained pretty stable in all that time, so it had a lot to catch up on.

First, I refactored the site from Nuxt/Vue to Next/React. I wanted to preserve the custom design system I had made for the site while migrating UI components to use a headless UI library as their basis for faster development, so I opted for a new styling library called Vanilla Extract that more closely resembles my scoped SCSS approach from the old site, rather than doing a full Tailwind rebuild (even though I like Tailwind).

Once that was done, I wanted to establish a few new pages: the /now page, a page describing the site’s tech stack choices, and a page laying out my AI policy on the site (to make it clear that I do not give permission for my content to be scraped by LLMs and I do not use LLMs to write the content on my site). And then to top that off, I also refreshed the navigation, adding the now page to it, adding a badge for items with new content, and rebuilding the mobile nav as a bottom drawer you can swipe away.

Screenshot of millansingh.com showing the /now page as of the time of writing.
The new /now page and updated desktop navigation.

Finally, I’ve made tweaks to the site to support the launch of this newsletter.

  1. change:log issues are available to browse on the website directly as an archive: change:log page.
  2. A new navigation item was added for the change:log homepage, and the navigation CTA was changed to a change:log CTA that opens a modal with info about it and a form to sign up.
  3. Existing email subscription blades were updated to reflect the change:log direction.
  4. I implemented functionality that would automatically send change:log entries when they were published from my CMS (Sanity) where I wrote them to Kit (my email marketing tool) as new broadcasts for me to review and send.

And this is just the beginning. Now that my site is on a better tech stack and properly set up for future development, I’ll be adding much more to it which I will of course share with you in future change:log issues.

The Great Linear Migration

A few months ago, I spearheaded an effort at my day job (Pinwheel) to migrate the engineering department from Jira to Linear, starting with the two teams I manage as pilot teams. The pilot was successful, and now every team has migrated over as of the last couple weeks, with only a small amount of clean-up work left to finish in the migration.

We’ve been really happy with the performance and user experience of Linear at work, and managing a team of our size is so much smoother and easier in Linear than it was in Jira. I used the transition as an opportunity to update how my team works (my take on the Shape Up philosophy created by 37 Signals), and my team has been super happy with the changes.

Migrating personal projects too

And with me advocating for and spearheading that change at work, it felt a little hypocritical for me to still be using Jira for my own personal projects. Sure, Jira was free, but Linear with a single seat was only like $10/month, and you can get your first six months free pretty easily (anyone sponsored by them are giving out those coupons).

And I really missed the snappiness and UI quality of Linear when I was navigating my own projects. These small bits of friction in application performance really make things like making quality tickets and organizing them take a lot longer in Jira than in Linear, and that adds up over time!

I’m also finding it so much easier to plan non-software projects in Linear, which is really ironic since Linear itself if pretty clear that their priority is to support software/product teams.

Planning out the auth server project for millansingh.com

Once I migrated, I set out to fully plan the work I’m going to do to build my own custom auth server for my website. I won’t get too into the weeds, but I am working on some content around this project which will come out in October/November hopefully.

Linear project view of the auth server project with milestone issues minimized.
This is so much better...

That project is kicking off soon, and I’m excited to share more when I have it.

New CTO at Pinwheel (I have a new boss)

My day job hired Sebastian Okser as our new CTO a few weeks ago, and it’s been nice to have an engineer for a boss again for the first time in a very long time. It’s been over two years since I had a technical manager, and boy am I feeling the difference!

I hope he’ll be able to shape up our engineering organization and get the business to invest more in the product as our commercial momentum grows. I suppose time will tell.

Professional Age of Empires II

Yes, a game that came out 27 years ago has an active professional scene with four major international tournaments per year. The last major tournament was at Albert Hall in London of all places and featured some amazing costuming and a live orchestra!

It all started with this video from a streamer called Atrioc who cut down his live viewing of the tournament finals to a digestible 58 minutes haha, but his commentary is great and makes it easy to follow even if you have no idea how Age of Empires II is played: Age of Empires Just Had Its Most Incredible Finals.

Since I watched that video, I’ve been sucked into the Hera rabbit hole (he’s the best player in the world right now) and have watched quite a bit of AoE II content. At this rate, by the end of the year, I will have watched more AoE II than I have played in my life haha (I played the original game back in the day as a kid).

Millan Singh

I'm writing change:log, a newsletter about my growth journey as a Software Professional and Creative Entrepreneur, presented in the style of a software product's change log. I will mostly focus on personal and professional growth, my active projects, and reflections from my day job as a Software Engineering leader in a fintech startup.

Read more from Millan Singh

A Hero's Journey Sunday, September 20, 2026 Hey there Reader, Digital hygiene has been top-of-mind for me since the start of the year, and after a couple of weeks of research, I made my first big purchase of the year and the single biggest change to my computer habits, probably ever. I bought an ergonomic split keyboard called the ZSA Voyager. And in the process of purchasing my new keyboard, I learned that ZSA also sold a very well-made, premium set of playing cards (actually two sets that...

A Hero's Journey Sunday, September 20, 2026 Hey there Reader, I'm going to take a break from PushBrand this week (except for another development screenshot and small development update towards the end of this issue) and instead focus on the title topic of AI, or as I like to say, "AI" (cause the name is perhaps the misnomer of the century). You've undoubtedly heard a lot about AI in recent months (years), with many predictions of doom and gloom on the near horizon. I'm here to tell you that...

A Hero's Journey Sunday, September 20, 2026 Hey there Reader, Hold on a minute. This can't be right. Am I actually writing another issue of A Hero's Journey one week after the last one??? No, that can't be. Let's see, the last issue was published on—checks notes—July 3rd, 2023...and today is...July 10th, 2023. Huh, imagine that... All jokes aside, it has been far too long since I last published two issues back-to-back, and it feels good to do it again. I don't want to jinx myself, but maybe I...