Taylor Whatley
Computer Science Specialist
Woodsworth College
Drawn to challenging problems and creative solutions, Taylor Whatley built an NES emulator, developed Saturn — a replacement for a legacy assembly programming tool — and collaborated with professors and peers to improve computer science education at the University of Toronto (U of T). Alongside standout academic projects, Whatley gained hands-on experience through three internships at Apple, where he will soon return full-time. As he graduates, Whatley leaves a legacy of innovation and leadership, making technology more accessible for others.
This Q&A has been edited for clarity and length.
What inspired you to study computer science at U of T?
When I was a kid, I used to really enjoy putting together small command-line games in Batch Script for my friends. The language was super simple and was fairly easy to pick up. It also ran on the school computers, so it was easy to make a bunch of changes at home and then have my friends play it once I got to school. However, I noticed that people were creating games with full interfaces and 2D or even 3D visuals — so much more complex than my simple text-based command-line games! It all seemed like wizardry to me, and I felt motivated to learn how to create something that’s on par with that. From then on, I would often see complicated or intricate programs, and I would say, “I want to learn how to make that,” and that motivated me a lot to improve through my computer science journey.
It sounds like you’re not one to shy away from a side project. Tell us about one project that stands out, and what motivated you to take it on.
I’ve always been fascinated by problems that seemed especially challenging to tackle. For example, the problem of emulation (running programs designed for one architecture on a completely different architecture or system) is always a complicated problem to tackle. Where would you even start? Recently, I got around to finishing an emulator for the Nintendo Entertainment System that I started back in Grade 10. My team and I ultimately used it for our final CSC311 project, where we attempted to apply some unique reinforcement learning techniques to teach Mario how to complete World 1-1 faster.
Tell us about the genesis of Saturn and how it’s being used.
When I was taking CSC258, I had a particularly challenging time with the tool used for assembly programming at the time, called MARS. MARS had a dated interface, would frequently crash and often impeded my progress. During the winter break after the course concluded, I felt like I could make a better tool than MARS. I started with a modern foundation and began writing the interpreter, assembler, debugger, and user interface. Ultimately, I felt that I had something that worked reasonably well. I shared it with my friends and professor to try it out and gather feedback, and they noticed the improvement.
Today, Saturn has mostly replaced MARS in CSC258 for the Assembly programming component. Students use it to make a game in MIPS assembly for their final project. Today, I’m working with student Milo Mighdoll, and Professors Steve Engels and Mario Badr to add RISC-V support, bring an online collaboration feature up to speed, and prepare the tool for presentation at ITiCSE.
What’s next for you?
I’ll be working at Apple starting in July, which I’m really excited about! I’ve worked at this team as an intern for the last three summers, so I know them well, and they’re really smart people. Additionally, I’m working to prepare Saturn for the ITiCSE conference. The features are quite daunting, but we're making steady progress, and I’m excited to showcase everything at the conference in June.