My “travel” journal of coding practice and exploration. This blog is about my experiences with software engineering, both the painful and the enjoyable.
The intention here is less “tutorial” than “conversing about a topic I love”. There are already many tutorials out there and frankly it makes me uncomfortable to position myself as an authority - I am constantly aware of how much there is to learn for any given topic.
Writing software is delightful madness, personal obsession and an endless source of both frustration and joy. It is my hope that my writing here will both create a vehicle for deeper understanding for myself as well as spark conversation and connection with anyone who lands here and reads. Feel free to drop me a line at firstname.lastname@example.org.
By default, the order of elements will be in
natural order - 5 is greater than 2, -4 is greater than -10, b is greater than a, etc.
React Router Auth and Typescript and Hooks
I recently transitioned a small app I built for my son to Typescript, to get some more practical “sandbox-y” experience with the language structures. The app is a tiny budgeting tool for kids (that mostly helps him see how much money he’s spent on Fortnite) and it only has a handful of views. It’s a React front end and a Firebase backend.
Dijkstra’s Two-Stack Algorithm
Dijkstra was pretty good at his job, as evidenced by the fact that his name is on a bunch of useful algorithms. This is one that was put in front of me as I was trying to solve Advent of Code, Day 18 2020. I’d never heard of it so thought I’d look in more detail.
GROUP BY functionality in SQL, or
If you are anything like me, you heard the phrase “unit testing” thrown around a lot before it meant anything real. And terms such as “unit testing”, “integration testing” and “functional testing” had little distinction. They all fell into the category of “should be doing but not on THIS project”. Most of my software experience at that point comprised of tight deadlines, unfamiliar technologies, poorly defined specifications or tight budgets that didn’t account for anything as fancy as “testing”.
Mise En Place
The benefits of mental clarity and organization on the quality of code can hardly be overstated. From the tools used to code to the mental processes employed to break a problem down, physical space and time, a clear idea of purpose and destination, it all factors into both the quality of the experience and the resulting code. Because coding itself can be so intellectually challenging, the lack of focus can be so disastrous as to make solving a problem impossible.
The beginning of a project for me, particularly a greenfield project where no legacy code exists, is both exciting and terrifying. The sense of potential and possibility is almost intoxicating. And, for those of us with control issues and aspirations of perfection, a blank page also represents code with no errors in it yet.