Blog
Notes from our engineers on software, AI and data.
Systems5 min readConsensus is not the hard part: retries, compaction and partition moves
Consensus only replicates a log. Retried requests, log compaction and moving partitions between groups are what break in production.
Strategy3 min readWork made for hire and software ownership: what the clause misses
What to check in the ownership clause before you sign or get acquired: the assignment, the chain of people, and what the vendor keeps.
Delivery3 min readWhat a statement of work must include: a buyer's checklist
A checklist to run before you sign, ending in a test you can give to someone who has never heard of the project.
Engineering4 min readWhat building a compiler teaches about data modeling
How choosing an intermediate representation in a compiler maps onto choosing the data model of a business system.
Strategy3 min readBuild vs buy software: sort each process step before you write requirements
Sort every process step as commodity, differentiating or contextual before anyone writes a requirements document.
Engineering3 min readWhy legacy system rewrites get canceled, and a safer bet
A big-bang rewrite is a bad bet, not a bad pitch. Replacing the system one slice at a time changes the bet and gives the budget review something it can approve.
Data5 min readMachine learning intrusion detection: what the data stages taught us
What we learned building an ML intrusion detector from raw packet capture to live alerts, and which stages were data work.
Data2 min readWhy departments report different revenue numbers, and how to fix it
The meeting should be about the decision, not about whose number is right. Write each metric definition once and make every report read it.
Engineering3 min readRoute optimization: when the shortest path is the wrong objective
How an interactive route planner went from the shortest path to the safest one, and what we learned building it.
AI3 min readWhich AI projects are worth funding: the three conditions
What to check before you fund an applied AI project, and what to build before the model.
Delivery4 min readSoftware estimates: why a single number is a bid, not an estimate
Early on, an honest software estimate is a wide range with its assumptions written down. Here is where the range hides and what to ask a vendor.
Engineering4 min readSemaphores explained: the count is the contract
Locks, caps and signals are one primitive with different starting counts. This article covers how semaphore code fails: deadlock, laps and a wrong starting count.
Next step
Talk to an engineer about your project.
Tell us what you are working on. The first call is 45 minutes and costs nothing.
- Phone
- (214) 723-2510
- Reply
- A person replies, not a sequence: within one business day, from someone who would be on the engagement.
