I have experience working on programming projects spanning a wide variety of languages and environments, most prominently JavaScript, TypeScript, HTML, and CSS for web applications; C#, Python, and C++ for game software; and Java and SQL for backend services. The following are some of my most notable projects, all of which have links to the corresponding GitHub repository containing the source code. All of my publicly open-sourced projects are accessible from my Github account. ( Github )
The site you are currently browsing. Written entirely by hand in vanilla HTML, CSS, and JavaScript, leveraging core HTML5 and CSS3 features. Hosted staticly via Github Pages.
To-Do Quest ( Github )
A single-page gamified to-do application, written in TypeScript, using React 16, Webpack, and other modern JavaScript application development tools. Styling done by hand in CSS using Flexbox. Created over the course of three days as a learning exercise in the React ecosystem. In the process I learned about the benefits of unidirectional data flow and centralized state management.
To-Do Quest Online App
Bootstrap To-Do Quest ( Github )
A port of To-Do Quest to Angular 2, using Bootstrap 4 as the front-end styling. Created over the course of a work day to demonstrate my ability to transfer my knowledge of React to Angular. Along the way I developed a general understanding of Angular's structure and how it differed from other frontend frameworks.
Bootstrap To-Do Quest Online App
Schwa ( Github )
A C-like language which compiles to the WebAssembly binary format. Features strong explicit typing, clean syntax, and near-complete feature parity with WebAssembly, producing binaries up to 90% smaller than the equivalent C++ code. The project includes a token lexer, AST parser, syntax validator, semantic type analyzer, pretty-print formatter, and WASM bytecode generator, all written in TypeScript as a bundled Node module. I developed Schwa both as a practical tool for writing WebAssembly code, which would help speed up core loops in other JavaScript projects, and as an excuse to explore the structure of modern language toolchains. To further my understanding of compiler design I wrote nearly all of the components from scratch rather than using shortcut tools like Lex and Yacc. I chose TypeScript and Node for the implementation due to their popularity within JavaScript developer circles, who would be the target audience for this type of project.

Recursive Fibonacci function example:
export int fibonacci(int n)
	if n <= 1
		return 1
	return fibonacci(n - 1) + fibonacci(n - 2)
Nonsensical, comprehensive syntax example:
int y = 1333 // Set up y

export const int SOME_CONST = 5

void main()
	DoSomething(true, 23ul)

export void DoSomething(bool alphabet, ulong soup)
	int z = 10 / SOME_CONST / 1f as int
	// Initialize x
	int x = (50.0f + -20f + 2f * float.floor(20.5f)) to int |> SOME_CONST
	y = -y
	if x == 70 & SOME_CONST // Check logic
		x = ((20f + 10ul to float) * float.ceil(20.25f)) to int
		if !alphabet && x == 20
		else if y == 70
			while y > 0
				y = y - 15
				if y < 0
				bool foo = true
			DoSomething(!alphabet, soup)
			nop() // Null operation

export int add(int a, int b)
	return a + b
Reptile Voxel Tool ( Github )
A cross-platform voxel art authoring tool built in and integrated with the Unity game engine to make creating voxel art for game environments quick and painless. Coded in C# as a standalone Unity application. No free alternative existed at the time of writing which provided key features like unlimited undo/redo, layering, frame animation, and Physically Based Rendering support, so I developed Reptile alongside several artists who represented my target demographic. In the process I gained experience working alongside customers and iterating on a product to gradually add their most critical features and quality-of-life improvements. Additionally, I picked up on some UX tips and tricks that came in handy on later projects.