Episodic Software Memories

Your software has memory but no memories. What if application software could recall past memories for the purpose of learning? What if we could observe machine memories to more effectively reason about complex software execution behavior? Post-execution simulated playback is done without access to the application bytecode (or source code).

Mirrored Software Simulation

In projecting software execution behavior and contextual state across space and time, software engineers have the capability to develop new and augmented systems that bridge the past, present and future, allowing software machines to transcend structures formed in the early stages of design and over the course of extemporaneous reactive change.

Application Management

To fight current levels of complexity in IT systems we must look to imbue software with the ability to sense, perceive, reason and act locally with immediacy. Software must adapt not simply react. Feedback signals need to flow freely across machine boundaries as well as man-and-machine interfaces.

(Data) Flow is Life

“They [autoletics] are more autonomous and independent because they cannot be as easily manipulated with threats or rewards from the outside. At the same time, they are more involved with everything around them because they are fully immersed in the current of life.”


Software Monitoring

Using self-adaptive instrumentation and measurement tooling, performance and scalability problem identification is all but guaranteed. Within a matter of minutes, measuring a representative workload, various potential bottlenecks and optimization call sites will be accurately identified.

Performance Visualization

Efficient data collection coupled with unique software execution visualizations ensures that all parties involved in a performance investigation will gain an unprecedented insight into the execution nature and resource consumption patterns of applications and more importantly, a high degree of confidence in report findings.

Post Execution Analysis

Through distributed software recording and simulated playback the time spent in performance measuring an application under observation and analysis is greatly reduced. This allows much of the investigative work to be moved outside of business critical operating windows.

Software Engineering

Clients are offered expertise in the performance tuning, monitoring and management of JVM runtimes executing Java, Scala, Clojure, JavaScript (Nashorn/Rhino) and Ruby (JRuby) developed applications, with particular experience in scaling and optimizing high-frequency low latency request processing systems.


Software Execution Model

The software execution model is focused on the algorithmic and resource consumption behavior of a particular processing pattern such as a transaction, service request or workflow.

Imagine you need to drive across town from location A to B. You use a navigation system to plan the steps and to estimate the expected time of arrival.

Different navigation systems (algorithms) and options (context) will likely result in a different route plan.

System Execution Model

The navigation system creates a basic route plan and calculates the time for each leg based on the distance and allowed speed. But it naively assumes that no other driver is on the road and sharing the same time and space. It also is unaware of possible roadworks and accidents that will result in a delay or detour.

The system execution model looks at the impact of sharing resources across concurrent and competing processing call flows. What are the utilization levels? How is resource consumption policed? What additional costs and penalties are incurred in the co-ordination of sharing? Is the policy fair? What variations in performance is introduced due to contention? Is prolonged resource starvation possible?

Software Adaptation Model

Naturally, when we do drive and encounter obstacles or delays we change course. More importantly, this information is retained and used to train future behaviors and predictions.

The software adaptation model looks at what degree of self and situational awareness does software hold, create and manage. Can changes in the environment and variation in the performance be sensed? Can the software reason about what is sensed and alter its behavior accordingly? Can the software reason about the effectiveness of its reactions and reinforce good behavioral patterns and adaptations?

System Dynamics Model

Traffic and transportation management is crucially important for a city, especially as many suffer from traffic congestion. In our drive, through the city, we encounter many methods to control traffic flow in order to globally minimize delay or prioritize particular traffic types. These include signaled junctions, roundabouts, bus and car pool lanes, metering ramps, traffic flow signage, etc.

The system dynamics model looks at the nature of processing (flows) and how adaptive policies around resources (stocks) can be used to influence the processing behavior in order to optimize throughput or response, increase resilience (to surges) as well as to improve stability in performance.