We are a unique software engineering firm, with a track record of rapidly delivering high-quality IT systems to meet challenging business objectives.
Complexity, still the primary cause of failure and delay of IT projects, arises from the interaction of concerns.
The fundamental concerns in IT systems are code, form, data and time — their subtle interactions and couplings combine to have a suffocating impact on software projects.
Our approach to building IT systems is defined by a unique methodology and a set of supporting tools that allow us to keep these four concerns separate, resulting in:
Rapid development of large IT systems
Increased levels of agility and software re-use
Lower maintenance costs
Secure, reliable systems that are robust yet flexible
We believe that systems should be built on the conceptual bedrock of a dual timeline. This provides a universal set of essential capabilities for organisations who operate within disparate and ever-evolving landscapes of information, and who require an accurate and consistent view of information at any point: past, present and future.
The main timeline is fully controllable and it allows for:
The secondary timeline is immutable and provides a guaranteed audit trail, 'built-in'.
Data is fundamental to the creation of software. It will routinely outlive the interpretations we derive from it and the applications we build on top of it. Therefore, we will always seek to lay the foundations of data management independently of a particular application or use-case, and above a common timeline.
Table-based structures, found in spreadsheets and traditional SQL databases, are helpful for displaying and analysing data, but they are not an appropriate format for storing data.
Tables are insufficient for representing data in its purest form, and this is particularly obvious when modelling sparse data or multi-valued attributes, or coping with the evolution of data over time.
Instead, we believe that data is best recorded as units of facts and relationships, without constraints.
More simply put, we believe graph-oriented systems point us towards the correct approach for data management, and organisations such as Facebook and Google have proved how powerful the widespread use of graph-structured data can be.
Organisations can unlock different amounts of value from data depending on how they interpret it, how they shape it and the constraints they place on it.
Complex types & tables, schemas & structures, classes & containers, models and metadata, formats and encodings, representations.
These are the forms we construct for interpreting, analysing and extracting value from our data. Tools such as relational schemas and ontologies are common structures we use for understanding, analysing and managing our information.
Too often, software developers will attempt to "codify" these structures into their software as types and objects.
By understanding that schema is just another form of data, on a timeline, we let our information systems grow and flex with the businesses they serve. This is how we are able to build maintainable models of the real world.
The software patterns and practices that underlie your application architecture are certainly important, but less fundamentally relevant than making the correct choices with regards to the structure of your data in time. Assuming those other foundations are in place, we believe that the best approach to code is to keep it short, readable and expressive.
In reality this means we prefer:
By pulling out the state and domain, the remaining code is simple. Developers can focus on writing code to implement business logic, pure functional calculations and derivations, with resulting actions that automate the execution of business processes.
As software complexity is tamed, productivity soars.
Crux is our unbundled bitemporal graph database:
Crux provides the data 'time-line' as a value, storing both 'valid' time and 'transaction' time. Queries that are often impossible in other databases are made simple in Crux.
Many object-oriented programming languages coax the developer into coupling code with data.
Functional programming languages pull them apart. Our go-to functional programming language — Clojure — goes further, providing language features to protect simplicity.
JUXT's leadership is made up of experienced software consultants who have led Agile projects, run Agile training courses and brought Agile methodologies into large organisations.
We have taken the best parts of Agile methodologies and combined them into a process that scales and delivers. We deploy often, provide regular showcases and encourage daily stand-ups. We use best-of-breed tools to provide transparency and to manage project work-streams.
We’ve been building systems on AWS since early 2014, over that time we’ve accumulated first-hand knowledge and expertise of managing and automating AWS infrastructure.
Our AWS systems have been successfully audited for PCI DSS compliance and won praise for their operational stability, information security and regulatory compliance. We have experience in meeting GDPR requirements and protecting data privacy.
Our Stories
Here are some of the projects we've been proud to build.
To build the back-end of a rewards and loyalty programme for all UK mobile customers.
Highly scalable platform, delivered into production in 8 months, on time and on budget.
Successfully launched, currently serving >3 million active users, the system has proven highly reliable, with 100% uptime and zero outages.
AWS, Clojure
—
Mattia Piccinini, Strategic Solutions and Technology, Senior Director
To deliver an innovative public-facing global sales platform for a multi-national investment bank
JUXT delivered a highly innovative data-driven user-interface, covering multiple life-cycle phases of complex structured derivatives.
ClojureScript, JSON Schema
—
MD, Investment Bank
To deliver a viable competitor to the UK’s property portal duopoly in just 9 months
JUXT led development of the OnTheMarket.com platform which was launched in 2015, on time and on budget.
Clojure, AWS, ElasticSearch
—
Morgan Ross, Technical Director
Bitemporal queries on a K/V store
JUXT was brought in to help solve the problem of adding complex queries on an existing K/V store containing billions of assets and positions.
A GraphQL interface to introduced to allow rich queries across the entire store. The backend was built to support bitemporality, so that queries could be made against end-of-day trading positions with adjustments.
Clojure, GraphQL, RocksDB
—
Helping to improve crop yields in the face climate change
JUXT developed the front-end user interface for a demanding range of mobile devices.
The application allows independent farmers to exploit data to improve their yields and make better economical and environmental decisions.
Clojure, Heroku, Datomic, Reagent, Re-frame
—
info@juxt.pro
+44 (0) 333 93 98 309