đź‘‹ Hey!
I’m Theo Bleier

I want to study
CS&E
at
my projects

atmy projects

I view coding as the most powerful way to broadcast my ideas to the world, the way others write or make music. Making at MIT would help me take my projects to the next level—learning and building things with MIT’s maker community.
Ruby on Rails, HTML/CSS, JavaScript, jQuery
High school students are locked out of the most powerful way to create change in society—access to the financial system. Hack Club Bank is a web app that uses fiscal sponsorship, a way of operating subsidiary nonprofit entities, to give a 501(c)(3) bank account to any student-run nonprofit or hackathon in the country.
I shipped dozens of features to Bank while working at Hack Club, but two of my favorites are support for sending checks and ACH transfers, and customizable donation pages for each nonprofit. I worked with Ruby on Rails, JavaScript/jQuery, HTML, and CSS to implement both features—I designed the systems, built the backends, then worked with our designer to implement the frontends.
During my time at Bank (early 2019 to summer 2020), nonprofits raised over $500,000 and transacted over $1,000,000 through Hack Club Bank.
Java, Spigot, Minecraft
This past February break, my friends and I were looking for a new game to play, having played the same ones throughout most of quarantine. So, I decided to build something new.
There’s a classic Minecraft minigame called Spleef: everyone gets a shovel and is standing on a platform that has nothing beneath it. You break the blocks below other players, and whoever is left standing wins. I decided to build this, but add another gameplay mechanic, powerups, that give you a special ability when you pick them up (like an enhanced jump, or a teleport).
Minecraft doesn’t built-in mechanics for mini games, so they have to be custom-built. I used Spigot (a Minecraft Server API), to implement all of the features. This included basic behavior (causing blocks to break instantly, scoring when someone falls off the platform), and complex behavior (like a throwable bomb projectile) that I needed to interface directly with the native Minecraft server code to implement.
The project was a success! My friends and I played it for the back half of February break (I built it during the first half) and had a ton of fun. There’s a clip of some gameplay taken the other day on the left.
Node.js, Express, Twilio, HTML/CSS, JavaScript, jQuery
Any new club’s first challenge is the high school club fair. Starting Westborough Hack Club, we needed something that both would establish ourselves as a worthy competitor to legacy clubs like Model UN or Debate, and that would attract as much attention as possible.
I had three things in mind—bright, flashy, and addictive.
I built a website with a phone number and simple message: text us a color, see what happens. We put the site on a TV at our fair table and tens of high schoolers crowded around, sending hundreds of messages. With each message, the background of the site changed to match whatever color it contained—as if by magic.
Twilio powered the phone integration, and I used Node.js with Express to receive data from Twilio. The site itself was built with HTML, CSS, and JavaScript.
We had huge crowds of freshmen throughout the fair, resulting in 100 people signing up for a club that no one had ever heard of before.
Node.js, Puppeteer, Redis, Zoom Web SDK, HTML/CSS, JavaScript, Socket.io
When the pandemic hit, Hack Club turned to Zoom. Worried about Zoombombing on public calls, I was tasked with figuring out a solution.
I designed a system where, after signing up for a Zoom call with an email, students receive a Zoom link that adds a few unique characters onto the end of their username. Anyone with a marked username would immediately be admitted—removing the need for a human to moderate the waiting room, and stopping would-be Zoombombers from easily joining en masse.
To do this, I needed to join a Zoom call from a server.
After some digging, I found Zoom’s tucked-away JavaScript Web SDK, meant for enterprise customers. It has to be spun up in a fully-fledged browser though—you can’t just run the JavaScript server-side.
So, I devised a scheme to spin up the Web SDK in a headless browser (Puppeteer), and link each of the SDK functions to a WebSocket command, so that a control server could programmatically “instruct” the headless Zoom client. It detects whenever a new user joins, and then my app could tell it whether to admit that user based on whether their username had a pre-approved database entry.
Quickly convert between many timezones. Built in a weekend with Next.js and Moment after I got frustrated trying to schedule a call across 4 timezones.
My corner of the internet. Built using Next.js and MDX. I'm really proud of the ASCII animation around the box—the CSS was super finicky and difficult to get right.
Built for a history project in place of a slideshow—I thought a website would be more engaging. Using HTML/CSS and jQuery.