The Art of Unblocking Yourself
July 01, 2025 | 4 minutes reading time
Unblocking yourself is a critical skill as a software engineer. But unblocking yourself doesn't mean you power through or suffer in silence without help.
Improve Your Writing with Three Simple Words
June 17, 2025 | 3 minutes reading time
When writing technical documents, having specific words to indicate requirements is just as important as the requirements themselves. Enter RFC 2119
Building Advanced Software
June 01, 2025 | 3 minutes reading time
Let's focus on building advanced systems rather than complex ones
How to Respond When Your Project is Late
April 28, 2025 | 4 minutes reading time
A practical guide for handling the inevitable situation of being on (or leading) a late project.
Avoid Making Enemies During Code Reviews
April 15, 2025 | 4 minutes reading time
Conflict isn't bad but enemies certainly are.
Use Timeboxing to Stay Productive
April 02, 2025 | 5 minutes reading time
Productivity isn't just about getting as much done in a day as you can (aka, efficiency), it's about having the right judgement about what to work, why, and how much effort it might require.
The Books I Read This Year (2024)
April 01, 2025 | 2 minutes reading time
A summary of the books I read in 2024 while the world was still in chaos.
Speed Through Competence
March 01, 2025 | 5 minutes reading time
Being a fast software engineer doesn't mean you're sacrificing quality (if you know what you are doing).
What's the Point to Feature Flags?
February 16, 2025 | 6 minutes reading time
Why feature flags can help improve your velocity, reduce your risk, and help you build better software
Reusability Happens Over Time
February 02, 2025 | 7 minutes reading time
Reusability is more about discovery and direction rather than upfront design.
The Value of Prep Work
January 19, 2025 | 5 minutes reading time
What a home improvement project taught me about how effective teams work.
Thinking in Constraints
January 05, 2025 | 6 minutes reading time
How to apply constraints to problem spaces to solve them more effectively.
Patience in Software Engineering
December 10, 2024 | 4 minutes reading time
Why being willing to wait and avoiding hasty decisions leads to better software.
Addressing Code Review Anxiety is a Team Effort
October 27, 2024 | 6 minutes reading time
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 | 4 minutes reading time
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.
Inspection, Iteration, and Observability: Three Components for Building Excellent Systems
September 29, 2024 | 5 minutes reading time
No software challenge is unsolvable with these three behaviors
Layers of Innovation
September 15, 2024 | 6 minutes reading time
Being innovative isn't about being "really" smart but rather really perceptive
Harnessing the Power of Developer Moments
September 01, 2024 | 3 minutes reading time
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 | 3 minutes reading time
We have to extend a blameless culture not just to others, but toward ourselves.
Vertically Scaling Your Team
August 05, 2024 | 4 minutes reading time
Horizontal scaling isn't the only way to help your team accomplish more.
One Key to Growth: Seeking Out Discomfort
July 21, 2024 | 6 minutes reading time
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 | 4 minutes reading time
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 | 4 minutes reading time
Bad process is everywhere. The best way to improve it is being focusing on your culture.
Career Growth Switchbacks
May 28, 2024 | 5 minutes reading time
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 | 7 minutes reading time
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 | 6 minutes reading time
There are many guides, but no path
My New Favorite Pattern for Writing Simple Code
March 03, 2024 | 5 minutes reading time
A new take on an old pattern.
Picking the Right Tools
February 24, 2024 | 5 minutes reading time
What I've learned about picking the right tools in software from watching Alone
What Kind of Car Are You Driving?
February 10, 2024 | 5 minutes reading time
The car you drive affects the route you take. The same thing happens in software.
Why I Wrote a Book
January 30, 2024 | 5 minutes reading time
My answer to the question "Why did you write a book?"
Five Barriers Preventing a Great Developer Experience
January 16, 2024 | 5 minutes reading time
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 | 4 minutes reading time
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 | 9 minutes reading time
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 | 8 minutes reading time
Measuring software quality is complex. SLOs are here to help.
Collaboration and Cooperation on Software Teams
November 19, 2023 | 7 minutes reading time
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 | 5 minutes reading time
A better way to gain buy-in and effect change.
Micro-habits of Great Engineers
October 09, 2023 | 6 minutes reading time
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 | 4 minutes reading time
Instead of starting things, let's focus on finishing them.
Maximizing Your Observability
September 12, 2023 | 5 minutes reading time
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 | 4 minutes reading time
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 | 6 minutes reading time
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?
Tuckman, Teams, and Bruce Lee
April 23, 2023 | 7 minutes reading time
Be like water.
Know Your Audience
April 11, 2023 | 5 minutes reading time
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 | 7 minutes reading time
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 | 5 minutes reading time
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 | 6 minutes reading time
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 | 8 minutes reading time
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 | 5 minutes reading time
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 | 6 minutes reading time
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 | 5 minutes reading time
A summary of the books I've read after changing jobs.
The Problem With Feedback - It's Hard to Listen To
December 05, 2022 | 5 minutes reading time
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 | 4 minutes reading time
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 | 5 minutes reading time
Some of my favorite talks and resources from All Things Open 2022.
What's the Point to Observability Anyway
October 17, 2022 | 5 minutes reading time
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 | 5 minutes reading time
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 | 5 minutes reading time
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 | 5 minutes reading time
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 | 8 minutes reading time
Paying down debt via small wins can create a huge impact.
Some Thoughts on Thought Leadership
March 14, 2022 | 5 minutes reading time
Let's listen in, but still think critically.
The Importance of Vision as a Developer
February 17, 2022 | 5 minutes reading time
How to set a direction and build motivation as a software leader.
How to Get Software Documentation Right
January 17, 2022 | 4 minutes reading time
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 | 5 minutes reading time
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 | 5 minutes reading time
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 | 6 minutes reading time
Containers are becoming more and more popular. Here is my take on why and if your team should to jump on the bandwagon.
What's the Point of the Software Development Lifecycle Anyway?
October 12, 2021 | 5 minutes reading time
The importance of a guide for how you build software.
My Obsession with Simple Code
September 03, 2021 | 3 minutes reading time
Why I write the simplest code I can everytime.
Let's Talk About Trust
August 10, 2021 | 4 minutes reading time
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 | 4 minutes reading time
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 | 4 minutes reading time
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 | 5 minutes reading time
There is more to code reviewing the writing comments on the internet.
Version, Releases, and Deployments! Oh My!
May 15, 2021 | 6 minutes reading time
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 | 4 minutes reading time
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 | 5 minutes reading time
Gardens won't grow if neglected, and neither will your software.
Reflections on Two(ish) Years of Blogging
March 30, 2021 | 7 minutes reading time
Some thoughts about blogging, learning in public, and sharing what I've learned along the way.
Re-learning Ansible From Scratch
March 25, 2021 | 5 minutes reading time
Why I stopped, why I'm starting again, and what I'm learning.
Our Over Obsession With Patterns
February 27, 2021 | 4 minutes reading time
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 | 5 minutes reading time
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 | 7 minutes reading time
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 | 2 minutes reading time
A summary of the books I've read during the year when we all watched Netflix.
Surviving Your First Code Review
December 12, 2020 | 4 minutes reading time
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 | 5 minutes reading time
Feedback is hard. Here are some tips to help you give feedback well.
What's the Point of Pull Requests Anyway?
August 28, 2020 | 4 minutes reading time
Why pull requests are one of the best tools in modern software.
When Should You Refactor Your Code?
July 30, 2020 | 3 minutes reading time
The simple answer: it's probably right now.
I'll Admit It. I'm a Jealous Developer
July 15, 2020 | 3 minutes reading time
But I want to move towards a place of inspiration
Enforcing a Changelog with GitHub Actions
July 15, 2020 | 2 minutes reading time
How to keep your team's changelog up to date.
On Sustainable Software Development
July 11, 2020 | 4 minutes reading time
“Hero” programming only lasts so long.
Don’t Focus on Coding Mastery — Focus on Getting Better Each Day
June 25, 2020 | 4 minutes reading time
Why only focusing on the end game will disappoint you.
How to Introduce Kaizen to Your Team
June 06, 2020 | 4 minutes reading time
Convincing your team to embrace continuous improvement.
Using Gatsby to Build a Blog
May 18, 2020 | 3 minutes reading time
Using an SSG as a Backend Engineer
What's the Point of CI Anyway?
May 05, 2020 | 6 minutes reading time
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 | 4 minutes reading time
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 | 1 minutes reading time
My annual list of books I read in the previous year.
Stop Predicting the Future of Your Code
November 01, 2019 | 4 minutes reading time
Why our instinct to build for the future is often wrong. Very wrong.
My Biggest Mistakes as a Junior Developer
October 19, 2019 | 5 minutes reading time
The biggest mistakes I made before becoming a senior engineer.
My Top Four Patterns for Writing Simple Code
October 19, 2019 | 4 minutes reading time
Writing simple code is hard. Here are some patterns to help!
Why Simple Code is Better Than Reusable Code
October 05, 2019 | 3 minutes reading time
Simple is always the priority.
The Best Ways to Crush It as a New Team Member
July 05, 2019 | 4 minutes reading time
How to join a team as an engineer
On Building Abstractions Too Soon
August 14, 2018 | 4 minutes reading time
Why abstractions are emergent instead of dictated
What's the Point to Code Reviews Anyway?
February 19, 2018 | 2 minutes reading time
Hint: it's not aboutt bugs.
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.