Financial Services

Ensure stability at scale

Trading software crashes or bad market data can wipe out your trading edge instantly.

Equally, flaky tests — often caused by multithreading issues in complex code — signal an unstable codebase that’s killing developer productivity and risks million-dollar bugs making it to production.

These issues are hard-to-reproduce, so they either go unfixed (posing hidden risks to production) or consume weeks of engineering effort, delaying releases.

SHIP WITH FEWER BUGS AND
BOOST DEVELOPER PRODUCTIVITY

Challenges

Your team is likely to be working on a highly-complex legacy codebase with millions of lines of code and processing millions of pieces of financial data per second.

Tracking down hard-to-reproduce bugs in a system of this scale is a hell of an engineering challenge!

How is your engineering team supposed to ensure system robustness and stability in such a difficult environment?

Solution

Undo offers a much easier (and faster!) way to debug large-scale complex computational software.

  • With time travel debugging, your team can troubleshoot the hardest bugs within hours – not days or weeks.
  • By integrating thread fuzzing into your automated test suite, your team can expose hidden data races more easily and find defects before users do.

SOLUTION

TIME TRAVEL DEBUGGING

Enable your engineers to examine the full state of the program at any point in time during its execution – across sub-systems and threads. Tracing the data flow by stepping back in code execution couldn’t be easier.

  • RECORD a process and capture everything the code did during a failing run in a single file containing the whole execution history – every line in every thread, every variable, every I/O – giving engineers an instant reproducer, so they can start debugging straight away without wasting time trying to reproduce the issue.
  • REPLAY the recording back and forth, step back to any point in the execution history to see what happened and why.
  • RESOLVE by tracing from the error back to the root cause in a single debug cycle (without having to restart the debug session or recompile). No known bug remains unsolved.

This simple workflow significantly reduces the time the team spends debugging quant libraries, low-latency trading systems, or real-time market data distribution platforms.

Learn More
SOLUTION

THREAD FUZZING

Race conditions in multithreaded code are particularly difficult and time-consuming to identify.

So Undo comes with a capability called thread fuzzing. It’s a way of manipulating the way that threads are scheduled, making concurrency bugs statistically more common. Engineers can shake the CPU scheduler and see what falls out.

Thread fuzzing is typically enabled in existing unit tests or continuous integration tests to shake the codebase and expose hidden race conditions. Because the failures are recorded, they become a lot easier (and faster) to fix.

Thread fuzzing is used by engineering teams who need to ensure their codebase is stable and issues are caught early before they go anywhere near deployment.

Learn More
Image link

TRUSTED BY LEADERS

KEY BENEFITS

Maintain systems availability and protect your reputation

IMPROVE CROSS-TEAM COLLABORATION
Complex algorithms often invoke code from other teams. So when Quant code crashes for example, Derivatives can now send a recording of the failing code back to the Quants for debugging.
ENSURE STABILITY AT SCALE
Nobody wants to ship buggy code. Errors in production can cost millions of dollars – in financial terms and reputation. By integrating Undo in your development workflow, you minimize the risks.
BOOST DEVELOPER PRODUCTIVITY
With Undo, engineers can now root cause bugs in hours, instead of days. Customers report that the technology is a huge time-saver and provides a significant productivity boost.

Want to discuss if this could work in your environment?