A painting of a majestic-looking crow

Frederick's Perch

I'm Frederick Chan, the software wizard from the Emerald City!

Professional Work

Institute for Protein Design

Research engineer and web developer at the IPD David Baker Lab

I wrote software for ProteinMPNN, a deep learning approach to protein sequence design published in Science, worked on the Foldit website redesign, and ran feasibility studies for integrating Foldit with an HTML5 UI.

  • Python
  • PyTorch
  • Ruby (on Rails)
  • JavaScript
  • C++

Nile Travelogues

Full stack intern at Newbook Digital Texts, University of Washington NELC

I built a database where for identifying and reading travel logs from the Golden Age of Egyptology. Starting with only OCR scans of Nile Notes of a Howadji, I turned a book into a library with while shaving off up to 90% of the manual work otherwise needed.

  • Python
  • JavaScript
  • SQL


Even more of my projects are available on Github

Grow online

Web implementation of Grow, the abstract strategy board game I invented that's played on a 15x15 Go board and multicolored stones for up to 4 players. There is no AI, so you will want to play with a friend.

  • D3.js
  • Node.js
  • JavaScript


A multiplayer game where you compete with your friends to answer a series of simple brain games as quickly as possible. Originally inspired by the math minigame in the Jackbox game, Trivia Murder Party.

  • React
  • Node.js
  • JavaScript


A conlang written using colorful tessellating triangles with a focus on formal semantics. The placement and color of triangles along a 2D plane determines the syntax of each sentence. (The sentence renderer uses D3).

  • Formal language
  • D3.js


World of Warcraft addon that lets you add TomTom waypoints based on location name (e.g. "Orgrimmar"). Locations and their coordinates are data mined from WoW itself. Great for new players who don't know where anything is.

  • Lua
  • Python

Spot the Difference: Human vs AI written news

AI writing is becoming indistinguishable from humans! Can you tell the difference between real and AI-generated news? This is a simple Turing test-like game created as part of a final project for an Information Ethics class.

  • JavaScript

Laughing Man Webcam Filter

Webcam filter that overlays the animated Laughing Man logo from Ghost in the Shell: SAC on faces and sends the output to a virtual webcam.

  • OpenCV
  • Python


Bukkit plugin that calls the Mathematica kernel to query WolframAlpha from in-game. Do your calculus homework… in Minecraft! See how it works in my blog post.

  • Java
  • Mathematica

Legislature Simulator

The online zero-player game where you have more impact over a country's government than in real life!

  • JavaScript


Serious publications

Articles published in real™ journals, like Science

Silly publications

Articles published in joke tastefully humorous journals, like SIGBOVIK