Books for Software Engineers
A list of 11 essential books I found useful when planning solutions and software architecture, and when working with code. Books which help you to build more sustainable for the long term, and books which are more practical when it comes to game-dev and real-time rendering.
Production Pipeline Fundamentals for Game and Film - Renee Dunlop et al.
Probably the only book of its kind which has both sufficient depth and takes a generalized approach when covering game/film pipelines. Despite being a bit older, most of it still holds true. It shows the dependencies and stages of pipelines, how they can be scaled, where bottlenecks may occur, and much more. It's really the grand tour of authoring digital content and managing it throughout production.

Code Complete 2 - Steve McConnell
The seminal text on good coding practices and code quality. From testing, naming, commenting, reviewing, structuring your code, there's a plethora of topics to improve your own and your team's coding practices. A classic! (your studio probably already has a copy somewhere)

The Software Engineer's Guidebook - Gergely Orosz
The grand tour of all the aspects of software engineering which are not directly tech. This advice in this book heavily draws from how the software engineering discipline works at the big players (Google, Amazon, Meta, etc.), but its wisdom is also very applicable outside the world of 'really big tech'. Gergely also runs a newsletter which is worth subscribing to!

Tidy First: A Personal Exercise in Empirical Software Design - Kent Beck
By the author who made Test Driven Development (TDD) popular comes a book at deals with the age old dilemma of how much up-front planning, and how much refactoring are right for your software project. Even if you're not a developer, the chapter on 'Software Economics' and how to allocate your budget and resources for an uncertain future is pure gold!

Game Engine Architecture - Jason Gregory
Gregory walks us through the components and technology of a AAA game engine. This book is huge, but at the end, you'll still feel there's so much more to explore. Also, you will find many of the presented concepts and approaches mirrored in smaller engines, if you ever dive into their architecture and inner workings.

Real-Time Rendering - Thomas Akenine-Möller et al.
This book covers almost everything required to draw pixels onto the screen when rendering in real-time 3D. There's not a lot of code, but a lot of math. However, even when skipping the math parts, this book is an absolute treasure in explaining what happens behind the scenes in your computer to get stuff on the screen.

Physically Based Rendering - Matt Pharr et al.
A quite math heavy book, but the logical extension to Möller et al.'s Real-Time Rendering. Focuses exclusively on PBR rendering. If you need a technical deep-dive on PBR, this is it.

Real-Time Shadows - Elmar Eisemann et al.
Another follow-up book to Möller et al.'s Real-Time Rendering. This time, we dive deeper into real-time shadows. While technology has advanced since release, it offers a very comprehensive overview of shadow techniques, which makes for a great foundation on the topic.

Patterns of Enterprise Application Architecture
Covers fundamental patterns for common problems when designing business programs. The patterns presented are typically a level higher than the ones presented in the classic Gang of four Design Patterns book. Makes for good reading when designing asset pipeline or other software that's not using full on 3D.

Algorithms - Robert Sedgewick & Kevin Wayne
Everyone should have a good book on algorithms in their library - this is mine. I like that the language isn't overly academic. There are illustrations and code examples. which make the book accessible.

Praxisbuch Usability und UX (German) - Jens Jacobsen & Lorena Meyer
I wish this book were available in English, because I'd love to recommend it to everyone who leads software projects and wants to include a structured approach towards UX. The advice covers process, implementation and working in an Agile manner. I feel it kinda straddles the management side, but on the other hand, every software engineer should have an idea how to work with interfaces and user interactions.
