JH/My website
Joseph Hamilton / JBrosDevelopmentA developer's field notes

Curiosity.
Code.
From the ground up.

I build things to understand how they work—from games and graphics to programming languages and the bytes underneath.

● ● ●the learning never stops
01fun add(a int, b int) int
02  return (a + b)
03end
IDEA↓LANGUAGE↓INSTRUCTIONS
00 61 73 6D
01 00 00 00
A little closer to the machine.
C · Rust · C# · JavaScript · PythonScroll through the story ↓
01 / The journey

It started with games.
Then I wanted to go deeper.

  1. The beginning

    C# and game development

    Unity and Windows Forms were my introduction to programming. After about a year and a half, the ideas began to click—and I started looking beyond one language.

  2. Branching out

    The web, then Rust

    I explored HTML, CSS, and JavaScript, including building a website for my dad's company. Rust led me toward custom languages and virtual computers.

  3. Learning by building

    C, languages, and the machine

    Scone and galo became experiments in language design. WebAsmCompiler takes that curiosity further: opcodes, the stack, assemblers, and the path toward a compiler.

  4. Beyond personal projects

    Academics & industry exposure

    At George Mason University's computer science camp, I explored Unreal Engine and game development, earning a college credit that transferred as electrical engineering credit. During a summer internship at Techneaux Technology Services, I shadowed the software team and was introduced to Razor, ASP.NET, and C#.

02 / The projects

Experiments with
something to teach.

Finished tools, unfinished ideas, and the lessons in between. Ten projects from my portfolio, with the favorites first.

00 61 73 6d 01 00 00 00
opcodes↓assembler↓compiler
01 / PROJECT
WebAssembly · JavaScript

WebAsmCompiler

WebAssembly, from the ground up.

A journey from raw opcodes to an assembler, with a C-like compiler as the longer-term goal. The repository doubles as a development journal: binary sections, stack operations, bootstrapping, and the decisions along the way.

Assembler exploration
MenCwaft original project artwork or screenshot02 / PROJECT
Three.js · WebRTC · Firebase

MenCwaft

A world hosted in a browser tab.

A Minecraft-inspired multiplayer experiment. One browser tab hosts the world and its updates; other tabs connect as clients. Firebase handles signaling, while WebRTC connects the peers.

Browser game · AI-assisted
fun add(left int, right int) int
    return (left + right)
end

let x int = add(1, 2)
03 / PROJECT
C · Lexer · Parser · CLI

galo

Building a language in C.

A compiler and interpreter experiment with a command-line interface, lexer, and parser. The portfolio describes an unfinished language that can interpret simple programs—and the lessons that came with managing memory.

Language experiment
calc_lang original project artwork or screenshot04 / PROJECT
Rust · Language design

calc_lang

Math that reads like math.

A working calculator language inspired by the TI-84: concise functions, constants, variables, and conditional expressions. An exploration of making syntax feel natural for mathematical work.

Working language
VirtualComputer original project artwork or screenshot05 / PROJECT
Rust · Opcodes · Virtual machine

VirtualComputer

What happens beneath the code?

An early dive into low-level systems: a virtual computer that reads bytes and executes instructions, alongside an experimental assembler and compiler. A learning project rather than a production tool.

Learning prototype
sconesyntax → structure
06 / PROJECT
Rust · Types · Syntax validation

scone

An object-oriented language idea.

An unfinished language designed around expressive, object-oriented programming. Work on syntax and validation became a way to explore how a language can feel familiar while supporting powerful abstractions.

Unfinished experiment
make↙     ↘

Windows   /   Wii

07 / PROJECT
C · Makefiles · Raylib · Wii

CrossPlatformWiiRaylib

One graphics experiment. Two platforms.

A proof of concept for a graphics system that builds as a Windows executable with Raylib or a Nintendo Wii executable for the Dolphin emulator. The Makefile selects the target.

Cross-platform proof of concept
08 / PROJECT
C · Chess engine

Chess

Thinking in moves.

A chess engine written in C, bringing an interest in lower-level programming into the rules and structure of a familiar game.

Engine experiment
Norma original project artwork or screenshot09 / PROJECT
C# · Programming languages

Norma

A small language, built to explain.

A compact programming language written in C#, created as an example for a development blog. Part of an ongoing interest in turning language concepts into working code.

Language project
TerminalEngine original project artwork or screenshot10 / PROJECT
C# · Graphics · Package

TerminalEngine

The console becomes a canvas.

A toolkit for drawing pixels in the terminal, using a familiar Start and Update routine. The repository includes examples such as Pong.

Developer toolkit
A little more play

Where it began:
making games.

My itch.io page collects more of the playful side of my work, including browser games and game-jam entries.

All games on itch.io
03 / The knowledge

The tools I use.
The ideas I keep exploring.

Languages, in practice

Rust

My favorite language. Years of working with it have made me comfortable with its insistence on correctness.

C

My choice for working close to the machine and understanding the bare bones of a system.

C#

My first language, with experience in Unity, Windows Forms, and developer tools.

JavaScript, HTML & CSS

Tools for the web, from company websites to browser-based experiments.

Python

A practical language for quick proofs of concept, using the fundamentals of functions and classes.

Concepts & ways of thinking

Designing with objects

Classes and data structures, constructors and object lifecycles, inheritance, interfaces, abstraction, and polymorphism.

These ideas help me organize behavior and reason about how different types can share a common contract.

Different programming paradigms

Experience with object-oriented programming and an interest in functional ideas, lambda expressions, and languages that support multiple approaches.

From source code to execution

Exploring lexers, parsers, compilers, interpreters, and just-in-time compilation—and how source code becomes something a runtime or machine can execute.

Working closer to the hardware

Bytecode, opcodes, stack operations, argument passing, virtual machines, memory management, and assembling instructions.

Connecting systems

Browser client/server structure, WebRTC peer connections, Firebase signaling, Makefiles, and building graphics experiments for different platforms.

Keep exploring

There's more
behind every project.

Read the code, try a game, or visit my original corner of the web.

Back to the beginning ↑