<!-- https://shanehobson.me/ as Markdown. Generated from the same render as index.html. -->

# Shane Hobson — Software Engineer

## About Me

![Shane Hobson](https://shanehobson.me/images/shane.webp)

I’m a software engineer with a decade of experience building applications for the web. My work spans frontend engineering, backend engineering, and cloud infrastructure.

I currently consult for a Fortune 100 media company, where I’m helping build an advertising platform responsible for managing more than a billion dollars in annual ad revenue. My work focuses on building complex, data-intensive applications and making them fast, scalable, and intuitive.

Outside of work, I build software, experiment with new technologies, and write about software engineering and AI. I’m particularly interested in understanding how the technologies I use actually work — from web browsers and distributed systems to large language models — and explaining those ideas in approachable terms.

I took an unconventional path into software engineering. Before entering software engineering, I went to law school and spent three years as a litigation and trial attorney. I remain a licensed attorney, and I’m especially interested in the intersection of law and technology and in how software and AI can be used to solve problems in the legal industry. I regularly contribute to open source legal technology and legal AI projects.

Core technologies

-   TypeScript
-   JavaScript
-   React
-   Angular
-   Next.js
-   Redux
-   Tailwind CSS
-   SCSS
-   Node.js
-   Nest.js
-   Express
-   GraphQL
-   PostgreSQL
-   DynamoDB
-   Amazon Web Services
-   AWS Lambda
-   AWS CDK
-   Jest
-   Playwright

Certificates

-   AWS Certified Solutions Architect
-   AWS Certified Cloud Practitioner

## Writing

[![Articles by Shane Hobson](https://shanehobson.me/images/blog.webp)](https://shanehobson.me/blog/)

### Blog

I write about all things software development: architecture, scalability, AI, and real-world lessons from building production systems.

-   [A Software Engineer’s Guide to Large Language Models](https://shanehobson.me/blog/a-software-engineers-guide-to-large-language-models/)
-   [How React Renders Components: A Deep Dive into Fiber](https://shanehobson.me/blog/how-react-renders-components-a-deep-dive-into-fiber/)
-   [How Angular Renders Components: A Deep Dive Into Ivy](https://shanehobson.me/blog/angular-rendering-under-the-hood/)

[Read my articles](https://shanehobson.me/blog/)

Also published on [Medium](https://medium.com/@shanehobson1).

[![How To Become a Self-Taught Software Developer](https://shanehobson.me/images/Book.webp)](https://www.amazon.com/How-Become-Self-Taught-Software-Developer/dp/B0CCCHSC82)

### How To Become a Self-Taught Software Developer

I taught myself how to code while working as an attorney in 2016. After successfully landing a job in software development, I began helping others pursue the goal of becoming a software developer without a traditional computer science education. Eventually, I decided to formally document the step-by-step process of becoming a self-taught software developer, and the result was this book. Since its publication, the book has helped hundreds of others pursue their dream of breaking into the software industry.

[Buy the book](https://www.amazon.com/How-Become-Self-Taught-Software-Developer/dp/B0CCCHSC82)

## Work

Built for clients, for friends, and for the fun of it — from multi-tenant SaaS platforms to small tools that do one thing well.

[Video: A demo of booking an appointment through Zaera](https://shanehobson.me/video/zaera.mp4)

### Zaera

-   React
-   NestJS
-   PostgreSQL
-   Stripe
-   AWS

An all-in-one scheduling and payments platform for service businesses. Zaera consolidates booking management, payment processing, and customer communication into a single dashboard, eliminating manual coordination and letting business owners focus on their clients.

The platform features a beautiful branded booking experience for customers, color-coded team scheduling with double-booking prevention, and secure payment collection via Stripe. Built as a multi-tenant SaaS with a React admin dashboard, NestJS API, PostgreSQL database, and AWS infrastructure.

[View the site](https://zaera.io/)

[Video: The tools and capability catalogue in Stella](https://shanehobson.me/video/Stella_Demo.mp4)

### Stella

-   TypeScript
-   TanStack Start
-   Bun
-   PostgreSQL
-   Redis

Stella is an open-source legal workspace that pulls matters, documents, review, research, and AI chat into one place. Legal teams work alongside an agent that reads their files, connected registries, and trusted sources, with approvals and source previews so every answer traces back to the underlying text. I'm one of the project's top contributors.

The platform includes tabular review for extracting structured data across document sets, typed clients for national business registries, and an MCP-compatible tool layer. Built in TypeScript on TanStack Start and Bun, with PostgreSQL, Redis, and Docker — fully self-hostable, with no vendor lock-in or per-seat licensing.

[Explore the project](https://stll.app/)

[Video: A demo of Odyssey generating a travel itinerary](https://shanehobson.me/video/odyssey.mp4)

### Odyssey

-   React
-   TanStack Query
-   AWS Lambda
-   DynamoDB
-   Streaming AI

Odyssey is an AI-driven travel planning application that turns prompts into structured, day-by-day itineraries in seconds.

Built with streaming AI architecture for live partial responses, usage-aware design with tiered plans and cost-protection guardrails, and a modern React stack using TanStack Query. The serverless backend runs on AWS (Lambda, API Gateway, DynamoDB, S3).

[Explore the app](https://www.findmyodyssey.com)

[Video: A demo of uploading photos to Vault](https://shanehobson.me/video/vault.mp4)

### Vault

-   React
-   AWS Cognito
-   Lambda
-   DynamoDB
-   S3

Vault is a web application that allows for quick and easy upload and cloud storage of photos and videos from your phone, tablet, or computer. Vault has a React frontend, and a serverless backend built on AWS Cognito, API Gateway, Lambda, DynamoDB, and S3.

Check out the video to see it in action.

[Video: A demo of the Workout Tracker analytics charts](https://shanehobson.me/video/workout-tracker-video.mp4)

### Workout Tracker

-   Angular
-   D3
-   Node.js
-   Express
-   MongoDB

Workout Tracker allows the user to keep a daily log of their workouts and provides the user with analytics concerning the frequency and intensity of their workouts, along with the relative distribution of exercise types and body part usage. The app uses the D3 data visualization framework to build graphs and charts giving the user real-time and historic information on their workouts and workout patterns. The app features a chart showing the user's activity over the previous 365-day period, which was inspired by the Github annual contributions chart. The front-end of Workout Tracker was built using Angular, and the backend was built using Node.js, Express, and a MongoDB cloud database.

[Front-end source](https://github.com/shanehobson/workout-tracker) [Backend source](https://github.com/shanehobson/workout-tracker-api)

[Video: A demo of creating a blog post in the CMS](https://shanehobson.me/video/app-demo-1.mp4)

### Blog Content Management System

-   Angular
-   Node.js
-   Express
-   MongoDB
-   AWS

This web application allows content creators to create a multimedia blog post in less than five minutes. Users have the ability to create blog posts containing text, images, and video. The blog posts can be edited or deleted by the author at any time. The app was built using the MEAN stack (MongoDB, Express.js, Angular, and Node.js). The app uses AWS services for file storage and content delivery.

Check out the video to see the system in action and watch me create, edit, and delete a blog post in three minutes.

[View source](https://github.com/shanehobson/pitching-theory-app)

[Video: A demo of building a PDF invoice](https://shanehobson.me/video/Invoice_Generator.mp4)

### Invoice Generator

-   React
-   Redux
-   Node.js
-   Express
-   AWS S3

This web applications allows freelance software developers to create highly customized PDF invoices for client projects in just a few minutes. The front-end of the project was built using React and Redux. On the backend, there is a Node.js/Express server that constructs a PDF document and saves the document in the cloud with AWS S3.

Check out the video to see me create an invoice in less than three minutes.

[Front-end source](https://github.com/shanehobson/invoice-generator-fe) [Backend source](https://github.com/shanehobson/invoice-generator)

[![The Contract Generator web app](https://shanehobson.me/images/contract-generator.webp)](https://dtame3ylp25go.cloudfront.net)

### Contract Generator

-   React
-   Redux
-   Material-UI

Drawing on my expertise as a licensed attorney and my experience practicing law, I created this web application to help freelance web developers protect themselves in customer/client relationships. The user completes a handful of forms in order to provide the information necessary to generate a contract for web development services, and the app generates a legally binding contract in PDF format. This app was built using React, Redux, and Material-UI.

[Explore the app](https://dtame3ylp25go.cloudfront.net) [View source](https://github.com/shanehobson/contract-generator)

[Video: A walkthrough of the Max Manicure website](https://shanehobson.me/video/max-manicure.mp4)

### Max Manicure

-   Astro
-   AWS CDK

A website built for a nail salon, with integrated online scheduling and payments powered by [Zaera](https://zaera.io/). Built with Astro for fast static delivery and deployed on AWS via CDK.

[Explore the site](https://www.maxmanicure.com)

[Video: A walkthrough of the Nightingale Nails website](https://shanehobson.me/video/nightingale-nails.mp4)

### Nightingale Nails

-   Next.js
-   ISR
-   Nodemailer

A website built for a Denver, Colorado nail salon using NextJS. This site contains an email contact form built on top of NextJS Api Routes and Nodemailer. The site uses Incremental Static Regeneration (ISR) to achieve fast page loads while maintaining content freshness.

[Video: A walkthrough of The Science of Dance website](https://shanehobson.me/video/science-of-dance.mp4)

### The Science of Dance

-   React
-   AWS Lambda
-   API Gateway
-   SES

A website built for a Naples, Florida dance studio containing a contact form that sends an email to the studio owner. Built using React with AWS Lambda, Api Gateway, and Simple Email Service.

[Explore the app](https://d115owle18y2b1.cloudfront.net/) [View source](https://github.com/shanehobson/nadia)

[Video: A walkthrough of the Hobson Electric website](https://shanehobson.me/video/hobson-electric.mp4)

### Hobson Electric, Inc.

-   JavaScript
-   Bootstrap
-   Node.js
-   Express

This project is a website for an electrical services company. The website contains information regarding the services provided by the company and information about the people who work for the company. The website has a "Contact Us" feature which allows the user to quickly send a request to the company for a free estimate on electrical services. The "Contact Us" feature relies on a back end that I built using Node.js and Express, which takes in form data and sends an email to the company's owner. The front end was built using Bootstrap and vanilla Javascript.

[Explore the app](https://d2rovogyqdtmn6.cloudfront.net) [Front-end source](https://github.com/shanehobson/hobson_electric) [Backend source](https://github.com/shanehobson/mailer_api)

[Video: A walkthrough of the Lumina Model Academy website](https://shanehobson.me/video/lumina.mp4)

### Lumina Model Academy

-   Next.js

A website built for a Naples, Florida model academy using NextJS.

[Explore the site](https://www.luminamodelacademy.com)

![The Knecht Insurance website](https://shanehobson.me/images/knecht-insurance.webp)

### Knecht Insurance

-   HTML
-   CSS
-   JavaScript
-   Node.js
-   Gmail API

This is a website for an insurance broker built using HTML, CSS, and vanilla JavaScript. The website features a contact form, which allows a prospective customer to contact the business owner to obtain a quote. The contact form is powered by a NodeJS backend that intregrates with Gmail's API.

[Front-end source](https://github.com/miwaro/knecht-insurance) [Back-end source](https://github.com/miwaro/emailer-api)

[![The LoaderGallery.com web app](https://shanehobson.me/images/loader-gallery.webp)](https://www.loadergallery.com)

### LoaderGallery.com

-   React
-   Redux
-   Material-UI

This web application allows web developers to quickly and easily add loading animations to their websites and web apps in order to keep users engaged while pages are loading or while the application makes network requests. The user has the ability to select a color from a color picker, or enter a HEX or RGBA value. The application then allows the user to easily copy and paste the necessary HTML and CSS code in order to implement the animation into their application in the user's color of choice. This app was built using React, Redux, and Material-UI.

[Explore the app](https://www.loadergallery.com) [View source](https://github.com/shanehobson/loaders)

![The Poker Blinds Tracker web app](https://shanehobson.me/images/blinds-tracker.webp)

### Poker Blinds Tracker

-   JavaScript

This web application serves a way to track blinds in a poker game. At the beginning of the game, the user has the ability to set (a) how frequently blinds will increase, (b) the initial value of the small and big blinds, and (c) the value at which blinds will be capped. Once the game starts, the timer functionality lets players know how much time is left until the next blinds increase. When the timer runs out, the timer resets itself and the blinds automatically increase. Additionally, if there are just two players ("heads up" poker), the alternating arrows next to each player's name allow the players to alternate who pays the big blind each time blinds increase.

[View source](https://github.com/shanehobson/poker-timer)

## Let’s build something.

Interested in working together? Reach out directly — I read every message.

[shanehobson1@gmail.com](mailto:shanehobson1@gmail.com)

[Connect with me](mailto:shanehobson1@gmail.com) [LinkedIn](https://www.linkedin.com/in/shane-hobson-1a979158/)
