// connection established
host: purpleconnect.cloud  [200 OK]
role: software engineer

Joshua Hamm_

I build full-stack web apps, backend APIs, and games — across Java, C#, TypeScript, and Python. Comfortable everywhere from database schemas to render loops.

available for new work · based in the US
$cat about.md

About.

I'm Joshua Hamm, a software engineer who works across the entire stack. I write production web applications, design and ship REST/GraphQL APIs, build desktop and game experiences, and enjoy the kind of problems that span multiple layers at once.

My day-to-day spans Java, C#, TypeScript, and Python. I care about clean architecture, reliable systems, and interfaces that feel fast and intentional.

When I'm off the clock I build small games and creative experiments — you can play three of them right here in the browser.

$ls ~/skills/

Stack.

// languages
Core Languages
Java C# TypeScript Python JavaScript SQL
// frontend
Web & UI
React Next.js HTML/CSS Tailwind Canvas/WebGL
// backend
APIs & Services
Spring Boot .NET Node.js REST GraphQL PostgreSQL
// apps & games
Applications & Games
WPF JavaFX Unity Game loops Canvas
// infra
Infra & Tooling
Docker Git Linux Caddy CI/CD
// practice
Engineering
Clean architecture Testing Performance DX
$ls ~/projects/

Selected Work.

# Applications & Tools

live demo
namespace PortfolioRisk.Domain;
public record RiskMetrics(
  MoneyAmount Var95,
  Percentage Exposure,
  AssetClass Class);
Portfolio Risk Dashboard
Real-time portfolio risk engine calculating VaR and asset-class exposure. Onion architecture with EF Core, xUnit, async Alpha Vantage pricing, Hangfire jobs, and Prometheus metrics. Self-hosted — React SPA + .NET 9 API.
C# / .NET 9 React EF Core Docker
live demo
import { Button, Card }
  from '@yourorg/ui';
<Card>
  <Button variant="primary"/>
</Card>
Design System
Turborepo monorepo: component library (@yourorg/ui) published to Nexus, Storybook visual docs, and a Next.js DevKit scaffold for new projects. Live Storybook at design.purpleconnect.cloud.
React Storybook Turborepo Tailwind
live demo
// self-hosted dev stack
$ docker compose up
gitea
plane (PM)
open-webui + ollama
MyWorkPlace — Self-Hosted Dev Stack
Production Docker Compose stack replacing Jira/Confluence/Bitbucket: Gitea, Plane, Woodpecker CI, Zammad, Keycloak, Nexus, plus a local AI stack (Ollama + Open WebUI). Live subset at git / plane / ai.purpleconnect.cloud.
Docker Compose Caddy PostgreSQL Infra
WPF
// Modern Win11 fluent UI
var media = await _vault
  .QueryAsync(filter)
  .WithTags(tags)
  .SortBy(rating);
Windows Vault
Windows 11-styled media manager with tagging, deduplication, thumbnail caching, and AND/OR tag filtering. Built on .NET 8, WPF, SQLite via EF Core, and CommunityToolkit MVVM.
C# / .NET 8 WPF MVVM SQLite
Java
$ gaia new spring-boot
resolving deps...
generating structure
wiring repositories
→ project ready in 0.8s
Gaia — Project Scaffolder
JavaFX desktop tool that scaffolds production-ready project trees for Spring Boot, React, Node/Express, Django, and Flask. Live dependency resolution against Maven Central, npm, and PyPI. Ships as a native Windows installer.
Java JavaFX Maven/NPM/PyPI
Java
// peer discovery + relay
var peer = P2PNode.listen(
  8888);
peer.onMessage(msg ->
  broadcast(msg));
P2P Messenger
Cross-platform peer-to-peer messaging with direct TCP transport and an embedded mobile web client so phones connect with zero install. Maven-built, JSON wire protocol.
Java Networking Maven
Android
// Apache MINA SSHD on Android
val server = SshServer.setUp()
  .port(2222)
  .withSftp()
  .start()
Hades — Android SSH Server
SSH/SFTP server that runs on Android, paired with a native Material 3 file browser. Built on Apache MINA SSHD, Jetpack Compose, and the Storage Access Framework.
Kotlin Jetpack Compose MINA SSHD
Android
// 4-tap secret vault
val vault = EncryptedFile
  .aes256(masterKey)
  .store(media)
// + private tor browser
PurplePad — Privacy Notes
Privacy-focused Android note app with an AES-256 vault, anti-fingerprinting Tor browser, and a DoD-grade emergency wipe (3-pass overwrite). Hidden behind multi-tap gestures.
Kotlin AES-256 Tor
Python
$ Snippy.exe
capture region
record screen
annotate & copy
// single-file portable
Snippy
Lightweight Windows snipping & screen-recording tool built in PyQt5. Bundled with PyInstaller into a single portable executable — no Python install required.
Python PyQt5 PyInstaller
Python
$ python main.py
16, 32, 48, 64
128, 256, 512
// PNG / JPG / WebP / GIF
Universal Icon Resizer
Tkinter + Pillow utility that batch-resizes any image to the full set of icon sizes for browser extensions, apps, and favicons.
Python Pillow Tkinter

# Playable Games

$contact --send

Get in touch.

Let's build something.

Open to freelance work, full-time roles, and interesting collaborations. The fastest way to reach me is email — expect a reply within a day or so.