Benjamin Smith

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

https://benjaminsmith.dev


GitHub LinkedIn Old Website

Skills

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

Programming
Python
HTML
JavaScript
C++
C#
ASP.NET Webforms
ASP.NET Core
SQL
Hardware
Soldering
Down to 0605 packages
Hardware design
Skilled
Computer
Linux system administration
Typing, Colemak keyboard layout
80 wpm
Typing, QWERTY keyboard layout
60 wpm
Other
Onshape CAD
KiCAD
Eagle
Project planning
Good

Experience

Intern

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

Hackathon
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.

Volunteer

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.

Owner

KeyPCB
2018 -


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

Projects

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

Soldering/electronics


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


webweb

ASP.NET Core (C#)
HTML/CSS
SQL
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. https://benjaminsmith.dev 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.

Roto-Tellite

ESP8266
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

ESPClock

ESP8266
Arduino IDE
View on GitHub


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

FractalSP

KiCad
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

atfw

Python 3
C
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.

Fractal

Eagle
Onshape
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