Zsh Getting Started in WSL Jul 04, 2026

Windows Subsystem for Linux (WSL) is a simple way to run Linux without running it natively, managing virtualization or dual booting. It opens a whole world of development tools and is an onboarding ramp to vibrant Linux ecosystem for developers familiar with Windows. Not only is installation and setup easy but integration with Windows is seamless enabling networking, file transfer and many applications. Visual Studio Code can run in Windows and read/write files to Linux without any special configuration and includes running extensions and tooling like Github Copilot CLI and Claude Code. Although once you start using Zsh, the CLI versions of Copilot and Claude become very compelling!

...
DynamoDB Single Table Design Jul 03, 2026

DynamoDB is a fully managed database in AWS that is incredibly scalable, highly available with simple support for encryption and cross-region replication. In addition it has many quality of life features

  • Time-to-live support to remove old data when it’s no longer needed
  • Streams and event-driven integration with lambda
  • Point-in-time-recovery (PITR) with per-second granularity to restore the database to a specific time

While dynamo db has many great features it comes with many tradeoffs to consider before choosing to use it over alternative options.

...
Hugo Cloudfront Jun 28, 2026

CloudFront is a great option to host Hugo websites. Previously I showed how to host a hugo blog in AWS App Runner but App Runner is shutting down.

CloudFront is a great option and provides a few benefits over App Runner

  1. More performant leveraging CDN
  2. Cheaper for serving static context

Here are steps we’ll go through

  1. Create S3 bucket to store Hugo static files
  2. Create CloudFront disribution
  3. CloudFront function to rewrite URLs

The CloudFormation template creates an S3 bucket and assoicated policy for a CloudFront distribution to access it (see further below for the CloudFront distribution).

...
Bedrock for .NET Jan 02, 2026

AWS Bedrock is a managed service for programmatic access to generative AI and large language models. The service supports many models from numerous providers. SDKs exist for almost all major platforms.

Enabling Access

The below IAM policy allows invoking the AWS model “nova-micro-v1”. This policy is attached to a role used by an AWS AppRunner service.

 1{
 2    "Version": "2012-10-17",
 3    "Statement": [
 4        {
 5            "Sid": "VisualEditor0",
 6            "Effect": "Allow",
 7            "Action": [
 8                "bedrock:InvokeModel",
 9                "bedrock:InvokeModelWithResponseStream"
10            ],
11            "Resource": "arn:aws:bedrock:*::foundation-model/amazon.nova-micro-v1:0"
12        }
13    ]
14}

C# Sample

Step 1: Create a native request

The Bedrock SDK supports multiple models which each have their own parameters. The first step is to create a “native request” specific to the model being invoked. This request is for the AWS model Nova.

...
Hugo App Runner Jun 21, 2025

Hosting a Hugo Blog in AWS App Runner

Hugo is great option to host a blog/static content site. Combining Hugo and AWS App Runner is a simple and straightforward approach to hosting your own blog at a reasonable cost. Few items this blog will walk through

Prerequisits

  • Install AWS CLI
  • Install Hugo (or see the quick start guide linked below)
  • Install Docker

Create a Hugo Site

Follow the Hugo Quick Start guide. A basic Hugo site is sufficient for this guide.

...
Blog Introduction Jun 15, 2025

Welcome to My Blog

This is the introduction post for my new blog. In this blog I’ll discuss learning to develop with AI, building applications using AWS, Angular, .Net, Javascript/Typescript, building this blog and other topics.