Abstract: Data is everywhere, and so too are data-centric applications. As the world becomes increasingly data-centric, and the volumes of that data increase over time, data engineering will become more and more important. If we're going to be dealing with petabytes of data it will be better to get the fundamentals in place before you start, rather than trying to retrofit best practices onto mountains of data. This only makes a difficult job harder.
The 12-factor app helped to define how we think about and design cloud native applications. In this presentation, I will discuss 12 principles of designing data-centric applications that have helped me over the years across 4 categories : Architecture & Design, Quality & Validation (Observability), Audit & Explainability, Consumption.
This has ultimately led to our teams delivering data platforms that are both testable and well-tested. The 12 factors also enable them to be upgraded in a safe and controlled manner and will help them get deployed quickly, safely and repeatedly.
This talk will be filled with examples and counter examples from the course of my career and the projects that my teams have seen over the years. It will incorporate software engineering best practices and how these apply to data-centric engineering. We hope that you can benefit from some of our experience to create higher quality data-centric applications that scale better and get into production quicker.
Bio: James has over 20 years experience as a lead developer in the finance industry at various banks, hedge funds and startups with data intensive applications ranging from fraud detection to pricing (usually coding in Java). He has presented at a number of conferences around data and he cares deeply about design and building quality into the heart of all software and is a firm advocate of XP practices such as TDD and BDD.
James is OpenCredo's Technical Delivery Director and loves to analyse, architect and deliver pragmatic solutions that bring tangible business value.