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
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.
and more, as well as helping to maintain loaner laptops.
I design PCBs for people who wish to build a custom mechanical keyboard.
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. https://benjaminsmith.dev is currently running
on webweb, you can press the escape key to view the navbar.
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.
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. I was able to successfully present my inverted pendulum at the project exhibition, but I was unable to
make the device fully work due to issues with the motor. I'll be working on it over the summer; check here for
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.
I designed, assembled, and programmed a small WiFi-enabled clock which sets
the time automatically.
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.
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.
I designed, assembled, and sold a kit for an ortholinear keyboard. I
learned about creating a sellable product and managing a business.
A PDF of the page will be generated. This might not work in some browsers.