The Software Lounge

Latest posts on the blog

How to Conduct Live Coding Interviews

There’s no way around it: live coding is stressful! If you just ask your problem like a robot, you will fail to create an environment in which you can evaluate candidates fairly. In this guide, you’ll learn how to make an interview less stressful and ripe with opportunities for a candidate to shine.

How to "Peel the Onion" in Behavioral Interviews

here are layers to every question – and every answer! I’m not sure why an onion was chosen for this analogy, but "peeling the onion" is a must-know technique as an interviewer. Active listening and digging deep are the critical components of this method and you’ll need to use both to be effective.

Crunch Data with furnace-sql

Crunching data from my local files, with SQL, is a task that I come across ever so often. I was never happy with the CLI tools out there and I’m not interested in signing up for some cloud product. So, when I got started with bun a few months ago I immediately saw a way to make use of bun:sqlite !

How to Use Obsidian for Work

In this article, I’ll walk you through how I use Obsidian at my day-to-day job as a software development manager. I’ll explain the benefits behind each element of my process so you can see if and how it fits into your workflow.

TypeScript Enums: The Complete How to Guide

TypeScript Enums are simple, yet powerful feature that can enhance code readability and simplify refactoring. But, there’s some situations where I think you’re better of with a Record…

A Guide to The TypeScript Record Type

It sometimes feels like TypeScript has multiple ways to do the same thing. So, I don’t blame you if you’re not sure about all the pros and cons of using TypeScript’s Record type. It’s a powerful utility, but it has some nuances and potential pitfalls that dev teams can run into.

Getting Started With Bun

Bun is a new JavaScript runtime that is redefining the developer experience and setting some pretty high standards when it comes to performance. As of Feb-24, I’ve not yet had the opportunity to deploy a "serious" project with it, but everything I’ve seen so far is really exciting!

Throwaway Functional Prototypes are a Waste of Time

Picture this, your company wants to wow a new customer by presenting them with a prototype (or MVP?) of their next product. The business goal isn’t necessarily to ship – the app will likely not see real users, yet – but rather to build trust with the customer.

Awesome HTTP Semantics You Should Know

Software engineers love to debate semantics in their code. A discussion on what would be the best name for a function can easily lead to dozens of comments in a code review. But for some odd reason, many engineers are not as passionate about HTTP semantics. Let’s change that!

Security Theater: How to Choose Your Battles

When you do things that only create an illusion of security, without actually improving it in any way, you are participating in security theater. This can lead to a counter-effect that actually decreases your security in the worst case or just lead to a big waste of time in the best case.

The Beginner’s Guide to Property-based Testing

Property-based testing is a type of software testing that allows us to test systems by defining properties (or invariants) that should hold true for a range of inputs. I imagine that reading the word "invariant" makes you shiver. Are we back in class? Will there be math in this article? Fear not!

The Most Common Unit Testing Mistakes

A look at some (potentially) controversial ideas on how to get more value out of your tests. (And how to avoid wasting time and money on useless unit tests.)

About this blog

The Software Lounge is a blog about software development and tech leadership. I like to think of it as non-nonsense repository of evergreen ideas and deep-dives that will help other software engineers and managers. I’m preparing an in-depth guide to transition from an individual contributor to a software development manager. If that sounds interesting to you, then follow me on Twitter or add the blog’s RSS feed to your reader!