This year, I’ll be writing Off-Topic posts on some Sundays. They’ll always have Off Topic in the title, so if you’re not interested in musings about learning, life, and technology, feel free to skip them. Obviously these posts are not mostly about public transport, but I am sure it’ll come up from time to time.
Background
Growing up, I always had a passion for transport, which developed into a passion for public transit as I grew older. But, I had also always had a huge interest in technology (I did a lot of the usual things young technology nerds do as a kid — including building Lego-based robots, and eventually building computers and a 3D printer when they were first).
That passion was a big part of why I decided to study Computer Science in university (I had previously been very interested in Architecture), which was a pretty awesome experience. In choosing a city to study in, Toronto was obvious: not only did it have the biggest transit expansion in Canada (and I’d argue in the Americas), but it also has one of the best universities to study computer science at (I was really interested in machine learning back in the early 2010s and Toronto was and is quite a hub for it).

While I actually really enjoyed doing my degree, learned a lot, and felt very challenged, I feel bad to say I let my interest in technology and software kind of sit by the wayside for the last 5 years or so as I focused on transit. This was probably not a good sacrifice in retrospect and I think people often let good things fall away when they are focused on life.
As I discussed in my New Year’s Goals post, I got back into reading (I read maybe 2 books in 2022 and 23 in 2023). This was because in retrospect my voracious reading of nonfiction and publications such as Popular Science (rest in peace) — which I would take out en mass from my school library — was a big aid to me later in life understanding science and technology. It brings me back to the idea that certain intellectual investments pay dividends over the long term.
In a similar way, my knowledge of computer science, computer hardware, and to some extent electrical engineering has helped me think about lots of other topics, and I don’t want to let that go. Surprising as it might sound, I think I know about as much about tech as I do about transit as that was probably a big part of why my YouTube channel originally had the tag line “Transit, Technology, and more”.
The Plan
So how do I plan to “exercise the muscle”? (For what its worth, I think this is actually a bit of a good “never studied Computer Science”, but want the knowledge playbook)
Hardware
Computer hardware is something I enjoy so much that I do sometimes regret not going into electrical engineering or computer engineering. I was surprised how much of the Computer Science crowd in university was uninterested and often unaware of hardware (the pinnacle of this was a CS professor I really respect couldn’t get a projector to work properly!).

One thing I will do this year is build myself a new computer. The last computer I built I sold off (and made money) during the great GPU winter of 2020/21. While I’ve loved using my Apple Silicon-powered MacBook Pro, I quite honestly enjoy building computers and not only understanding how they work, but also the potential for self-repair and longevity when you can invest in good components and take care of them.
A well-built computer can last a shockingly long amount of time, and warranties for high-quality components often run 5 years or longer, which is way better than even the extended warranties you can get for most consumer technology these days. To be clear, while I do like ARM and Apple Silicon (though I’d love to see Risc-V take off long term), I do not like Apples attitude towards their customers (I often feel like Apple wants me to be grateful that I can buy their products), and I do not like the locked-down and put-everything-in-one-package design direction (which is kind of Apple’s culture to be fair), even if it can allow for incredible optimization and production scalability. There have actually been some really interesting developments slowly progressing in the desktop computer world such as ATX 12V. I am excited to get back to the fun (and the stress) of building a machine and I will likely write an article about the components I chose when I actually end up building it.
If I somehow find the time this year, and manage to get the FPGA I gave to a friend back from them, I might even dabble in some software-defined electronics or other electronics projects this year. Creating small electronics projects has never been my strongest skill, but it’s one that I should be far, far better at especially considering its relevance to things like train and tram electronics.
Software
The bulk of my time devoted to “getting my brain back into tech” will likely be spent on software — it is after all what I spent so much of those years studying doing.
The sort of starting point for a lot of software work is getting back used to working in the command line. I used to be fairly good, but I can count the number of times I have opened the terminal on my Apple Silicon Mac on one hand. Ideally, this time I will record more of my learnings into notes that I can refer back to — something I was not that consistent with in university. I do feel like there should be a command line course in school, because I feel that by the time most people get comfortable with it they are finished their degree. Just thinking about writing code and getting it up on my Github I’m realizing I’ve forgotten almost entirely all of the various git tools and commands…
For data structures and algorithms, I’m hoping some of my old notes come in handy, but the worst case scenario is I crack open CLRS and start studying. While I really enjoyed the data structures and algorithms courses in university, they were not long enough or comprehensive enough to be satisfying, and courses of this type always feel rushed. Actually stretching my logic and algorithm skills will probably just be solving lots of Leetcode problems, which has the extra benefit of letting you practice different languages from problem to problem. Just doing a ton of Leetcode problems seems like a great way of getting back up to speed.
There are also certain subdomains I want to really immerse myself in — things I took a class on in school and enjoyed, but never really followed up because doing stuff your interested in is hard when you’re taking a ton of classes at once and trying to do well in each of them.
One of those topics that was super interesting was functional programming, and not just basic lambda expressions and functions taking other functions as arguments obviously. I enjoyed my functional programming class a lot, and learning Haskell and Lisp was a lot of fun, but frankly there just was not enough time in the class for me to absorb the material and so some concepts didn’t full land with me until it was done. Even more annoying was the fact that we dabbled a bit in parsing and interpreters at the end of the course, which was brief, but very interesting. Diving back in seems like a super interesting idea and an opportunity to really truly deepen my understanding — which excites me.
Operating systems was another class that was super interesting and exciting, but where I just didn’t have enough time to get into enough depth. I really feel like classes like that were called things like “Operating Systems”, but were really just very brief intros to the subject. My hope is to try a few different Linux distros on that computer I mentioned building above.
I also would love to learn a “trendy” new language, since much of my degree was spent in the trenches in Javascript, Python, and Java. Golang has long interested me, but I think Rust might be the language I decide to spend my time trying to learn (I remember being introduced to it when it had just been released many years ago during a visit to Mozilla Toronto).
Proofs
As I highlighted in my New Year’s goals post, I do plan on getting back into writing proofs (that is of the mathematical variety), which I explored a fair bit in university, and which I found incredibly interesting. The issue I think with proofs is they sometimes require a lot more time to understand than you can or are willing to devote to them, and so sinking lots of time into understanding and expanding my knowledge of the topic excites me. I saved (wisely I’m realizing) a lot of the content from my university courses and that will give me some stuff to look at. I’m also thinking about getting “How to Prove It” and going through that. I also want to learn how to prove the basics of Calculus, which my (less advanced) first year Calculus course in university (it really was basically just a repeat of high school Calculus) didn’t cover.
Why like this?
You are probably wondering — why the decision to “get back into” a topic with this torturous barrage of different topics? For me, doing a lot at once makes it fun, but I also find that when I start looking at one part of a topic like this my brain starts thawing the related elements and so just trying to touch all of them in quick succession will (I imagine) help speed things along. It’s a lot like getting back on a bike.
As I mentioned before, it also takes some time for some of these topics to sink in and for my mind to fully grasp them, so having multiple topics I can “round-robin” through helps give me that time.
Truth be told, diving in headfirst is also a mechanism to try and overcome one of my big personal failing, which is that when I feel intellectually intimidated or don’t understand something sometimes I become avoidant and turn away from it. This year I want to do better.
I am often intimidated when I don’t understand something and become avoidant, that’s hard to admit — but this year I am diving in head first to tackle it!





Leave a Reply