Experience

Back to the home page

Technologies

A list of technologies I am experienced in. The more dots there are, the more experience I have. These are listed in no particular order.

Go
I have recently begun picking up Golang and rewriting many of my personal projects to get a good grasp of it. I am a big fan of how the language was designed: with errors and sustainability in mind.
Docker
I have used Docker to reliably deploy and scale up production-grade web services. I also have experience with the Docker API; for example, I spin up containers on-the-fly to run user code from CompileBot in a sandbox.
Node.js
Lots of stuff I make is written in JavaScript with Node.js as the runtime. I know modern-style ES6 syntax and use best practices wherever possible. Most of my Telegram bots are written with modern JS.
HTML5/CSS3
Much of my development work has been in web development, so I am very versed in HTML5 development (as apparent by this site!) I like to live on the bleeding edge and use up-and-coming technologies like WebVR whenever possible.
Android/Kotlin
I have written several Android apps that are live on the Play Store, two of the biggest being CodeDay Companion and Academus (see more about them below). Both are written in Kotlin with best practices and "DRY" code in mind.
iOS/Swift
I've written one major iOS app (CodeDay Companion) and helped with Academus for iOS. I am currently working on an iOS image board viewer written with SwiftUI to enrich my iOS development skills.
Telegram Bot API
I have written quite a lot of Telegram bots over the years, and I have gained lots of experience with Telegram's bot API as a result.
Ruby on Rails
My larger web-based projects are written in Ruby on Rails due to its wonderful ORM, ActiveRecord, and the generators it provides; they make development much quicker. Neodeck and the Academus API are built upon Rails.
C# (.NET and .NET Core)
I have written native apps for Windows with C#.NET and some more complicated Telegram bots using C#.NET Core. It's probably my favorite OOP language.
Linux
I have some experience with managing Linux systems at a lower level (both desktop and server). I've gained lots of insight about the inner workings of a Linux-based system through installing Arch on my MacBook Air, but I still have a lot to learn!
Azure
I have deployed all of the Academus infrastructure on Microsoft Azure and have scaled up our services with ease as we gained more and more users.

Projects

The skills I listed above are best demonstrated through example. Here are a few projects that show my best work in many of those technologies. You can find even more projects on my GitHub profile.

Academus A student's best friend
CodeDay Companion Event guide app for CodeDay attendees
CompileBot Telegram bot for running pieces of code
Neodeck Realtime CAH-style deck creator
dpb Command-line tool for DeployBot
MakerBot Web UI Multi-user web interface for MakerBot 3D printers
node-makerbot-rpc Node.js library for proprietary MakerBot protocol
schema.tl Fast and beautiful TL-Schema viewer
node-launchpad-mk2 Node.js library for Launchpad MK2/Pro