James Barnett

GitHub · Email

Hello! I'm a software engineer based in London. I primarily work with web back-ends, but have experience with many different languages and technologies.

Some of my projects are listed below.

2021
[TypeScript: 78% | HTML: 19% | JavaScript: 2% | CSS: 1%]
A minimal ray tracing engine written from scratch in JS. No graphics APIs or libraries are used, only a single HTML5 canvas call to draw the generated bitmap image.
Various effects are supported, including recursive optical reflections and refractions, and Phong shading. Multi-threading is implemented using the Web Workers API.
The raytracer can be used to generate and compare CPU performance benchmarks.
2019
[C: 87% | Makefile: 7% | Assembly: 5% | C++: 1%]
A 32-bit x86 operating system and microkernel built from scratch. A work in progress.
2020
[Kotlin: 66% | HTML: 31% | CSS: 3%]
A simple raycasting engine written from scratch in Kotlin (transpiled to JS), rendered using only vertical lines drawn on an HTML5 canvas.
The raycasting rendering method was used in early 90's 3D games, most famously Wolfenstein 3D, as well as the classic Windows 95 maze screensaver.
2018
[JavaScript: 69% | HTML: 27% | CSS: 3% | Dockerfile: 1%]
A realtime web based energy monitoring dashboard displaying usage data and statistics for TP-Link HS110 smart plugs.
2018
[Go: 100%]
Slowpoke is a simple TCP proxy which can introduce configurable latency between packet delivery. This allows you to test and profile how your application behaves with different levels of latency between services such as databases or caches.
2019
[Go: 100%]
A small go program which takes an image and redraws a primitive version using only extremely simplified shape and colour information. It's designed to be run against works of art, but any input image can be used.
2017
[JavaScript: 67% | HTML: 19% | CSS: 14%]
A cross-platform SQL editor.
2018
[Kotlin: 100%]
A work in progress Game Boy emulator written in Kotlin, with steppable CPU execution and CPU register+flag inspectors
2019
[Kotlin: 87% | HTML: 8% | CSS: 5%]
Procedural terrain generation in Kotlin and WebGL.
2017
[Kotlin: 79% | CSS: 20% | Dockerfile: 1%]
A lightweight, minimal, readonly Reddit client designed for mobile devices or slow connections.
The deployed public instance no longer works due to the Reddit API lockdown, but can still be run locally or self-hosted.
2017
[C#: 100%]
Simple GUI tool to control the front panel LED ring on newer Intel NUCs such as the NUC7i and the NUC6CAYS series.