Sam Wolfson
academicsextracurricularsrecipesetccontact
academicsextracurricularsrecipesetccontact

Extracurriculars

What I like to do in my spare time.

Capitol Hill Tool Library

Shortly after moving to Capitol Hill, I started volunteering at the Capitol Hill Tool Library. We are a non-profit organization providing all sorts of useful items — from drills to lawnmowers to coolers! By providing shared resources for the community, we reduce the need for individual consumption and ensure greater access for those who either can't afford to buy their own tools, or don't have the space to store seldom-used items.

We also offer a variety of free classes taught by community members. I've personally given workshops on 3D printing and modeling in Fusion.

Seattle Renters' Commission

I serve on this city board, which advises the Mayor, City Council, and other departments on issues affecting renters in Seattle. As someone who loves Seattle and wants to see it thrive, I hope to advocate for housing that is affordable, welcoming, and plentiful for everyone who wants to live here.

Homebrew IoT

I have a number of projects that involve building custom IoT devices.

  • wolfRemote is a website for controlling an entertainment system (TV, speakers, AV receiver, etc.) and smart lights through a web interface. It talks with them through WiFi, for devices that support that, or infrared, for devices that don't. The web server runs on a Raspberry Pi, which is connected to an infrared LED.
  • laundrybot (work in progress) aims to let you know when your laundry is finished. I use an ESP82666 microprocessor connected to a current transformer that clamps around one of the wires inside both the washer and dryer and detects whether they are running. This turns out to be tricky because, at least with our laundry machines, the current draw is not consistent and can even be so low as to be undetectable when they are switching between cycles. I also ran into some still-yet-unsolved issues with interference on the current transformers, giving false positives as to when machines were drawing current. Hence, why this project is still a work in process.
  • I use a lot of cheap, generic smart outlets that are based around the ESP82666 microprocessor. To avoid privacy issues and improve their compatibility, I take them apart, solder onto their serial pins and flash them with Tasmota, an open-source firmware. I link these devices up with Home Assistant to create automations and control them via Homekit.

3D Modeling & Printing

I used an Ender 3 to print, then assembled myself, a Voron 2.4, which was a lot of fun. But I got a little burnt out on the printer itself being a project, so now I mainly use a Bambu X1C.

Sometimes I post models on Printables. I mainly work in Fusion.

Programming

  • pde2js is a transpiler that converts code written in the Processing programming language to p5.js, the JavaScript equivalent. This is intended for use by new programmers who wrote cool art programs in Processing but don’t want to deal with the tedium of manually converting code to a different language. It’s been successfully used by CSE 120, a Computer Science Principles course at the UW (for which I’ve worked as a TA).
  • BrainTrust Bot is a Telegram bot that adds a bunch of fun features to your group chats. I had originally written this in Python, but as it grew beyond its original feature set, it was desperately in need of a revamp. So I re-wrote it using Ruby on Rails. I’m mainly proud of this project because I spent a lot of time writing tests to ensure that all the features worked properly.
  • aws-email-forwarder is a set of Terraform scripts and a tiny lambda function that will provision AWS resources so that you, armed with a domain name, can give out infinite disposable email addresess to unsavory websites. It will forward emails sent to any address at your chosen domain to your real address — no need to set anything up beforehand. If you decide you no longer want to receive emails from a certain company, just block emails sent to that specific address.
  • I've created a variety of Minecraft plugins, though most of them were hastily written, are unmaintained at this point and may not play well with newer versions of the game. Use at your own risk :-)
  • Maybe I'm up to something new! If I am, it's probably on my GitHub page.

Sourdough

I studied abroad in Rome in autumn 2018, and got really into baking sourdough bread. I love the “magic” of the yeast in the starter creating gas bubbles in the gluten that allow the bread to rise and become soft and airy. The whole process is a crazy coincidence of trapping the byproducts of a couple microorganisms into a material that just so happens to have the right amount of elasticity to flex while still being strong enough not to break. If you're interested in more of my thoughts on sourdough, I wrote an entire page about it.

Kombucha

oh no, I'm becoming a stereotype!

I started brewing kombucha in early 2022 after getting a little bored of sourdough. My favorite flavor right now is lemon, ginger, and mixed berries. I also recently tried making hard kombucha, which actually worked pretty well!

Running

Ah, running. Does anyone really like to run? I started with cross-country in high school and have more-or-less kept up with it ever since, including with the Husky Running Club when I was in college. It's a good way to keep in shape without really needing the type of coordination that most sports require. I've run in a few races:

  • Dawg Dash (5k in 2016 and 2017, 10k in 2019)
  • Mt. Si Relay (2016, 2017, 2019)
  • Beat The Bridge (2019)

I think that running is a great way to escape for a little while. I also run to explore new places. When I visit a city I like to find places to run and see if I can navigate my way around without using a map. This has had mixed results. I've gotten (temporarily) lost both in Santa Clara and in Rome. In the former incident, I inadvertantly ran close to a half-marathon. I was pretty sore the next day.

Music

I've been playing the guitar since middle school, though I've only taken lessons sporadically. I like to jam with my friends, and occasionally we make fun videos of us playing.

Outdoors

I like to hike, and have been on a number of backpacking trips. My WTA page has a (non-exhaustive) list of places that I've been. Some notable trips are:

  • Hidden Lake Lookout (2016, 2019, both overnight)
  • Marmot Pass (2017, 2 nights)
  • Spray Park Loop (2018, 3 nights)
  • Camp Muir from Paradise (2019, day trip)
  • Spider Gap Loop (2020, 4 nights)
  • Seven Lakes Basin Loop (2021, 3 nights)
  • Tour de Mont Blanc (2022, 11 nights, mostly in refuges)
grimacing in the rain while backpacking

Nonsense

I made a Telegram sticker pack of myself.

Things I did in high school

heads up!

These projects are very old and unmaintained. They're probably also poorly written and full of bugs. I do not recommend using them for anything that you care about (or really at all). They're mainly here for posterity. The descriptions I've written about them mainly reflect how I felt at the time when I created them, and should not be taken as an endorsement by current me ;-)

FRC Scout

For the FIRST robotics FRC competition, a large part of the competition is “scouting” teams to figure out how well they do in games, and how well they would compliment your team’s strengths if you were in an alliance together. My friend and I created a website, FRC Scout, to make scouting teams much simpler and easier. It tracked data entered by various team members on various teams, and aggregated their data in a large database to create averages. These averages tracked the strengths and weaknesses of different teams, which made it easier for other teams to see whether or not they should select a team for their alliance. It was super cool, and from it I learned a lot about web development. You can find the code on GitHub if you’re so inclined. We used Python, with a framework called Django.

TaskRabbit

My high school FRC robotics team was not known for its stellar project management abilities. So at the beginning of the 2015 robotics season, I decided to write a website to help us do so more easily. And thus, TaskRabbit was born. My friend and I spent many hours designing and writing TaskRabbit. The idea was that tasks would be entered into the website, by a team manager, and then when a team member came in for the day, they could decide which tasks they felt comfortable doing, and they would “claim” them. As the team member worked on the task, they could leave notes on it, and then mark it as completed once they finished. Or, if they didn’t have the chance to finish the task completely, they could pass it to someone else and optionally notify them.

Eventually, TaskRabbit grew to also encompass a time clock, for logging hours, and a calendar with important dates and deadlines. Unfortunately, our team was never really organized enough to actually find people willing to figure out what needed to be done, and enter said tasks into TaskRabbit. So its true power was never realized. Nonetheless, it was a fun and complex project. If you’re interested in checking it out, the source code for the entire robotics website (including TaskRabbit) is available on GitHub. It’s written in Python with Django as a framework.

Sloth Pages

For my IB Computer Science dossier in junior year of high school, I approached my biology teacher to see if she would be interested in using a website to disseminate assignment and class information to her students, since the system that the school used at the time was slow, clunky, and unintuitive. She was interested, so I wrote the initial website using PHP and MySQL. Admittedly, it wasn’t written very well, but it worked – you can look at the source code here if you’re interested. The original is called transfusion, a jab to the Fusion Pages, the system used by Seattle Schools.

However, I had some free time my senior year, so I decided to rewrite the website using Django and Python, since I wanted a project and found Python to be a much better language. My teacher and I decided to call this new project Sloth Pages. Sloth Pages was built upon the base of transfusion, but I designed it to be much clearer and easier to use. Furthermore, it was more robust and mobile-friendly, and significantly less buggy. The source code is here.

Planda

Planda is a simple homework management app that I wrote as an excuse to learn about jQuery Mobile and Django. It allows students to create courses, and assignments for each course. It generates lists of assignments organized by course and due date, and marks overdue assignments in red to give them special weight. I used it extensively throughout my senior year of high school, as did some of my friends. Planda was designed to be very simple but satisfying to use – for instance, checking off an assignment creates an animation where it slides up and away.

Electric Go-Kart

In 6th grade, I bought a go-kart with the intention of converting it to electric. Through its many incarnations, it taught me lots of important lessons about both mechanical and electrical systems. You can learn much, much more about this project where I've archived it here.