(Recently) Software Engineer @ Google Silicon
(Also recently) EE/CS @ The Cooper Union
From prior experience, I'm not skilled with UI/UX. I'll leave it to the design gurus when possible.
This is also a design choice, because simplicity has its 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.
See: Why are the default LaTeX margins so big?
See the Contact page.
(These are several of my canned responses for icebreaker sessions, because I am bad with discovering new facts about myself on the spot.)
A recent picture.
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).
1) LISP. 2) OCaml. 3) Haskell.
1) Golang. 2) Rust. Learned these languages since initially writing these. Now mostly interested in Haskell, Scala, and other FP languages.
(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.)
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.
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.
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