Hello!
My name is Nathan, and I’m a software developer based in Toronto, Canada.
“expitau”?
You’ll probably see my handle “expitau” on my website, email, and github. It’s inspired by Euler’s formula!
When we evaluate this expression at (where ), this formula simplifies to (read “exp i tau equals 1”). Euler’s formula is a beautiful, elegant solution to a complex mathematical problem. It seamlessly bridges the seemingly unrelated worlds of calculus, trigonometry, and complex numbers. I believe that complex challenges often have an underlying simplicity, and code should look to unearth this simplicity to be readable, maintainable, and efficient.
Software
OS | NixOS
NixOS is the worst operating system from 50 years in the future. Over the past couple years, I’ve progressively made all of my tooling more and more deterministic. Even when I still used Windows years ago, I had setup scripts and would frequently factory reset my computer to a “clean” state. I’ve created my own Arch-based immutable distribution, but it just can’t compete with the speed and reliability of the /nix store.
IDE | VSCode
VSCode is an amazing editor, and while I’ve found it to be a bit slow (for a text editor haha), I love the seamless remote development integration, which is a dealbreaker for me in any other editor.
Subsystem | Incus
When I initially switched from Windows to Linux, I actually missed WSL2. The ability to have a work environment where I could install programs freely without worrying about breaking my system was great. Fortunately, I was able to recreate this (and more!) with pure containers. They integrate seamlessly with VSCode and allowed me to develop with Ubuntu for work (so people couldn’t blame me for using a different environment when things broke) and Arch for my personal projects (so I get the most up-to-date software without resorting to manually adding repos). Plus, in contrast to virtual machines, they can start up nearly instantly, are deterministic, and don’t use any memory while idle.
Shell prompt | Custom bashrc
I wanted to like starship.rs, I wanted to like powerlevel10k, but the config and installation was too annoying to maintain across different environments. I used trueline.sh for a bit, but even it became too cumbersome. Sometimes the simplest solution is best, so I just wrote my own.
bind '"\t":menu-complete'
alias ls='ls --color=auto'
alias grep='grep --color=auto'
prompt_command() {
local STATUS=$?;
local BRANCH=$(git branch --show-current 2>/dev/null);
PS1="\n╭─ \w";
[ -n "$BRANCH" ] && PS1+=" \[\e[38;5;248m\]$BRANCH\[\e[0m\]";
[ "$STATUS" -ne 0 ] && PS1+=" \[\e[38;5;203m\]$STATUS\[\e[0m\]";
PS1+="\n╰ ";
# Custom coloured prompt symbol based on environment
if [[ "$(uname -n)" == *dev* ]]; then
PS1+="\[\e[38;5;75;1m\]λ\[\e[0m\] ";
elif [[ "$(uname -n)" == *work* ]]; then
PS1+="\[\e[38;5;208m\]λ\[\e[0m\] ";
elif [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
PS1+="\[\e[38;5;71;1m\]λ\[\e[0m\] ";
elif [ "$(whoami)" = "root" ]; then
PS1+="\[\e[38;5;203;1m\]λ\[\e[0m\] ";
else
PS1+="\[\e[38;5;141;1m\]λ\[\e[0m\] ";
fi
}
PROMPT_COMMAND='prompt_command'
Gnome extensions
-
Blur my shell
Very pretty and has a lot of options now! This is a must-have for me.
-
Caffeine
I use it more than I thought I would
-
Color Picker
Great, works identical to the Powertoy on Windows
-
GSConnect
It works, but isn’t super useful
Hardware
Laptop | Dell XPS 17 9720
This is my current daily driver. Its performance has been more than sufficient for my use, and I’ve encountered none of the heating issues that I had with my previous (Lenovo T490) laptop. It looks amazing, and the keyboard and trackpad feel great. However, the webcam leaves some to be desired, and I miss my ethernet / HDMI / USB-A ports. When docked at home, I connect it to two external displays with a Dell USB hub (unfortunately, Dell’s got me locked in to a 130W hub), which works great but definitely isn’t worth the price.
Displays | Asus VA24E
I have two of these monitors, and they’re great. They’re cheap, and the colours are good enough for my use. I’ve set them up with a dual-monitor arm from Amazon, and they can comfortably sit in any position. I wish they had DisplayPort, but I got the two of them for about $200 so I can’t complain.
Mouse | MX Master 4s
This is the best mouse. It’s expensive, but its quality is incredible and I am thoroughly addicted to hyperscroll.
Phone | Pixel 6 Pro w/ GrapheneOS
I’ve installed GrapheneOs on this and it’s been a pretty great experience. While I do miss tap-to-pay and call screening a bit, the privacy (and battery life) improvements are fantastic.
Tech Stack
I’ve used a lot of technologies, so it’s very challenging to make a comprehensive list. Here are a few I’ve worked with:
Programming Languages (click to expand)
Web Programming Languages
Application Programming Languages
Scripting Programming Languages
Foundational Programming Languages
Markdown & Configuration Languages
Libraries and Frameworks (click to expand)
Web Frameworks
Web Libraries
Ops & Deployment (click to expand)
Databases
Development Tools, Operating Systems, IDEs
Infrastructure