Writing Good Commit Messages without the Ceremony

Introduction Writing good commit messages may not be totally essential to the software development process but it is essential to one’s own sanity. “Self-documenting” code only explains the what, not the why. Even then, what should go into a commit message? Commits in Git git imposes a small amount of rules about a commit message. A commit message must include a “title”. Commit messages can include bodies, but the bodies are optional. ...

2022-08-23 · 14 min · 2876 words · Logan Barnett

Acing Interviews for Software Engineering Positions

Introduction I’ve seen a lot of clamor over trying to “ace” interviews for software engineering positions. While interviews can definitely go well and poorly, there generally isn’t a prescribed “right way” to do something. In this article, we’ll cover how interviews are put together, and what they target. We’ll identify objectively “bad” interviews, and we’ll describe how good interviews work. Who Puts Together Interviews Interviews are generally put together by a team lead. Higher-ups want to give teams the agency for teams to do the filtering they want, so they stay out of that process. I’ve seen some interview processes where higher-ups get involved in a “meet and greet” fashion, so in a sense they retain some kind of veto power. “Boss is an institution of mistrust”. It makes them feel better. Let them have it. ...

2022-08-16 · 22 min · 4534 words · Logan Barnett

How to Avoid Edge Cases and Crushing Tech Debt

Introduction When writing any kind of real world applications, “edge cases” arise - wrinkles placed into your beautiful applications which start off as simple if statements and later lead to great sources of confusion and kind of a dumping ground for all of the organization’s wacky needs. This later takes on the form of crushing technical debt and you’re wondering how your pristine application got here, and how you might avoid it on your next one. Fortunately it is avoidable through a simple technique called data modeling. ...

2022-05-21 · 14 min · 2915 words · Logan Barnett

Function Composition

Function Composition Function composition is the act of treating functions like small lego bricks that you tie together. Composing simple, well known functions to achieve complex behavior is like having and advanced vocabulary used to discuss a complex topic. If you want to try some of this out, I recommend Ramda’s REPL for experimenting with different JavaScript features such as this. Bespoke: Average Here’s some code for writing an average function. It computes an average value from a list of numbers. For reference, an average is all of the numbers added together and divided by the number of values. ...

2022-05-11 · 7 min · 1342 words · Logan Barnett

Control Flow Simplified Part 1

Introduction This is still a draft. I intend to show off a few different languages and have it viewable via a spiffy dropdown or something. I have not yet had the chance to test all of the code. This is a series on simplifying control flow in software engineering. It’s a very tactical-level view, and it uses some functional programming techniques to illustrate this. Control flow is simply the flow of execution within a program in respect to its source code. These are generally statements like if, else, switch return, and even throw. ...

2022-02-22 · 6 min · 1272 words · Logan Barnett

Consider Not Doing That Rewrite

1 Introduction I’ve always heard the software engineering industry is a rapidly changing industry. One of the things that contributes to it (and not the other way around) is the frequency at which we abandon a pile of work and just start anew. I have not had good experience with this, and this post will go into why. At a very high level, here’s there’s one really big point I want to drive home: Rewrites won’t unburden a project from technical debt. ...

2021-12-08 · 15 min · 3084 words · Logan Barnett

Logan Barnett's Résumé

layout: default title: Résumé date: 2020-01-13 categories: software-engineering Contact Email: logustus@gmail.com Mobile: 602.264.3584 Blog: https://loganbarnett.github.io/blog/ Github: https://github.com/loganbarnett This document was generated from: https://github.com/LoganBarnett/blog/blob/gh-pages/resume.org Summary I’ve been a professional software engineer for 22 years. I’ve worked on video games, embedded devices, web applications, desktop applications, and managed server infrastructure. I prefer a sustainable approach to software development and maintenance alike. I enjoy providing guidance and tackling difficult problems. I feel good and functional documentation is the road to well maintained and understood software. ...

2021-09-06 · 8 min · 1661 words · Logan Barnett

XML Namespaces

XML Namespaces The Skinny Depth Namespaces Prefixes Default Namespaces Querying an XML Document with Namespaces XML Namespaces This post covers the importance of namespaces in XML. Anyone doing XML transformations or data aggregation from these documents needs to be aware of them. This document assumes familiarity with XML to at least a minor degree. I am not claiming this document is complete but it should hopefully serve as a quick primer for anyone wanting to wrap their heads around XML namespaces. ...

2021-08-23 · 3 min · 617 words · Logan Barnett

Why I Won't Use Windows

Disclaimers, Audience, etc Objectiveness Articulation has Value You do You Actually Using Windows A History with Microsoft Technical Considerations The Model of Unix Hostility towards Software Development Career Considerations How Others View Your Career How You Treat Your Own Career The Positive Encouragement Away Wrapping Up I won’t willingly use Windows - not for development work, or any real work if I can help it. I won’t work at a workplace that requires its software engineers to use Windows. I actively recommend that people don’t work at workplaces that require their software engineers use Windows. I will explain why. ...

2021-04-14 · 15 min · 3030 words · Logan Barnett

Perfectionism in Software Engineering

Why should you read this? I’m a software engineer by trade. I write software, scripts, and do loads of automation. I like using technology to solve problems, and I have a low tolerance for pain. At time of writing I’ve been doing software engineering for 17 years now. That’s 17 years of making mistakes, and making an honest attempt at learning from those mistakes. I like to think that’s given me some perspective, and part of that perspective is that I can easily be wrong, or not quite right, or maybe I learned a lesson from some painful experience but it was the wrong one. I don’t have all the answers - really this is just me processing some of my own difficulties, and publishing the thought process in a somewhat structured form. ...

2021-02-24 · 9 min · 1803 words · Logan Barnett