Hey there! My name is Christopher Aitken- I'm a principal software engineer with 10+ years experience based out of Apalachicola, FL. I particularly enjoy building web apps on AWS with React, Hono + HTMX, Node.js, & PostgreSQL / Aurora DSQL.
OctNovDecJanFebMarAprMayJunJulAugSepOct1 contribution on Oct 12, 20259 contributions on Oct 13, 20255 contributions on Oct 14, 20251 contribution on Oct 15, 20252 contributions on Oct 16, 20252 contributions on Oct 17, 20256 contributions on Oct 18, 20254 contributions on Oct 19, 20252 contributions on Oct 20, 20254 contributions on Oct 21, 20253 contributions on Oct 22, 20254 contributions on Oct 23, 20254 contributions on Oct 24, 2025No contributions on Oct 25, 20255 contributions on Oct 26, 20251 contribution on Oct 27, 20256 contributions on Oct 28, 20259 contributions on Oct 29, 20256 contributions on Oct 30, 20251 contribution on Oct 31, 2025No contributions on Nov 1, 2025No contributions on Nov 2, 20257 contributions on Nov 3, 20253 contributions on Nov 4, 202510 contributions on Nov 5, 20257 contributions on Nov 6, 20256 contributions on Nov 7, 2025No contributions on Nov 8, 20252 contributions on Nov 9, 20257 contributions on Nov 10, 2025No contributions on Nov 11, 2025No contributions on Nov 12, 2025No contributions on Nov 13, 2025No contributions on Nov 14, 20252 contributions on Nov 15, 20253 contributions on Nov 16, 20253 contributions on Nov 17, 20254 contributions on Nov 18, 20251 contribution on Nov 19, 20258 contributions on Nov 20, 20253 contributions on Nov 21, 20254 contributions on Nov 22, 20254 contributions on Nov 23, 20252 contributions on Nov 24, 20256 contributions on Nov 25, 20251 contribution on Nov 26, 2025No contributions on Nov 27, 20259 contributions on Nov 28, 20252 contributions on Nov 29, 20251 contribution on Nov 30, 20253 contributions on Dec 1, 202514 contributions on Dec 2, 2025No contributions on Dec 3, 20251 contribution on Dec 4, 202510 contributions on Dec 5, 2025No contributions on Dec 6, 20251 contribution on Dec 7, 20252 contributions on Dec 8, 20257 contributions on Dec 9, 20252 contributions on Dec 10, 20253 contributions on Dec 11, 20257 contributions on Dec 12, 2025No contributions on Dec 13, 2025No contributions on Dec 14, 20251 contribution on Dec 15, 20256 contributions on Dec 16, 20253 contributions on Dec 17, 20255 contributions on Dec 18, 2025No contributions on Dec 19, 2025No contributions on Dec 20, 20256 contributions on Dec 21, 20252 contributions on Dec 22, 20256 contributions on Dec 23, 2025No contributions on Dec 24, 2025No contributions on Dec 25, 2025No contributions on Dec 26, 2025No contributions on Dec 27, 2025No contributions on Dec 28, 2025No contributions on Dec 29, 20253 contributions on Dec 30, 2025No contributions on Dec 31, 2025No contributions on Jan 1, 2026No contributions on Jan 2, 20262 contributions on Jan 3, 2026No contributions on Jan 4, 20267 contributions on Jan 5, 20264 contributions on Jan 6, 20261 contribution on Jan 7, 20262 contributions on Jan 8, 20263 contributions on Jan 9, 2026No contributions on Jan 10, 20266 contributions on Jan 11, 20266 contributions on Jan 12, 20262 contributions on Jan 13, 20263 contributions on Jan 14, 2026No contributions on Jan 15, 20266 contributions on Jan 16, 20263 contributions on Jan 17, 2026No contributions on Jan 18, 20266 contributions on Jan 19, 20264 contributions on Jan 20, 20266 contributions on Jan 21, 20263 contributions on Jan 22, 20262 contributions on Jan 23, 2026No contributions on Jan 24, 2026No contributions on Jan 25, 20262 contributions on Jan 26, 20261 contribution on Jan 27, 20266 contributions on Jan 28, 202612 contributions on Jan 29, 202610 contributions on Jan 30, 20261 contribution on Jan 31, 20263 contributions on Feb 1, 20261 contribution on Feb 2, 20261 contribution on Feb 3, 20264 contributions on Feb 4, 20265 contributions on Feb 5, 20266 contributions on Feb 6, 20262 contributions on Feb 7, 2026No contributions on Feb 8, 20266 contributions on Feb 9, 20265 contributions on Feb 10, 20263 contributions on Feb 11, 2026No contributions on Feb 12, 20261 contribution on Feb 13, 20261 contribution on Feb 14, 20264 contributions on Feb 15, 202654 contributions on Feb 16, 20264 contributions on Feb 17, 20262 contributions on Feb 18, 20262 contributions on Feb 19, 202610 contributions on Feb 20, 2026No contributions on Feb 21, 20261 contribution on Feb 22, 20262 contributions on Feb 23, 2026No contributions on Feb 24, 2026No contributions on Feb 25, 20268 contributions on Feb 26, 2026No contributions on Feb 27, 2026No contributions on Feb 28, 20263 contributions on Mar 1, 20265 contributions on Mar 2, 20261 contribution on Mar 3, 20267 contributions on Mar 4, 20267 contributions on Mar 5, 20269 contributions on Mar 6, 2026No contributions on Mar 7, 2026No contributions on Mar 8, 2026No contributions on Mar 9, 20268 contributions on Mar 10, 20262 contributions on Mar 11, 20261 contribution on Mar 12, 2026No contributions on Mar 13, 20264 contributions on Mar 14, 2026No contributions on Mar 15, 20261 contribution on Mar 16, 20265 contributions on Mar 17, 20263 contributions on Mar 18, 20263 contributions on Mar 19, 2026No contributions on Mar 20, 2026No contributions on Mar 21, 2026No contributions on Mar 22, 20263 contributions on Mar 23, 20264 contributions on Mar 24, 20265 contributions on Mar 25, 20266 contributions on Mar 26, 2026No contributions on Mar 27, 20263 contributions on Mar 28, 2026No contributions on Mar 29, 20265 contributions on Mar 30, 20262 contributions on Mar 31, 20261 contribution on Apr 1, 20265 contributions on Apr 2, 2026No contributions on Apr 3, 2026No contributions on Apr 4, 20261 contribution on Apr 5, 2026No contributions on Apr 6, 20263 contributions on Apr 7, 20262 contributions on Apr 8, 20264 contributions on Apr 9, 2026No contributions on Apr 10, 2026No contributions on Apr 11, 2026No contributions on Apr 12, 2026No contributions on Apr 13, 2026No contributions on Apr 14, 2026No contributions on Apr 15, 20263 contributions on Apr 16, 20266 contributions on Apr 17, 20262 contributions on Apr 18, 2026No contributions on Apr 19, 2026No contributions on Apr 20, 2026No contributions on Apr 21, 2026No contributions on Apr 22, 2026No contributions on Apr 23, 2026No contributions on Apr 24, 2026No contributions on Apr 25, 2026No contributions on Apr 26, 20264 contributions on Apr 27, 20264 contributions on Apr 28, 20262 contributions on Apr 29, 2026No contributions on Apr 30, 20267 contributions on May 1, 20262 contributions on May 2, 2026No contributions on May 3, 2026No contributions on May 4, 20265 contributions on May 5, 20263 contributions on May 6, 20263 contributions on May 7, 20262 contributions on May 8, 2026No contributions on May 9, 20264 contributions on May 10, 20261 contribution on May 11, 20262 contributions on May 12, 20262 contributions on May 13, 2026No contributions on May 14, 20267 contributions on May 15, 2026No contributions on May 16, 20263 contributions on May 17, 20264 contributions on May 18, 20261 contribution on May 19, 20262 contributions on May 20, 2026No contributions on May 21, 20261 contribution on May 22, 20261 contribution on May 23, 2026No contributions on May 24, 2026No contributions on May 25, 20262 contributions on May 26, 20264 contributions on May 27, 20263 contributions on May 28, 2026No contributions on May 29, 2026No contributions on May 30, 20262 contributions on May 31, 20264 contributions on Jun 1, 20262 contributions on Jun 2, 20263 contributions on Jun 3, 20262 contributions on Jun 4, 20264 contributions on Jun 5, 2026No contributions on Jun 6, 20263 contributions on Jun 7, 20263 contributions on Jun 8, 20266 contributions on Jun 9, 20264 contributions on Jun 10, 20263 contributions on Jun 11, 20262 contributions on Jun 12, 20262 contributions on Jun 13, 2026No contributions on Jun 14, 202610 contributions on Jun 15, 20262 contributions on Jun 16, 20261 contribution on Jun 17, 20261 contribution on Jun 18, 2026No contributions on Jun 19, 2026No contributions on Jun 20, 2026No contributions on Jun 21, 2026No contributions on Jun 22, 20263 contributions on Jun 23, 20262 contributions on Jun 24, 202610 contributions on Jun 25, 20263 contributions on Jun 26, 2026No contributions on Jun 27, 2026No contributions on Jun 28, 20264 contributions on Jun 29, 20261 contribution on Jun 30, 20267 contributions on Jul 1, 20263 contributions on Jul 2, 20264 contributions on Jul 3, 2026No contributions on Jul 4, 2026No contributions on Jul 5, 20262 contributions on Jul 6, 20263 contributions on Jul 7, 2026No contributions on Jul 8, 2026No contributions on Jul 9, 20268 contributions on Jul 10, 2026No contributions on Jul 11, 2026No contributions on Jul 12, 20265 contributions on Jul 13, 20263 contributions on Jul 14, 20261 contribution on Jul 15, 20262 contributions on Jul 16, 20267 contributions on Jul 17, 2026No contributions on Jul 18, 2026No contributions on Jul 19, 20261 contribution on Jul 20, 20261 contribution on Jul 21, 2026No contributions on Jul 22, 20261 contribution on Jul 23, 2026No contributions on Jul 24, 2026No contributions on Jul 25, 2026No contributions on Jul 26, 2026No contributions on Jul 27, 20264 contributions on Jul 28, 20261 contribution on Jul 29, 20265 contributions on Jul 30, 20268 contributions on Jul 31, 20261 contribution on Aug 1, 20268 contributions on Aug 2, 2026No contributions on Aug 3, 20264 contributions on Aug 4, 2026No contributions on Aug 5, 20262 contributions on Aug 6, 20261 contribution on Aug 7, 2026No contributions on Aug 8, 20261 contribution on Aug 9, 20261 contribution on Aug 10, 202611 contributions on Aug 11, 20268 contributions on Aug 12, 2026No contributions on Aug 13, 2026No contributions on Aug 14, 202617 contributions on Aug 15, 20269 contributions on Aug 16, 20267 contributions on Aug 17, 20262 contributions on Aug 18, 20267 contributions on Aug 19, 20261 contribution on Aug 20, 20269 contributions on Aug 21, 2026No contributions on Aug 22, 2026No contributions on Aug 23, 2026No contributions on Aug 24, 202611 contributions on Aug 25, 20264 contributions on Aug 26, 2026No contributions on Aug 27, 20268 contributions on Aug 28, 20261 contribution on Aug 29, 20266 contributions on Aug 30, 202610 contributions on Aug 31, 202615 contributions on Sep 1, 202638 contributions on Sep 2, 20268 contributions on Sep 3, 20264 contributions on Sep 4, 2026No contributions on Sep 5, 2026No contributions on Sep 6, 20264 contributions on Sep 7, 20263 contributions on Sep 8, 2026No contributions on Sep 9, 20261 contribution on Sep 10, 20261 contribution on Sep 11, 2026No contributions on Sep 12, 2026No contributions on Sep 13, 202610 contributions on Sep 14, 2026No contributions on Sep 15, 20267 contributions on Sep 16, 2026No contributions on Sep 17, 20265 contributions on Sep 18, 2026No contributions on Sep 19, 2026No contributions on Sep 20, 20262 contributions on Sep 21, 20261 contribution on Sep 22, 20262 contributions on Sep 23, 20268 contributions on Sep 24, 20264 contributions on Sep 25, 2026No contributions on Sep 26, 2026No contributions on Sep 27, 20261 contribution on Sep 28, 202610 contributions on Sep 29, 20264 contributions on Sep 30, 2026No contributions on Oct 1, 20261 contribution on Oct 2, 20268 contributions on Oct 3, 202619 contributions on Oct 4, 20262 contributions on Oct 5, 2026No contributions on Oct 6, 2026No contributions on Oct 7, 2026No contributions on Oct 8, 2026No contributions on Oct 9, 2026No contributions on Oct 10, 2026No contributions on Oct 11, 2026No contributions on Oct 12, 20263 contributions on Oct 13, 20266 contributions on Oct 14, 20261 contribution on Oct 15, 2026
1,098 contributions in the last year

Posts

A new type of calculator

Recently, I’ve been working on a new small hobby project: calc.bot. It’s a simple split-pane calculator that lets users enter expressions in human terms on the left-hand side and see live results on the right. For example, you can assign variables (Rent is $2,000 , Months = 12) and perform calculations using them (AnnualRent = Rent * Months). If you feel like updating one variable, the rest of the expressions update in real time.

I was inspired by OpalCalc, a neat little C# app I discovered after searching for alternatives to the default Windows calculator. I wanted something that felt easy to use and kept a working history of my expressions- kind of like an Excel spreadsheet, but a lot simpler.

After a bit of motivation, I decided to write my own calculator using SvelteKit and Math.js. I’m trying to keep things as simple as possible- just a single page application which uses the 📁File System Access API for opening and saving .calc files locally.

It’s a nice change of pace from my other over-engineered projects- no backend, no API, no user registration or authentication. Although it only took a weekend to bootstrap, I’ve ended up using this tool on a near daily basis. If this post imparts anything, I hope it encourages you to make your own tools!

Using Notion as a CMS

Hello, world! It’s been a while since I’ve written content for this website, but I’m determined to start writing again.

Recently, I’d been looking to integrate a simple SaaS product as a headless CMS tool for my personal website. In this post, I’m going to go through each service I considered, and conclude with my final solution.

1. Standard Notes

This was my original integration for heythisischris.com. I fell in love with this service because it was a simple end-to-end encrypted note keeping provider which allowed one to operate a public blog with an RSS feed. I quickly found, however, that this product had many limitations. First, there was no developer API access- users had to rely on an antiquated RSS feed written in XML to integrate posts with their website. I was not interested in parsing an RSS feed for my website. Second, the product had a buggy interface which relied on third-party rich text editor plugins. These plugins were unpredictable and did not operate well in the browser (or at all on mobile). And lastly, I stopped using the service altogether, and instead focused my energy on developing and using productabot as my primary note-taking tool.

2. Airtable

I love using Airtable. It’s one of the best SaaS products I’ve ever used, hands down. That being said, it’s not without it’s limitations- rich text editing is simply absent in this product. The “rich text” field only allows for the following options: bold, italics, underline, • bullet lists, and 1. numbered lists. This, unfortunately, is useless for a proper CMS.

3. DynamoDB

I migrated my database from PostgreSQL to DynamoDB to reduce server costs and learn more about optimizing a NoSQL database schema using a hobby project. In doing so, I opened up the possibility of editing raw HTML inside of DynamoDB rows. I ended up making nearly 0 updates to my website, because, it’s difficult editing inline database rows without seeing the results on a webpage! I was discouraged from updating or adding any new content, which brings us to our final layer of abstraction:

4. Notion

Finally, I settled on using Notion. I was originally opposed to this software because I detested the idea of separating documents into blocks- I wanted a simple text editor without any collaboration/history nonsense. Exploring the knowledge bases created at recent employers, however, changed my opinion on the matter. Notion simply has the easiest interface for creating documents. It’s simple, it looks good, it has a decent mobile app, and a well-documented API to boot!

2021 Update

It's been a while. Here's an update!

Migrating to AWS

After a month of idleness, I finally resumed development on place4pals. I was dejected from continuing development because I'd wasted time building the service on DigitalOcean using Auth0 when I should've been using AWS from the get-go. Ontop of that, I was developing it from a web-first approach using Preact, but decided that I should do mobile-first using React Native. So I scrapped all of that code and worked on a fresh React Native project using Expo. I've finally moved everything to AWS, and now I'm mostly back to where I was ~3 months ago.

It's exciting. I really enjoy building this thing out. Hasura is a godsend for handling API queries, and it's so nice to stop worrying about complex SQL queries/relationships and focus more heavily on frontend development.

Comments

After a 4 hour coding binge, I made these updates to the website:

  • Ability to comment on posts
  • Ability to view individual posts
  • Feeds fade-in after loading
  • Increased line-height
  • Working contact form

I started by consolidating my backend stuff to a single Lambda function (https://api.heythisischris.com). This handles retrieving the GitHub Feed, the News Feed, handling comments, and sending emails from the contact form.

I created a "heythisischris" table in my place4pals database to handle the commenting stuff. I didn't have a database for this site before because I didn't need one- I was retrieving these posts straight from Standard Notes' blogging server, Listed.to (blog.heythisischris.com). All newly posted comments are associated with a "post-guid", which is the identifier for the Listed.to blog post. I'm retrieving the Listed.to rss feed, then querying the database for comments with a matching post-guid, and including them before returning the parsed XML response.

I also wanted to give users the ability to delete their comments. I'm handling this by keeping track of a user's IP address when they comment. If the comment is written in the same IP address that the user is viewing this website, there'll be a "delete" button ready for them to use.

I'm tired. My eyes are heavy. But I'm happy. I had recently written about my struggles with self-motivation, and this spontaneous sprint has given me a bit more hope that I'm capable of cultivating internal resolve.

Finding the motivation to work on your own projects is tough. There are so many things I want to do- create a useful VS Code extension, write detailed a Medium article on how to correctly configure some type of AWS stack, finish recording that overworked album of yours.

Most days I spend ~10% of my time contributing towards these projects, and the rest fretting/procrastinating/waiting. Delayed gratification is an unexercised muscle atrophied by perfectionism. And looming behind this, of course, is an exhausting list of open issues from work (which I'm enormously grateful for, don't get me wrong- it's just distracting).

I guess I'm trying to change that with this website. Maybe, just maybe, by creating some façade of a professional appearance, I can trick myself into allocating my time "like a professional". Spend 2 hours on Project X daily. Make sure you commit at least once a week to Project Y. Write about how your development experience with Project Z. But most importantly, have more faith in your own abilities. Don't worry if it's not perfect, just push it!

And it begins…

And so, I publish my first post.

Subscribe to updates

Get notified when I publish new posts.