Hello!
I am a passionate software engineer, who focuses on full-stack web & Android applications. Jack of all trades, master of a select handful. 😉
My work has consisted of different projects in academic, corporate, personal and freelance settings. Feel free to explore my projects and connect with me on LinkedIn!
Over time, I have accumulated numerous programming skills with different frameworks and technologies.
VPN management/automation application for Android. Supports Wireguard and OpenVPN.
Check it out on GitHub.
Utility for setting up UEFI secure boot in a simple way. Focused on Arch Linux + GRUB setups at the moment.
Check it out on GitHub.
Collaborated with friend to create a fully decentralized goals tracker web app. Uses Ethereum blockchain as a backend.
Check it out on GitHub.
Bicycle odometer/speedometer firmware for the PIC16F87X microcontroller.
Check it out on GitHub.
GPIO based in-circuit microcontroller programmer/debugger for the PIC16F family. Tested on the PIC16F876.
Check it out on GitHub.
Desktop one-time password widget designed for Raspberry Pi + 320x240 framebuffer-enabled LCD. Encrypts OTP keys with PIN sequence entered via GPIO buttons.
Check it out on GitHub.
Remote system statistic monitor for Raspberry Pi.
Client runs on the monitored machine, and sends statistics to Raspberry Pi with a 320x240 framebuffer-enabled screen.
Check it out on GitHub.
Small time-based one time authentication (TOTP) C library. OpenSSL based.
Check it out on GitHub.
Simple C library for drawing graphics to a framebuffer display device.
Check it out on GitHub.
AWS-hosted contact form mailer. Handles POST requests and sends emails to pre-configured contact email.
Check it out on the Terraform registry and GitHub.
Ansible playbooks and guide that replaces mainstream cloud software.
Sets up self-hosted e-mail, Nextcloud (Google Drive/Calendar/Photos replacement). Secures the server using numerous techniques.
Check it out on GitHub.
Created three COVID-friendly multiplayer web-based games. Uses Apollo GraphQL to handle WebSocket subscription/mutation communication.
The dreamfire framework was created/published for web-based multiplayer game development.
Play some games at funnyfarm. Check out dreamfire on GitHub: dreamfire
Simple torrent client with a library handling networking communication (in C, called libdtorr) and a user interface/front-end (in Python/wxWidgets, called dtorr).
Takes advantage of non-blocking I/O which reduces the numbers of threads (one network thread, one UI thread).
It's cross-platform (Linux/Windows).
Check it out on GitHub: dtorr, libdtorr
After years of software development experience and "blue team" security, I wanted some insight on penetration testing, and "red team/hacking" specific security.
The OSCP was a great fit for this. Over three months, I learned the fundamentals of enumerating systems for vulnerabilities, taking advantage of exploits, exploit development and privilege escalation.
A lab VPN containing many vulnerable machines was provided to students to learn and develop their hacking methodology.
Within 50-60 days of the provided lab time, I was able to gain administrative access to over ~40 machines.
In June, I scheduled my 24 hour exam which involved gaining access to five machines within a network.
The exam is notorious for its difficulty, with many students performing multiple exam attempts to gain their certification.
After developing a fool-proof methodology, I was able to complete the exam within 11 hours on my first attempt.
This course/certification has given me another perspective in regards to cybersecurity, which has significantly improved my abilities as an engineer.
NPM library and CLI tool that requests OAuth 1.0 tokens without need for a remote server. Designed for CLI tools that require three-pegged OAuth authentication.
Check it out on Github:
cli-oauth-client.
Nand2Tetris project. Assembler for the "Hack" assembly language. Produces binary code from assembly. Performant; assembles Pong in ~40ms on a standard machine.
Check it out on Github:
dhackasm.
Translation management engine SaaS. Automatically translates apps into 100+ languages. Ability to make tweaks and updates to translations without a software update.
Contributed two plugins to the Node object-relation mapping library, Bookshelf.js:
bookshelf-default-select
(GitHub,
NPM)
Enables default column selection on a database level.
bookshelf-ez-fetch
(GitHub,
NPM)
Convenient fetching methods which allow for compact filtering, relation selection and error handling.
Web application used to organise Google Photos albums into shareable collection pages. Uses Google API to fetch & display album data. Material Design look & feel.
Multiplayer Tower Defence game in C#/Unity3D. Academic project with a team of eighteen students. Contributed game logic algorithms and integrated network communication.
In my hometown, a group of residents started a movement to protect a forest from development. We started a society to lobby the city to preserve this precious area. So far, we have had many converstations with the city council of Burnaby. In order to advertise the movement, a website had to be created. I built this website with a members-only section, where registered members can log in and view city documents. We also have a private mailing list built into the website. The backend functionality was developed using Django/Python.
Created a visualization of a genetic algorithm as a hobby project. Used jQuery and Bootstrap technologies for presentation. Built JavaScript logic of binary genetics, including chromosome mutations & crossovers.
The project uses the algorithm to solve a simple problem. Let's say we have a list of 10 numbers. We must find two equations that use all the numbers in the list. One equation will only use addition and the other will use multiplication.
One number in the list can only be used in one equation. These equations must satisfy a target sum and a target product (can configure in the application). Each circle in the visualization represents a chromosome, which contains two equations as possible solutions.
Each ring of circles is a generation. A chromosome in the next generation will be a product of two chromosomes from the last generation (two parents create a child). A chromosome will be given a score (0 to 1), which will determine the 'fitness' of the potential solution.
The parents of a child chromosome will usually be the fittest chromosomes within their generation. Once a chromosome has a fitness score of 1, the solution is found!
Try it out on web, or clone it on GitHub!
Built working prototype of the Curatio Networks client with a team as a student industry-sponsored project. Added communication & authentication with existing REST API endpoint. Used API model data to create graphical visualizations for users.
You can learn more about Curatio here.
Worked with academic team to create side-scrolling 2D game within one semester. Used C# and XNA Game Studio technologies for implementation. Involved in level design, basic physics handling, XML map parsing, and NPC AI.
This game includes voice recordings from one of our favourite instructors! Level names are named after Dante's Inferno, and includes a great final boss. There are some cheat codes if you wish to skip levels. Press any key from 1 to 9 to select a level, and press the C key to see the credits.
Download it here!
Worked in academic group to create a jQuery Mobile/PHP web application which allows students to test themselves with submitted questions for specific courses.