Joshua Swanson

Hey there!

I'm Joshua Swanson.

I'm currently pursuing my Master's in Computer Science at ETH Zürich, with a major in Machine Intelligence and a minor in Data Management. I hold a BA in Mathematics and a BSc in Computer Science from the University of Washington.

I am originally from the USA.

Find me on the internet:

Designed by: Joshua Swanson

Projects

Small tools and side projects I build for fun.

A friend of mine is doing his maths masters and nearly all the research in his area is in French. He asked around if anyone knew a good tool for translating PDFs with LaTeX into English. Turns out the options are surprisingly bad. Google Translate completely mangles the math notation, AIs still struggle to read PDFs properly, and the most popular open source tool for this on GitHub doesn't even take PDFs directly. You need the original LaTeX source, which you usually don't have, so you're stuck paying for Mathpix to convert your PDF to LaTeX first, then running a command line tool, then compiling the output back to PDF. My friend doesn't know how to clone a repo or use the command line. And honestly, he shouldn't have to. What does work pretty well is screenshotting rendered LaTeX and feeding it to ChatGPT (or your LLM of choice), which can generally reproduce the LaTeX and translate it, but that's extremely cumbersome and inefficient for an entire document. Why is there no simple, easy-to-use online tool for this? I was genuinely surprised there was a gap here at all, so I just went and built a LaTeX PDF Translator. Upload a PDF, pick a language, get a translated version where all the equations stay perfectly intact. Fair warning: it's slow because it's making sequential Google Translate API calls, and it's running on a free Render server. But hey, it's free. It's also a bit buggy for now, but the more PDFs people send me the more I can work on fixing it.

As I work on my master thesis all day, I've started thinking about how nice it would be to have a larger display than just my MacBook. I typically have an IDE, a terminal, Overleaf, Spotify, and a dozen other things open simultaneously. I got lucky and found a Samsung SyncMaster SA850 on the street in Zurich for free. But once I started looking into a proper upgrade, I got a little overwhelmed by the sheer number of specs to compare (resolution, PPI, aspect ratio, diagonal size, panel type), so I did what any reasonable person would do and built an interactive monitor comparison tool. It plots monitors on a scatter chart with configurable axes and lets you filter by any property.

I recently saw this Mood Meter on Instagram and thought it was super funny. I recreated it here in HTML/CSS. There's something weirdly validating about being able to pinpoint exactly where I am on it at any given moment.

THE MOOD METER

HIGH
ENERGY
LOW
ENERGY
F**k it
we ball
We are
so back
LETS F**KING
GOOOOOOOO
It's so
over
Mom would
be sad
We
vibing
It is
it is
what
UNPLEASANT
PLEASANT

Ballroom

A log of my competitive ballroom dancing journey in Switzerland.

I am competing in the Trafo Cup in Baden, Switzerland.

I placed 3rd in Latin Masters at the 70th ETDS (European Tournament for Dancing Students) in Monheim am Rhein.

Say hello.

Don't be a stranger.

Find me on the internet:

I am echoing the standing invitation:

I like getting email. I have never, not even once, regretted getting email from a startup, engineer, student, or person interested in our industry. There is absolutely nothing you can do in my inbox which will cause me to think poorly of you as a person or make fun of you to my friends. The worst thing that has ever happened from someone sending me an email is me being a bit busy that day and not replying. Feel free to send me email.

Patrick McKenzie

My email follows the standard ETH format: first initial + last name at ethz.ch.