software The Rise of the Thinking Rocks Generative artificial intelligence is drastically changing the software engineering field. What are the strengths and weaknesses, and how can developers future-proof their careers?
rambling Moderately expensive, like a tourist, and with lots of luggage Finally ending the debate on the best way to travel.
informative An Ordered List of Software Quality Metrics Writing quality software is a very tangled and often self-conflicting effort. In this post, I describe a framework for thinking about how to prioritize competing goals.
career The Distracted Developer Learning how to work with your brain, instead of against it, will make everyone happier.
career The Lone Wolf Programmer, and Other Fairy Tales A career in software engineering is often glamorized on social media. Let's separate fact from fiction.
coding Javascript: To Infinity and Beyond! A journey to discover what a Javascript constant was leads me down a rabbit hole of documentation and specifications.
communication How to Quit with Grace Quitting a job can sometimes feel more stressful than it needs to be. Here's how to navigate a job change, while keeping your relationships intact.
tutorial Intro to Home Networking Setting up your own internet is daunting at first. Let's take a look at the bare minimum you'll need to know to get up and running.
rambling The Weird and Wild History of X11 Key Events A brief look into key events, how they're handled in X11 and the long history of their implementation and development.
programming From Java to C++ Converting from Java to C++ turned out to be easier than expected. Here are a few notable things that I learned along the way.
practices Modern Qt and Smart Pointers Let's untangle the mess of which smart pointer library to use in a modern Qt application.
3D Printing Ender 3 Pro with BLTouch and SKR Mini E3 These upgrades add a ton of new features and capabilities for a small price tag. Let's take a look at moving your Ender 3 from good to great!
programming lvalues and rvalues in C++ lvalues and rvalues in C++ can be difficult to understand for those new to the language. Let's take a closer look to understand what these are.
programming Smart Pointers in C++11 Memory management in C++ just got a big boost. Let's take a look at how to use unique_ptr and shared_ptr effectively.
tutorial Setting up Prism with Ghost Prism and Ghost go together smoothly, and it's a low effort way to give your technical blogs some extra polish.
programming On Pair Programming After two years, here's my thoughts on the pros, cons and general considerations for pair programming.
interview Interview Reflections Some reflections on the road to receiving offers from Google and Amazon.
tutorial Setting Up NextCloud & OnlyOffice Let's take a look at how to get OnlyOffice, which offers in-browser document editing, setup and running with NextCloud.
rambling Effective Communication Learning to communicate in a way that is concise and respectful will go far to help foster relationships.