Patience in Software Engineering

December 10, 2024
Why being willing to wait and avoiding hasty decisions leads to better software.

Addressing Code Review Anxiety is a Team Effort

October 27, 2024
Code review anxiety is real; we all have a part to play in addressing and minimizing it on our teams

What is Clairvoyance in Code Reviews?

October 13, 2024
Learning how to predict if a code change is going to be good or bad down the road oddly doesn't require a lot of prediction about the future.

Layers of Innovation

September 15, 2024
Being innovative isn't about being "really" smart but rather really perceptive

Harnessing the Power of Developer Moments

September 01, 2024
How celebrating the moments that already happen while writing software can lead to a better and more engaged team.

Blameless Toward Ourselves

August 19, 2024
We have to extend a blameless culture not just to others, but toward ourselves.

Vertically Scaling Your Team

August 05, 2024
Horizontal scaling isn't the only way to help your team accomplish more.

One Key to Growth: Seeking Out Discomfort

July 21, 2024
The classic idea of growth coming at a time of discomfort is tried and true. But I think we can be our own catalyst for growth by actively seeking out that discomfort

Consistency is Not the Goal

July 07, 2024
Putting too much stake into "one way to do things" can sometimes lead to the lack of critical thinking and inability to take necessary risks.

Culture Before Process

June 27, 2024
Bad process is everywhere. The best way to improve it is being focusing on your culture.

Career Growth Switchbacks

May 28, 2024
Navigating your career progression is tricky. Viewing your path as a series of skill development switchbacks can help bring some clarity

The Five Types of Code Reviewers (and How to Work With Them)

April 30, 2024
Learn how to work with the most common types of code reviewers on your team to maximize your ability to ship code.

Too Many Guides

April 14, 2024
There are many guides, but no path

Picking the Right Tools

February 24, 2024
What I've learned about picking the right tools in software from watching Alone

What Kind of Car Are You Driving?

February 10, 2024
The car you drive affects the route you take. The same thing happens in software.

Why I Wrote a Book

January 30, 2024
My answer to the question "Why did you write a book?"

Five Barriers Preventing a Great Developer Experience

January 16, 2024
Whether it's quality or communication, these are five barriers that is keeping your team from having a great developer experience with your codebase.

The Books I Read This Year (2023)

January 09, 2024
A summary of the books I've read amidst a year of both chaos and joy.

One Key to Better Software: Improving the Developer Experience

December 19, 2023
All the software design in the world doesn't matter if devs can't easily and safely contribute code.

What's the Point of SLOs?

December 02, 2023
Measuring software quality is complex. SLOs are here to help.

Collaboration and Cooperation on Software Teams

November 19, 2023
Not all teamwork is the same, but it can all be effective. Knowing which teamwork mode your team operates is vital to becoming a great teammate.

Show Don't Tell

November 07, 2023
A better way to gain buy-in and effect change.

Micro-habits of Great Engineers

October 09, 2023
Habits are a key part of building our identity and making it easy to do the right thing. These are some habits from great engineers that do just that.

Getting Stuff Done on a Software Team

September 24, 2023
Instead of starting things, let's focus on finishing them.

Maximizing Your Observability

September 12, 2023
Observability can do more than just tell us if our "stuff is working." It can also be used as a tool to help us understand what features to build or bugs to work on, or even expose tell us the next thing we need to start tracking in our metrics.

A Case For Being a Humble Engineer

August 14, 2023
In an industry that talks about "brag sheets" and highlights personal accomplishment, is there any room for humility? I think so.

What's the Point of Blameless Postmortems?

May 08, 2023
The way we respond to incidents says a lot about our culture. Are are we learning from our mistakes and accidents or creating a culture of fear?

Know Your Audience

April 11, 2023
If you want your ideas to spread, you must be able to convey them to others. And the key to that is knowing who you are talking to.

What's the Point to Retrospectives Anyway?

March 14, 2023
Teams need to set aside time to reflect and recalibrate where they are headed. They need to consider how to continually improve their code, process, and tools. Retrospectices are the meeting to do just that.

Accomplishing Through Others

February 28, 2023
Accomplishing goals through others is an important aspect when moving from a invidiviual contributor to a leader (as a manager, director, or Staff+ role, etc.) But how do you do so? Here are four ways I've been finding success in my own career.

Pair Reviewing

February 15, 2023
Pair programming is a fantastic tool to improve code and share knowledge. Pair reviewing can be just as beneficial and I think you should give it a try.

The Four Types of Code Reviews

January 31, 2023
Code reviewing has been going on long before the pull request model. Here are four methods worth knowing to help your team review code effectively.

Four Tips When Joining a New Team

January 17, 2023
Joining a team as a software engineer can be intimidating. There is a lot of pressure and alot of unknowns. Here are some tips to maximize your first few weeks for maximum long-term success.

Identity, Goals, and Systems: A Better Approach to 2023 Resolutions

January 03, 2023
During the season of goal settings at the begginning of the year, people often set goals with no real reasons why. Instead of setting goals, we need to focus on developing and deeper sense of identity.

The Books I Read This Year (2022)

December 20, 2022
A summary of the books I've read after changing jobs.

The Problem With Feedback - It's Hard to Listen To

December 05, 2022
Feedback is something we all deal with in the workplace. And we are told to embrace it to learn and grow. But let's be honest - it's hard to listen to.

Be Willing to Change Your Mind

November 19, 2022
Changing your mind isn't neccesarily bad thing. Nor is it a sign of weakness. It might even be a sign of strength.

All Things Open Recap 2022

November 03, 2022
Some of my favorite talks and resources from All Things Open 2022.

What's the Point to Observability Anyway

October 17, 2022
Observability is more than metrics and cool dashboards. It is a fundamental shift in how you write software.

Flow and Developer Productivity

August 10, 2022
Not all time and effort is created equal. Learn how to capitalize your time and effort as an engineer effectively.

Stay Close to the Code

July 18, 2022
As we grow in our careers, we can't get too far away from the code. At least, not too quickly.

Surviving Opinion Whiplash

May 27, 2022
Everyone has an opinion about how to do anything in the software industry. This is how you can survive the whiplash of running in one direction and then be told to run the opposite direction

The Technical Debt Snowball

April 14, 2022
Paying down debt via small wins can create a huge impact.

Some Thoughts on Thought Leadership

March 14, 2022
Let's listen in, but still think critically.

The Importance of Vision as a Developer

February 17, 2022
How to set a direction and build motivation as a software leader.

How to Get Software Documentation Right

January 17, 2022
What to write down, what to generate, and coming to terms that documentation is always out of date.

The Books I Read This Year (2021)

January 01, 2022
A summary of the books I've read while still stressing about COVID and return to work.

My Top Takeaways from Team Topologies

December 13, 2021
The most important things I learned from the popular book and how I'm trying to apply them.

What's the Point of Containers Anyway?

November 07, 2021
Containers are becoming more and more popular. Here is my take on why and if your team should to jump on the bandwagon.

My Obsession with Simple Code

September 03, 2021
Why I write the simplest code I can everytime.

Let's Talk About Trust

August 10, 2021
Trust is really important, but often illusive. How do we build it on our teams to help oursleves build great software?

Three Ways to Reduce Chaos on Your Team

July 29, 2021
Software development can be chaotic and full of frustrating situations. Here are some ways to reduce the unneccesary chaos.

Stop Trying to Outsmart Everything

June 30, 2021
Trying to outsmart everything means you likely aren't learning at all. Loopholes and tricks might give you a head start, but they won't sustain your race.

I'm Changing How I Review Code

June 10, 2021
There is more to code reviewing the writing comments on the internet.

Version, Releases, and Deployments! Oh My!

May 15, 2021
Software is full of overloaded terms. Let's clarify what we mean by a few of them.

One File Improved My Team's Communication

May 07, 2021
How maintaining one simple file in our repository improved how my team communicated about the software we built.

Writing Software Is Like Growing a Garden

April 20, 2021
Gardens won't grow if neglected, and neither will your software.

Reflections on Two(ish) Years of Blogging

March 30, 2021
Some thoughts about blogging, learning in public, and sharing what I've learned along the way.

Re-learning Ansible From Scratch

March 25, 2021
Why I stopped, why I'm starting again, and what I'm learning.

Our Over Obsession With Patterns

February 27, 2021
Why I think we use patterns too much as the solution to all problems rather than what they were designed for.

Why Getting My Master's Degree Was Worth It

February 11, 2021
Degrees are falling out of style in the development community. This is why I think mine is still valueable.

Why I Got My Masters Degree In Computer Science

January 23, 2021
In world where software development educations can happen completely online (and for free!) why would I got back to school?

The Books I Read This Year (2020)

January 02, 2021
A summary of the books I've read during the year when we all watched Netflix.

Surviving Your First Code Review

December 12, 2020
It can be difficult when you submit your first pull request and your first code review feedback is, well, overwhelming. How do you find the right way to address the feedback but also not just cater to every whim of your reviewer?

How to Give Feedback

November 24, 2020
Feedback is hard. Here are some tips to help you give feedback well.

What's the Point of Pull Requests Anyway?

August 28, 2020
Why pull requests are one of the best tools in modern software.

When Should You Refactor Your Code?

July 30, 2020
The simple answer: it's probably right now.

I'll Admit It. I'm a Jealous Developer

July 15, 2020
But I want to move towards a place of inspiration

Don’t Focus on Coding Mastery — Focus on Getting Better Each Day

June 25, 2020
Why only focusing on the end game will disappoint you.

How to Introduce Kaizen to Your Team

June 06, 2020
Convincing your team to embrace continuous improvement.

Using Gatsby to Build a Blog

May 18, 2020
Using an SSG as a Backend Engineer

What's the Point of CI Anyway?

May 05, 2020
Continuous integration (CI) is a powerful and neccesary tool to maximize your team's effort. This article explains what CI is and how to start leveraging it to it's full potential.

You Need a Code Review Checklist

January 10, 2020
Level-up your code review practice by using one of the best tools for ensuring quality: the humble checklist

The Books I Read This Year (2019)

January 03, 2020
My annual list of books I read in the previous year.

Stop Predicting the Future of Your Code

November 01, 2019
Why our instinct to build for the future is often wrong. Very wrong.

My Biggest Mistakes as a Junior Developer

October 19, 2019
The biggest mistakes I made before becoming a senior engineer.

My Top Four Patterns for Writing Simple Code

October 19, 2019
Writing simple code is hard. Here are some patterns to help!

On Building Abstractions Too Soon

August 14, 2018
Why abstractions are emergent instead of dictated

Dan Goslen is a software engineer, climber, and coffee drinker. He has spent 10 years writing software systems that range from monoliths to micro-services and everywhere in between. He's passionate about building great software teams that build great software. He currently works as a software engineer in Raleigh, NC where he lives with his wife and son.