Artificial Intelligence Indie

The Complete Guide to Microsoft Agent Framework: Build, Test & Manage AI Agents that Integrate Seamlessly with Azure, M365 & Business APIs

This book seeks to teach readers how to write Python or .NET code to perform certain tasks as Agents within Microsoft’s AI platform. Unfortunately, it’s heavy on code and light on concepts. I wish it’d teach more about how to integrate with Azure’s web interface instead of the command line alone. It does succeed at showing many examples of how to code agents, but it lacks a deep conceptual explanation of how agents integrate with…

Continue reading

Artificial Intelligence Indie

Retrieval-Augmented Generation (RAG) & Vector Databases: A Practical Guide for AI Developers

Retrieval-Augmented Generation (RAG) is how artificial intelligence prioritizes facts in a given domain over and above all the information the basic, foundational model offers. It allows businesses, scientists, and others to prioritize their custom knowledge instead of making up answers. It’s an extremely powerful tool that most AI users don’t understand. This book tries to explain the basics of a RAG system in Python code. Unfortunately, despite a grasp on the basics of RAG, it…

Continue reading

Software-Technology

Pair Programming Illuminated

Pair programming is a practice in software development whereby two programmers write code together. I’ve studied it from afar until recently. What happened is a colleague asked me to pair program with him. As his program manager from a coding background, we’ve been working with relative success and happiness for several months. I liked the process so much that I wanted to take a deep dive to explore problem areas and tricks of the trade…

Continue reading

Software-Technology

The Essence of Software: Why Concepts Matter for Great Design

In today’s software design, much focus hones in on users’ experience with the interface. Teams make large efforts to make that experience as pleasing as possible so as not to drive away customers. However, they don’t place as much emphasis on the conceptual nature of software – what concepts users extract from the software and what concepts the software requires for effective use. Since the advent of the GUI, today’s software conveys intellectual matter that…

Continue reading

Indie Software-Technology

Software Architecture for Developers: Designing Scalable & Maintainable Systems for the Real World

This book provides a succinct overview of the subjects a software architect interacts with on a regular basis in today’s world. That is, it portrays a high-level snapshot of the field in 2024. It summarizes what the current technologies are and lists the different conceptual frameworks software technology uses. Microservices, cloud computing, software as a function, and the packages that oversee it fill the lists that Steve Abrams provides. Its main weakness, however, is that…

Continue reading

Software-Technology

How Google Tests Software

I learned to develop software in the 1990s and started full-time work in the 2000s. I took time off to study other fields and returned to the practice in 2012, about the time this book came out. In the last 13-or-so years, I’ve noticed that the art of testing software has changed significantly. Twenty-five years ago, I started to code in an academic lab where we did our own testing out of necessity. In industry,…

Continue reading

Software-Technology

Tidy First? A Personal Exercise in Empirical Software Design

When a software developer is writing code, she/he is often confronted with a problem: How much work should I put into writing “the best” code versus just doing a quick but serviceable job? Kent Beck, pioneer of the influential Extreme Programming: Embrace Change, addresses this question via an in-depth look at the process of “tidying” code. His answer is usually to “tidy first”… but not always. This book seeks to identify exactly when one is…

Continue reading

Software-Technology

Data-Oriented Programming: Reduce Software Complexity

Professionally, I write code for web applications in PHP for biomedical use. Thus, data play a central role in my professional life. At first, I tried to design my programs around object-orientated (OO) principles, but soon found that data played a strong role that OO actually restrained. Years later, I found how React divided itself between immutable data, state information, and code. Though I no longer code in React, I find this division still helpful…

Continue reading

Management-Business Software-Technology

Become an Effective Software Engineering Manager: How to Be the Leader Your Development Team Needs

Managing software engineering efforts is a difficult task. One needs a thorough knowledge of authoring software, which itself is a rare, time-consuming accomplishment. Almost all general managers do not have an in-depth knowledge of programming (though many assume they do!). A few of the best software developers are promoted into a managerial role and have to figure out what to do on the job. Much literature on general management topics exists, but few writings center…

Continue reading

Management-Business Software-Technology

Inspired: How to Create Tech Products Customers Love

Since computers and digital technology have become so ubiquitous in contemporary life, creating good software and technology products has become an important business function. Many (exceeding 50%) technology products fail, despite significant design, engineering, and financial efforts. How can we make this process more efficient and profitable? That’s the job of a relatively new job title: the product manager. In this book, Marty Cagan discusses how to fulfill this role in an organization so that…

Continue reading