Below are some of the projects I've completed. For a full list of my projects (including incomplete/abandoned projects), visit my BitBucket.

Machine Learning

My first foray into machine learning with the "Hello world" of machine learning: the MNIST handwritten data set. Built from the ground up with as few libraries as possible, so that I can learn machine learning without any crutches. I equipped my implementations with a status line so I could see how far the training has gone, along with concurrency to speed up the training.

C++

This implementation employs a real-time status line along with concurrency via a home-built thread pool to train the neural network.

Python

This implementation employs a real-time status line along with concurrency via Python's process pooling library to train the neural network. It also uses numpy for a performance boost.

Parsing

When I first dabble in a new language, I usually start off by writing a simple calculator. Parsing and executing an arithmetic expression is complex enough to showcase a language's capabilities but simple enough to write up fairly quickly, even if you're not familiar with the language at hand.

Ruby Calculator

I wrote this implementation in order to teach myself Ruby. Ruby is a language that is very easy to learn. One night I couldn't sleep at night, so I woke up at 4am and wrote most of this in a few hours.

Rust Calculator

I wrote this to teach myself Rust. Unlike Ruby, Rust has a learning curve to it. I wrote this when I was older and wiser: the grammar in this repository's calculator is cleaner than the Ruby calculator's grammar.