Financial Services

Ensure stability at scale

If you melt down the US economy, it’s a problem.

So is a series of unfortunate crashes affecting your Quant, Derivatives or Algo-Trading system’s stability. And so are flaky tests (aka intermittent failures) which either remain unresolved or waste days of engineering resources.

With Undo, you can spend less time on keeping your codebase robust and secure, leaving more time for developing and improving the algorithms that will set you apart.

SHIP WITH FEWER BUGS AND
BOOST DEVELOPER PRODUCTIVITY

Challenges

The unique scale of the computational operations in highly-complex financial codebases with millions of lines of code (often written by people who are no longer on the team) presents an enormous challenge for the engineering teams who build and maintain them.

When gnarly issues creep in (e.g. data races or memory corruptions in multithreaded code) and the root cause is non-obvious or difficult to reproduce, the team probably starts by spending multiple days debugging the issues.

What if those attempts to debug fail? Do they leave known bugs to linger in the codebase… at the risk of them blowing up in production?

Solution

Undo offers a much easier way to debug large-scale complex computational software processing millions of pieces of financial data per second.

  • With time travel debugging, your team can troubleshoot the hardest bugs within hours – not days, weeks or months.
  • By integrating thread fuzzing into your automated test suite, your team can uncover data races in complex algorithms more easily and find defects before your customers 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.

  • 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 the team 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.
  • 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 workflow significantly reduces the time the team spends debugging.

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?