Stewart Smith

Hey, welcome! I’m Stewart Smith, a software engineer based in Toronto, Canada. Previously in Silicon Valley.

Rocks think poorly. We compacted them and filled them full of electricity. We created logic gates, firmware, drivers, and operating systems. Almost magic. Yet software and hardware engineering is anything but magic. It’s tedious, error prone, and complex. Rocks. Think. Poorly.

I’ve programmed drivers for GPUs and built large scale distributed system automation. I like to deep dive topics and dip into new spaces. So far that’s been compilers, computer architecture, game development, computer graphics, operating systems, computer security, web development, mobile development, and robotics, to count a few.

This is where I collect all my tidbits of information, funny stories, and frustrations as I try to make rocks think.

Tourist Attractions

Subscribe to blog posts

For reading, checkout my blog. Each post is tagged and rated on its estimated technical skill requirement. I like teaching, so posts range from none at all to highly specific domain knowledge.

Maybe in a pinch you’ll come across one of my guides while googling. They are made to solve a specific problem, not for casual reading. Unless that sounds compelling!

Check the tags page to see all the topics I’ve been writing about. The number of posts related to the tag appears next to it.

Latest Posts

Subscribe to all posts

  • Systemd Default Working Directory

    For when you forget to configure WorkingDirectory

    The default working directory for a systemd service is relative to the root of the system running the service manager. This is likely /. The default working directory is used when WorkingDirectory= is not set in the service configuration file, *.service.
  • Pre-C++17 Alternative to C++ 17 Structured Binding: Unpacking

    Not everyone has C++17 available. std::tie unpacking is a limited pre-C++17 alternative.

    Structured binding, introduced in C++17, is the ability to decompose an object into its subobjects or elements and bind them to, for example, variables.
  • Create Share Links To Mobile Apps Like Whatsapp and Messenger

    Create share links on your website to Whatsapp and Messenger on mobile

    When sharing content on mobile people want to share with their peers over their favourite messaging app. These days that’s Whatsapp and Messenger. I’ll show you how to create links to Whatsapp and Messenger from your website and how to hide them on desktop where the apps aren’t available.
  • Easily Hide DOM Elements By Platform With CSS

    Hide website DOM elements depending on the user's platform (desktop, mobile) using only CSS

    Sometimes certain parts of a website only work on a certain platform. Mobile deep links are a good example of this; certain deep links can’t be handled on desktop. Use this CSS technique to hide Document Object Model (DOM) elements from the user based on whether they are on mobile...
  • Finding A Path Generation Bug In CMake

    How I Lost An Evening And Forgot What I Was Supposed To Be Doing

    Bug report for the impatient. Have you ever had one of those nights? You know the ones where you sit down to do the coding you really want to do. Not your day job stuff. No no, the good stuff. That side project you’ve been thinking about all week. You...