Jonathan Lam

Core Developer @ Hudson River Trading


You're a web developer? Why is your website shit?

I used to call myself a web developer, but the sum of my experience in that field has led me to conclude that I am a terrible designer. I'll leave UI/UX to the professionals when possible.

But for my purposes, simplicity is a design choice with its own benefits:

While SPAs are great, I think they're starting to become an anti-pattern as they become the norm, even and especially for small academic projects that would do better with much less. Thus I regress.

It was brought to my attention that this website exists, which affirms a lot of the points outlined above.

Why are the margins so big?

See: Why are the default LaTeX margins so big?

How can I contact you?

See the Contact page.

Fun facts?

(These are several of my canned responses for icebreaker sessions, because I am bad with discovering new facts about myself on the spot.)

How do you look?

A recent picture.

Code style convention?

For JavaScript: Mr.doob's Code Style .

For most others (mostly C-family languages): Linux Kernel style guide.

I have become less rigid over time with coding conventions, especially after encountering functional languages such as Haskell (which are very opinionated).

In general, it will most likely depend on the project or the language (gofmt is a good example of this). When in doubt: agree with your team on an IDE/formatting tool and use the auto-format feature. And when you have a project involving multiple languages: good luck. For example, Google has its own sets of style guides for each major language used, and sometimes they can conflict (e.g., names for global constants are kConstantName in C++ and CONSTANT_NAME in Python).

80 characters is also a good convention for most code, but gets unreasonable with unstructured data (e.g., markup languages).

Favorite language(s)?

1) LISP. 2) OCaml. 3) Haskell.

(C and JavaScript used to be on this list, but the annoyances of C and the idiosyncraries of JS have pushed them off.)

Languages you want to learn?

1) Golang. 2) Rust. Learned these languages since initially writing these. Now mostly interested in Haskell, Scala, and other FP languages.

Least favorite language(s)?


(Python used to be on this list, but the world has coerced me to like it more. The Python code written by others (especially data science researchers) is probably the worst code I've read though.)

Favorite color?


Favorite OS?

FreeBSD for experimenting with/learning about the OS.

Arch Linux for average screwing around and speed.

Debian for overall stability and support.

Fedora for being having all the consumer applications immediately ready.

Hardware and OS setup

At one point I was more ambitious. Now I stick to my humble 2017 Acer Spin 3 for most of my computing needs, which runs Arch Linux. If I need to mess around with other hardware, I usually use Debian.


Reading list?


Tell me more about this website?


Strange website issues?

If the webpages look inconsistent (e.g., the navbar is different between pages), this is likely due to caching by the Fastly CDN. Sit tight for a few minutes or (for the impatient) add a query parameter. There shouldn't be any server errors except 404, since everything is static.

If in doubt, feel free to contact me.

© Copyright 2023 Jonathan Lam