Benjamin Smith

I'm a high school student who makes hardware and software projects, and is looking to gain experience in the professional world.

GitHub LinkedIn


means the highest skill level,
means the lowest skill level.

ASP.NET Webforms
Down to 0605 packages
Hardware design
Linux system administration
Typing, Colemak keyboard layout
90 wpm
Typing, QWERTY keyboard layout
100 wpm
Onshape CAD
Project planning



Kernel Labs
September 2019 -

CodeLabs 2019

July 8-19 2019

Throughout a two-week period, I worked on creating a content management system in ASP.NET Core (C#/HTML), which I've written more about here. I met with a mentor to discuss the state of my project and potential future features, and attended online workshops to increase my knowledge of other skills such as Docker, project management, and APIs.

CodeDay Winter 2019

March 2-3 2019

Over the course of 24 hours, I planned and created a budget management application with another person. The application uses Onsen UI, HTML5, JavaScript, and jQuery. I wrote the backend as well as a part of the frontend. I also participated in the CodeCup CTF and got first place in Washington out of about 30 people from the age of 12 to 18.

Enterprise Application Programmer Intern

Bellevue School District
December 2018 - June 2019

I helped develop enterprise applications for use at the Bellevue School District using technologies including HTML/CSS/JS, ASP.NET Web Forms, and SQL Server. I created a change management application for use internally which allows IT personnel to log changes and submit them for approval to simplify the debugging process.


Seattle CoderDojo
2015 -

Assist in running several workshops to teach kids to code in JavaScript, Python, and more, as well as helping to maintain loaner laptops.


2018 -

I design PCBs for people who wish to build a custom mechanical keyboard.


Inverted Pendulum

Arduino IDE

For my 9th grade Freedom Project, I decided to make an inverted pendulum. An inverted pendulum moves a pendulum back and forth to balance it so that the rod is upright, with the pivot being the lowest point on the rod. Mine uses an Arduino Mega 2560 as the controller with a PID algorithm to control the movements. The frame is based on the MPCNC by V1 Engineering, and parts have been modified to fit the new electronics. Encoder Products Company generously provided one of their encoders for use in this project, which lets the controller read the angle of the pendulum with 12-bit accuracy.
View video and images

Scooter horn


My aunt uses a TravelScoot scooter to move long distances (at the airport, grocery store, etc). I came up with the idea to build her a horn, and she really liked the idea. In a few hours, I built a simple device which uses a battery pack, a piezo buzzer, and a Cherry MX switch for control. The final product is very simple, but incredibly effective, and it lets my aunt alert people that she is driving near them so they can move out of the way.
View images


ASP.NET Core (C#)
View on GitHub

A content management system that gives you control over the HTML. It features a full browser-based code editor (using Monaco), a page template system, a file management page, and a custom markup syntax to make writing pages easier and faster. is currently running on webweb, you can press the escape key to view the navbar.
View images

Kindle Voyage repair

View on iFixit

My mom's Kindle Voyage started bootlooping, and Amazon said they couldn't repair it (which makes sense, as a professional repair would be expensive for them). I decided to try to repair it using a combination of various bits of information I found online, and I eventually was able to fix it by connecting a USB-serial adapter to the internal serial port, entering diagnostic mode to force it to show up as a USB disk, uploading a copy of the firmware, and using the recovery mode menu to force it to install the firmware file. After that, I decided to write a guide on how to do this repair so that people who encounter the same problem can fix it without having to spend hours searching the internet for information.


Arduino IDE

I restored a Roto-Tellite indicator lamp module from 1966 and put it in an enclosure, along with a custom ESP8266-powered driver board. The result is a programmable WiFi-enabled indicator lamp which can display the weather, show the status of online services, communicate with IoT devices, and more.
View images


Arduino IDE
View on GitHub

I designed, assembled, and programmed a small WiFi-enabled clock which sets the time automatically.
View images


QMK Firmware

I designed and assembled an ergonomic split keyboard. The layout is based on the Keebio Nyquist, but features slightly larger thumb keys. It is powered by QMK firmware, which allows for easy customization of the keymap.
View images


Python 3
View on GitHub

I made a keyboard firmware generator/uploader for ATtiny85-based devices running the Micronucleus bootloader. It was designed to be very easy to use, with the keymap parameter being a simple Python dictionary.


QMK Firmware

I designed, assembled, and sold a kit for an ortholinear keyboard. I learned about creating a sellable product and managing a business.
View images

Powered by webweb v0.3.1