You and me have something in common: We both read blog posts about software engineering.
In my opinion, they are a great source of information and play an important role for the open-source ecosystem. Many projects almost depend on third-party blog posts to provide additional documentation and tutorials.
Starting with today, I will regularly present blog posts, articles and other online resources that I think are worth a read. My selection criteria will be somewhat arbitrary. In general, I will try to share content that I think contains valuable information for a large spectrum of software engineering professionals. Additionally, I will provide short summaries for all the articles I post.
Note from the future: I did not publish regular reading lists like I planned. When I started my side-project KeyCombiner, other topic ideas became more interesting for me. Sorry! Please let me know if you know another blogger that does this regularly.
So, without further ado, here are posts and other resources from the last two months that I found particularly interesting:
How I Built A $7K/Month WordPress Plugin Because I Needed The Product
Type: Starter Story Blog Post
Author: Laura Elizabeth
Date: August 30, 2019
I guess almost every software engineer has thought at some point about developing an app or other kind of small project that could ideally generate a consistent revenue stream, maybe in parallel to a regular employment.
In this article Laura Elizabeth describes with impressive clarity how she managed to do just that. After reading it, you will have a very good idea about how she started her business with Client Portal, a tool that can help enterprises work on projects together with their customers.
The boring technology behind a one-person Internet company
Type: Medium Blog Post
Author: Wenbin Fang
Date: January 24, 2018
Similar to the previous post, this article talks about building a one-person company. However, the difference is that this one focuses on the technical implementation and gives tips how large software products can be built with very few engineers. The author of the article is Wenbin Fang, the founder of Listen Notes.
Fang fits a lot of information into a relatively short article, while managing to keep it very easy to follow.
Google Engineering Practices Documentation
Type: Static GitHub Pages Site
Date: September 05, 2019
In September, Google has published resources on their internal engineering practices. Currently, it is mainly focused on the code reviewing process from both the reviewer’s perspective and from the perspective of the code author. Much of the stuff in there is rather straightforward, but it is very nice to have all of this documented in a condensed fashion.
If your company struggles with code reviewing, this might be the resource to find ideas for improving your process.
Software Architecture Guide
Martin Fowler has published a guide to material on his blog about popular topics related to Software Architecture, such as Micro Frontends, Serverless, and Enterprise Architecture.
His introduction resonates a lot with me:
Like many in the software world, I’ve long been wary of the term “architecture” as it often suggests a separation from programming and an unhealthy dose of pomposity. But I resolve my concern by emphasizing that good architecture is something that supports its own evolution, and is deeply intertwined with programming.
I too have some issues with identifying as a Software Architect even though it is written on my company business cards. I believe a good software engineer is both an architect and a developer.
In my opinion, the resources collected in Fowler’s Guide are of very high quality and can serve as excellent references for the respective concepts.
Software Architecture is Overrated, Clear and Simple Design is Underrated
Type: Personal Website
Author: Gergely Orosz
Date: September 17, 2019
Gergely Orosz might not appreciate the lengthy abstract articles from the resource above. In his post, he argues that formal architecture practices are overrated and engineers should instead focus on simple designs.
I do agree with Orosz that teams should be careful not to get sidetracked while designing an overly complicated architecture. Of course, the idea is not to skip design steps, but to create a more friction-less process. I recommend the article especially to engineers working in large enterprises, where architecture documents often have to traverse several hierarchy levels before decisions are made.
Why our team cancelled our move to microservices
Type: Medium Blog Post
Author: Steven Lemon
Date: August 09, 2019
Chances are you already know this one. It caused a lot of discussion, especially on Reddit.
The post is about the efforts of an engineering team to break up a software monolith into microservices. As you can guess from the title, the endeavour turned out to be more difficult than expected and was ultimately cancelled. Even though many of the identified issues seem rather obvious, I think this post is an excellent read for everyone preparing to break up monoliths. You might want to take a step back and think about whether your organization is really in a position to benefit from various independent service applications.
I hope you found something that is of interest to you. If you would like to point out other recent articles, you are very welcome to share them in the comments below or privately via email.