Back home

About me

Hello!

My name is Nathan, I’m a highly motivated software developer with several years of professional experience and a proven ability to write high-quality maintainable code when I can, and fast solution-oriented programs when I must.

I am currently in my 4A term of studying Computational Mathematics at the University of Waterloo. When I’m not contributing to open source or tinkering with hardware, I spend time working on my many personal projects, some of which you can find on my GitHub

Technologies

I’ve worked with dozens of different technologies, and I’m always keen to pick up more. This is not an exhaustive list, in no particular order.

Tech Stack

Software

OS | Fedora Linux -- This is an amazing operating system, it's stable, responsive, and I like GNOME (for now...). My dream is to switch to Fedora Silverblue one day, building my desktop as an OCI container in the cloud and pulling in updates immutably. However, container diffs are a blocker for this at the moment (See #902).

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 | Docker -- When switching to Linux from Windows, I missed WSL2. The ability to have a work environment where I could install programs freely without working about breaking my system was great. Fortunately, I was able to recreate this (and more!) with pure Docker containers. They integrate seamlessly with VSCode, and allowed me to develop with Ubuntu for my previous job (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).

Shell prompt | Trueline -- I wanted to like starship.rs, I wanted to like powerlevel10k, but the config and installation was too annoying to maintain across different environments. Trueline works exactly how I want it to (almost) out of the box, and I can copy a single bash file around to get the prompt anywhere.

I also add the following to my .bashrc for a better experience across different terminal emulators

setopt menu_complete # Tab autocomplete
unsetopt auto_list # Don't list options on tab

bindkey  "^[[H"   beginning-of-line # Home key
bindkey  "^[[F"   end-of-line # End key
bindkey  "^[[3~"  delete-char # Delete key

Gnome extensions

  • Blur my shell -- pretty!
  • Tiling Assistant -- quarter tiling so good you'd think it was built-in
  • Caffeine -- I use it more than I thought I would
  • Clipboard Indicator -- not perfect, I wish there was something closer to Windows' clipboard history. Maybe I'll write my own!
  • Color Picker -- great, works identical to the Powertoy on Windows
  • Dash to Panel -- if you're coming from Windows and want this, it's amazing. I prefer stock GNOME though
  • GSConnect -- meh. It works, but isn't super useful
  • Just Perfection -- a few UI tweaks
    <!-- Photo of laptop -->
    <img
        src="/laptop-on-desk.jpg"
        style="margin-top: 2rem"
        alt="Laptop on desk"
    />
    <p style="width: 100%; text-align: center">Photo credit: Phil Barker</p>
    <h3 id="hardware">Hardware</h3>
    <p>
        <strong>Laptop | Dell XPS 17 9720</strong> -- This is current daily driver.
        It's 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.
    </p>
    <p>
        <strong>Displays | Asus VA24E</strong> -- 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.
    </p>
    <p>
        <strong>Mouse | MX Master 3</strong> -- I've been using this mouse for
        a few months now, and I love it. The scroll wheel is amazing, and it's
        super comfortable. While pricey, I don't regret the investment.
    </p>
    <p>
        <strong>Phone | Pixel 4a</strong> -- This phone works great, I love the
        fingerprint sensor placement, and the camera is more than enough for
        me. It's been going strong for about 2-3 years now, and I'm going to
        hold onto it as long as I can
    </p>
    <p>
        <strong>Earbuds | Jabra Elite 4</strong> -- My first earbuds, that I
        use on occasion. They're cheap, sound great, and are reasonably comfortable
        (though I haven't used many other earbuds).
    </p>