Skip links

Author: James Mitchell

Magnifying glass over laptop screen revealing code highlights and analysis

Technical Due Diligence: What We Look for in Software Acquisitions

Over the past three years, Harbor Software has conducted technical due diligence on 11 software acquisition targets for private equity firms and strategic acquirers. The deal sizes ranged from $2 million to $45 million. We have recommended proceeding on 7 of those deals, recommended against

Code Review Culture: What Makes a Review Actually Useful

After reviewing approximately 3,000 pull requests over the past six years, I am convinced that most code reviews are performative. The reviewer skims the diff, leaves a comment about a variable name, approves, and moves on. The author addresses the naming nit, merges, and ships
Fishing net catching glowing red bug particles against dark background

Writing Tests That Actually Catch Bugs

Most test suites are theater. They pass, the CI badge is green, everyone feels good, and then a customer reports a bug that slipped through 400 tests without triggering a single failure. After eight years of writing tests across ML platforms, SaaS products, and security
Split-screen of technical diagrams translating to business charts with bridge

The Engineer’s Guide to Working with Non-Technical Stakeholders

The most impactful skill a software engineer can develop is not a programming language, a framework, or an architectural pattern. It is the ability to communicate effectively with people who do not write code. I have watched brilliant engineers build the wrong thing because they
Small seedling next to laptop and massive tree bursting through ceiling

Scaling FastAPI Applications: From Prototype to Production

FastAPI is the best Python web framework for building APIs in 2024. It combines type-safe request handling via Pydantic, automatic OpenAPI documentation, native async support, and performance that approaches Node.js for I/O-bound workloads. But most FastAPI tutorials stop at “hello world” and never address the

The Hidden Cost of Context Switching in Software Development

A study from the University of California, Irvine found that it takes an average of 23 minutes and 15 seconds to return to full cognitive focus after an interruption. That number has been cited so often in productivity articles that it has become background noise.

Product-Led Growth for Developer Tools

Product-led growth (PLG) is the dominant go-to-market strategy for developer tools, and for good reason. Developers do not want to talk to sales. They do not want to schedule a demo. They do not want to fill out a form to get pricing. They want

Event-Driven Architecture with Python: A Complete Guide

Request-response is the default architecture for web applications, and for good reason. A client sends a request, a server processes it synchronously, and returns a response. Simple, predictable, easy to debug. This works beautifully for straightforward CRUD operations where a single action has a single

Competitive Intelligence Systems: Architecture and Implementation

Every business monitors competitors. The question is whether they do it systematically or haphazardly. Most companies fall into the haphazard camp: someone checks a competitor’s website occasionally, a sales rep mentions a competitor’s new pricing in a Slack channel, a product manager bookmarks a competitor’s
Explore
Drag