The Story Behind RQ

RQ began with a release engineering problem that kept appearing across different projects, teams and technology stacks. Every release seemed to involve the same discussions, the same uncertainty and the same search for confidence before release software to production.

Looking back, I don't think I set out to build a runtime traceability platform. I was simply trying to answer two questions that refused to go away.


It started with two questions.

Release engineering isn't simply about deploying code. It's about deciding what deserves attention before software reaches production. Developers knew what changed. QA teams know what users workflows are. Engineering managers need confidence. Bringing those perspectives together was always the difficult part.

What changed?

Source control answered this remarkably well. Git can identify modified files, renames and commit history with incredible precision.

What should we test?

This question proved much harder. Knowing what changed doesn't explain which business scenarios, APIs or automated tests actually exercise that code. That missing connection eventually became the real problem to solve.


At first, Git looked like the answer.

The earliest prototypes focused entirely on source code. Compare two commits, identify modified methods and determine the impact. It seemed like most of the information already existed inside the repository.

But after experimenting with real projects, one limitation became impossible to ignore. Git can explain what changed, but it cannot explain how that code actually behaves once the application starts running.

Two methods may change in the same commit. One executes thousands of times every day. The other may never execute at all.

Source code alone couldn't answer that difference.


Runtime changed the direction.

Every running application continuously reveals how it behaves. Requests flow through controllers, services, repositories and background jobs. Automated tests exercise real execution paths that source code alone cannot describe.

The missing piece wasn't runtime tracing.

Runtime tracing already existed.

It was preserving that knowledge.

Every test execution generates valuable engineering knowledge. Yet once the execution finishes, that knowledge is usually discarded. The next release begins with the same investigation all over again.

What if runtime execution wasn't temporary?
What if it became historical engineering knowledge?

That question changed the project completely. RQ stopped becoming a tool for comparing commits and started becoming a platform for preserving engineering knowledge across releases.


That idea eventually became RQ.

Today, RQ combines repository history with historical runtime execution to understand how software actually behaves over time. The objective hasn't changed since the earliest prototypes. Connect source code with execution history so engineering teams can make better release decisions with confidence.

The platform eventually expanded to multiple runtimes, repository analysis, ingestion pipelines, language scanners and deployment agents, but those are engineering stories that came later. They exist because the original idea proved worth pursuing.