Skip to content

Latest commit

 

History

History
25 lines (12 loc) · 1.93 KB

medium-mihaly-attila-set-your-business-logic-free-using-asts.md

File metadata and controls

25 lines (12 loc) · 1.93 KB

#Set your business logic free using ASTs

Attila Mihaly (miattila)

https://ozmi.wordpress.com/

Abstract

We can do amazing things with our business logic when it’s in the form of an AST. When logic turns into data it can be sent through the network, translated to other languages or visualized in innovative ways. This allows us to solve difficult business problems and more importantly it’s a lot of fun.

Description

Scala lets you write business logic and run it, but what if you want to do more than just executing on the JVM? An AST lifts you to a higher level of abstraction where you can process business logic just like any other data. In this talk I’ll demonstrate how you can build ASTs that represent your business domain and use them to solve various business problems that were previously infeasible.

Notes

I spent the last 5 years solving business problems using language processing techniques in Scala at a large financial firm and managed to fundamentally change the software development workflow for a team of 40 developers. Besides the technical challenges I had to navigate through company politics to get Scala and functional programming accepted. Today we build most of our business logic as ASTs and use our own transpilers to turn them into executable code in various languages.

I believe that this approach can benefit developers in any business-centric environment and would like to share some of the lessons I learned throughout this process.

Bio

Attila Mihaly is a software engineer with 15+ years of experience in developing distributed applications. In his current role as a software architect at a large investment bank he sets the technology direction for a team of 40+ developers. Using Scala for the last 6 years allowed Attila and his team to automate many software development tasks and solve business problems that were previously infeasible.