Here is a curated list of content about Software Engineering that I found interesting (and useful) during the past couple of months. They are not necessarily blog posts, as I found a lot of wisdom concentrated in short tweets, but also in long videos or even sites. There is a bit of everything.
UK.GOV Service Manual. This is typically one of my go-to sites when I need inspiration about how to write up good documentation for developers. One of my worries is that writing detailed guidelines and manuals does not seem to pay off: they become outdated the minute you release them and require way too many maintenance to keep them updated. Instead, I tend to favor principles and standards that persist in time. Well, this is exactly what this site is all about. It is a sophisticated and smart amalgamation of micro-sites full of software engineering guiding principles, covering the full spectrum from thoughtful design to efficient delivery. An absolute gem that led Low Downe to capture its essence in the book Good Services: How to design services that work
Grady Booch's definition of Software Architecture. Concise and spot on, and a good reminder of the importance of this discipline
The Evolution of the Serverless-First Engineer. Related to the previous point, it is interesting to see how the co-evolution of practices also introduces co-evolution of practicioners (or roles). David Anderson's post talks about what are the attributions and skills that software engineers are developing in order to adopt a serverless-first mindset. Does this approach favour Neflix's Engineering Culture where nobody has the Software Architect role? It is interesting how they rely on personal judgement instead of top-down control
Gregor Hohpe's view on No-Code. I could not have said it better. Brilliant display of his thoughtful point of view
Buy vs. Build Revisited, Part 4: You might be asking the wrong question. Talking about Gregor, I found the fourth part of his Buy vs. Build series very interesting, introducing new dimensions on this traditional product management tradeoff
The Wrong Abstraction. This post is quite old, but it came to my mind again recently. Especially when you are building tools for developers (e.g. libraries, SDKs, APIs) you need to be careful with the abstractions you give them. As a rule of thumb, I tend to favor Harvested Frameworks instead of Foundation Frameworks
The (not so) hidden cost of sharing code between iOS and Android. Talking about wrong abstractions and their duplication is far cheaper than the wrong abstraction corollary, this post is just a hands-on reaffirmation of how problematic that can be. But what I love the most about this post is that its principle can be applied to the cloud. Once you finished reading the article, read it again but from the cloud-native vs. portability prism. Exactly. That's why Serverless is so important
Complexity-inducing Narratives. But hey, don't get too excited about Serverless. I hate technology absolutisms, and I understand that this paradigm is not a silver bullet. We have Basecamp's Jorge Manrubia here to remind us to be skeptical and look for all the tradeoffs, always. Also, don't miss his seminar about this topic he presented at the Universidad de Oviedo recently
A new era of DevOps, powered by machine learning. AWS CTO Werner Vogels talks about how ML will impact our DevOps build and deploy pipelines during the coming years. Beyond all marketing around AWS products displayed in the article, I found the code profiling concept very interesting, especially the part about knowing how much your code costs. You can call it FinOps (or many other fancy names) but this is exactly where the future of DevOps and SRE is going, co-evolving together with all the serverless-first software engineering principles
Material Design Text Fields Are Badly Designed. It has to be said, finally.
Hope all this content helps you as much as it did for me!
Top comments (0)