Systems | Development | Analytics | API | Testing

The Campaign Brief Agent That Saved Weeks of Work

Every campaign launch comes with the same overhead: write the brief, rewrite it for creative, rewrite it again for email ops, digital, and whoever else needs a version of it. Multiply that by every campaign your team runs, and weeks disappear before the work even starts. In this clip from the Thought Tank: Marketing in the Age of Agents, ThoughtSpot SVP Marketing EMEA Katie Marcham and CMO Micheline Nijmeh share the agent that changed that.

Life after App Center: how we rebuilt CodePush from the ground up

In March 2024, Microsoft announced it would retire App Center in March 2025. For a lot of mobile teams, the first question was simple: what now? I was on the Release Management team at the time, and we thought CodePush was worth pursuing. We wrote up the case, got it onto the roadmap, and then waited. Nobody could say yet whether it would become a valuable product, and a team our size has to pick its bets carefully.

Your Manual Tests Are Already Automation

Here's the idea I want to leave you with. Your manual test library isn't documentation. It's automation that has been waiting for something that can read it. And you shouldn't have to move it, rewrite it or migrate it to set it free. The clearest version of this came up in a customer conversation a few weeks ago. The head of quality at a fast-growing fintech told me his company pays an outside firm to run its manual regression, and the firm bills per test executed.

Why Declarative Intent-Driven Testing is the Answer to Broken Automation Pipelines

Every software team knows the pain of the 4:00 PM build failure. The application itself is perfectly fine, but a tiny layout update threw off an automated script, triggering a false alarm across the deployment pipeline. The failure stems not from broken software, but from a brittle script losing its way. By tying validation to volatile implementation details, the QA industry has cornered itself.

Generating Random Numbers in Ruby: rand, Random & SecureRandom

To generate a random number in Ruby, call rand: rand(10) returns an integer from 0–9, rand(1..10) an integer from 1–10, and rand alone a float between 0.0 and 1.0. For security-sensitive values like tokens and passwords, use SecureRandom — rand is predictable. Computers cannot produce truly random numbers by computation alone. A deterministic machine can only produce pseudorandom numbers: a stream that looks random but comes from an algorithm fed with a starting value, the seed.

Best Graph Databases for AI Agents

AI agents that forget their context are just expensive chatbots. The difference between intelligent agents and simple assistants comes down to memory architecture, specifically how well your system tracks relationships, maintains temporal context, and reasons over evolving information. Graph databases have moved from niche infrastructure to essential AI components, with GraphRAG implementations showing 80% improvements in agent truthfulness and significant accuracy gains over vector-only approaches.