Designing APIs With Swagger and OpenAPI

Do you read books in the field where you think you’re an expert or have years of experience?

I do it just to check if there’s something new in the topic or if I have some bad habits I need to fix.

I just finished this book: Designing APIs with Swagger and OpenAPI (no affiliate link https://tinyurl.com/yxn9r8uw). I think it’s one of the best books on the topic — I highly recommend it to anyone who wants a refresher or is a junior developer.

In fact, you’ll learn how to:

  • design APIs
  • document APIs using the OpenAPI standard
  • use query parameters
  • implement pagination
  • use JSON Schema
  • test your APIs

I think this book is a great complement to Principles of Web API Design: Delivering Value with APIs and Microservices.

Reading both gives you a well-rounded perspective.

Asynchronous Programming with C++

Do you have any technical books that bring back memories or emotions? I recently read this book, which reminded me of when, in the last century, I took my operating systems exam. As part of the final test, I had to demonstrate the differences—using example programs and benchmarks—between kernel-space threads and those created in user space with a C library.

The book covers these theoretical aspects and adds others, such as coroutines, promises, and futures, all complemented by example code. The second part is just as useful, as it demonstrates the use of the Boost library.

Finally, a strong added value is the final section, which focuses on debugging and testing concurrent programs—never an easy task. Perhaps the only downside (though not for me) is that Windows users might find it less relevant, as the book is clearly geared towards Linux and OS X developers.

Books to improve as a software developer

In the past few weeks, a junior developer asked me for some advice about books. I created this list, and I believe they should be a must-read for everyone involved in the software world:

  • The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition
  • Clean Architecture: A Craftsman’s Guide to Software Structure and Design
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The Software Craftsman: Professionalism, Pragmatism, Pride
  • Extreme Programming Explained: Embrace Change
  • Release It!: Design and Deploy Production-Ready Software
  • Fundamentals of Software Architecture: An Engineering Approach
  • Head First Design Patterns: A Brain-Friendly Guide: Building Extensible and Maintainable Object-Oriented Software
  • The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
  • Refactoring: Improving the Design of Existing Code (Second Edition)

A bonus: Lean Customer Development: Building Products Your Customers Will Buy.

I suggest this last one because we need to understand our customers. We build software for others.

Summer reflection

Which book reminds you of summer? For me, it’s the one below, and I’ll tell you why. It was the summer of 1991. My uncle, who was on vacation, had left me the keys to his house, so I went there to study and acted as a caretaker. I brought along books on algebra and geometry (matrices, vector spaces, monads, etc.) and the RKM (Amiga Rom Kernel Manual)in the photo. Until 6 PM, I studied algebra, and then I read the RKM. I followed my grandmother’s advice: duty first, then pleasure (sorry, Professor Konderac, but the RKM gave me more pleasure).

Over the years, I’ve realized I often buy books by so-called gurus on how to organize life and be productive. On LinkedIn and Twitter, posts by these super personalities appear, but if I think about it, it’s all already been written or said. The monks’ “ora et labora” is today’s “start the day with meditation”; “eat the frog first” is my grandmother’s way of saying “duty first.” Regarding persistence, we can remember some of Jesus Christ’s words, but surely there is something similar in other religions or philosophies. Why do we need to hear or read the same things in a different form? Have we lost our memories? Maybe these hot nights are getting to me.

Architecture Foundamentals

I want to suggest this book: “Fundamentals of Software Architecture: An Engineering Approach” (https://tinyurl.com/35ewyab4) for both newbies and expert engineers. What do I like about this book?

  • Very clear about the architecture properties.
  • For every architecture, at the end of the chapter, we find a card with the strengths and weaknesses.
  • Advice for tools (drawing and other).
  • Considers the soft skills for an architect, such as how to communicate with each other (for example, how to write an email to communicate an architectural decision). It puts humans at the center, not just the technology.
  • How to build an architecture career.
  • How to stay updated in this field.

Need anything else?