Software Engineering - Architecture and Microservices Books

This book collection deals with all things architecture, from design to implementation, with a focus on microservices.

Microservices, what a topic! Everybody seems to be developing microservices, but if you ask a hundred people to describe their approach you will most likely get as many deviating answers. The reasons are many, but it all boils down to proper education.

Blog posts and YouTube videos can be valuable sources of information, but I’ve found the signal-to-noise ratio to be quite low so I don’t spend much of my time there. On the other hand, I’ve realized that peer-reviewed work that has gone through a publishing process has a much better chance of offering a high return on investment.

Having survived a few years of designing, developing, shipping and operating numerous cloud-native microservices at scale makes me truly appreciate the books that have helped me stepping up my engineering game. I’m confident that this collection will help you get your architecture skills to the next level.

View full book descriptions

Back to top

Software Engineering - Software Development Books

In this collection you can find some legendary books that have left their mark on the industry, plus many more that can help you strengthen different angles of your career as a programmer.

Towards the end you will notice a few books about functional programming with .NET and F#, a niche that I have been working with for a few years now. At first I felt like a fish out of water, but once I got the hang of it I was able to build really cool software and improve my overall skills in software development.

View full book descriptions

Back to top

Software Engineering - Career Building, Professionalism and Inspiration Books

Technical knowledge alone won’t get you very far. To get anything meaningful done, you will need to work with lots of people from many different backgrounds, each having their own agenda and incentives, sometimes not even knowing (or caring) about how software development works.

Also no career comes without its ups and downs. Every now and then you might find yourself demotivated, or lacking inspiration to get creative work done. As a professional, it is your responsibility to ensure that you work output is of high quality, reliable and effective while coordinating with everyone else, no matter if you feel like it or not.

And since software development is a team sport, inspiring and influencing others is key to becoming a force multiplier and making an impact, therefore good communication and other soft skills are imperative to your growth.

In this collection you will find the books that forged me from a laborer into a professional.

Laborers are hired to take direction. Professionals are hired to ensure that the direction chosen makes sense. – Robert C. Martin

View full book descriptions

Back to top

Governance, Product Management and Technical Project Management Books

Software is everywhere; in your phone, microwave, car and airplane. Everywhere.

If your business depends on software and you have any kind of authority, you are responsible for treating software engineering with respect and making sure that you understand what it takes to utilize it efficiently and reliably. Human lives may depend on it.

We are turning the U.S. Air Force into a software company that happens to deliver airpower.

– Adam Furtado, Chief Product Officer at Kessel Run / U.S. Air Force, UXDX 2018

If the world’s largest bureaucracy can undergo such a significant digital transformation, then so can your business.

If every CTO, VP, director, product stakeholder, manager and engineer were to read even a subset of books in this list, our industry would be in a much better shape, whether you realize that your organization is a technology one, or still kid yourself that is not.

View full book descriptions

Back to top

Thoughts on books

Not all books have the same lifespan

Some people believe that since technology advances so rapidly, books become obsolete the moment they hit the shelves. Although that’s true in some occasions, it ignores an important distinction between different book types.

Knowledge is divided into two categories, information and fundamentals. The former includes specific knowledge that helps people deal with certain problems and usually has a short lifespan, whereas the latter includes broadly applicable knowledge which isn’t constrained to a specific implementation and can be relevant for years.

Especially books around people and behavior can be relevant for a lifetime, as technology changes but people don’t.

Having a solid skill set based on fundamentals can help us learn new technologies on demand, rapidly adapt to new requirements and ultimately live a more fulfilled professional life. Skills based on information have to be built on top of fundamentals.

Note: I have included a few exceptional books that live in the cross section between information and fundamentals. I make an effort to keep those in my lists only as long as they remain relevant.

Don’t judge a book by its cover programming language

It is common for books that target fundamental knowledge to utilize specific programming languages to illustrate their examples. Some people get discouraged and reject the book if they haven’t worked with that language before, or have no intention of using it in the future.

Fundamental knowledge is widely applicable. Learning a concept or technique in one technology stack and transferring the implementation to another should be business as usual. Smart engineers have no such limits.

Success is a process, not a moment

Investing in your craft takes a lot of time and effort. Reading one book won’t bring you success overnight, but creating a habit of reading books regularly - along with plenty of practice - will definitely transform you to a better engineer and stronger professional.

Got any book suggestions of your own? Don’t hesitate to drop a line in the comments below!