Lucas Cavalcanti Clojure/conj 2016 Interview

Lucas Cavalcanti will be giving a talk at Clojure/conj 2016. He will be speaking about building double-entry accounting on top of Datomic and Kafka.

Follow him on Twitter and GitHub. How did you get into functional programming?

Lucas Cavalcanti: At college I had Scala and Erlang in a Functional Programming course, but since I was mainly doing Java at the time, the only FP I was getting was some map/filter operations using Google Guava. One year later I started a project in Scala, tried to use every single one of its 9001 language features, but still too much OO from my Java background.

Only when I started using Clojure for real at Nubank I get to grasp the real power of functional programming on the most simple yet powerful language I know of. What is your talk about?

LC: It is about a double entry accounting system built on top of Clojure, Datomic and Kafka, leveraging functional programming, declarative rules, event log processing and generative tests to guarantee correctness, auditing and extensiveness. What do you hope people will take away from the talk?

LC: How to use the main advantages of Clojure and its ecosystem to solve problems in a domain that is close to math, financial services in this case. What concepts do you recommend people be familiar with to maximize their experience with the talk?

LC: Some basic knowledge about accounting can help, besides functional and declarative programming, event sourcing and generative (property based) tests. What resources are available for people who want to study up before the talk?

LC: The talk will be about Clojure, test-check generative testing, schemas, datomic, other than core concepts like event sourcing and declarative programming. Where can people follow you online?

LC: I'm @lucascs on twitter and github. Are there any projects you'd like people to be aware of? How can people help out?

LC: No, only the ones I mentioned earlier. Where do you see the state of functional programming in 10 years?

LC: It will be the basic technique for most software projects, it will be taught in schools before any object oriented code, and will be the foundation of a more powerful and simple paradigm. If functional programming were a superhero, what superpower would it have?

LC: It would have the power to transform matter, by reorganising its atoms without creating or destroying any of them.