Tikhon Jelvis is a software engineer who specializes in bringing ideas from programming languages and functional programming to machine learning and data science. He is a speaker and active contributor in the Haskell community, where he is currently the chair of the Haskell.org committee. He recently co-authored *Foundations in Reinforcement
Learning with Applications in Finance* with Ashwin Rao, bringing a code design lens to teaching applied reinforcement learning.
Tikhon is currently a founding engineer at CX Score, developing algorithms to improve web accessibility. Before that, he was a Principal AI Scientist at Target, focused on supply chain
optimization, simulation and demand forecasting.
Better Code Design with Types and Concepts.
What can types do for us? Are types *exclusively* for preventing bugs? Is static typing inevitably an investment with short-term costs and long-term payoffs?
They don't have to be! With the right shift in mindset, types become a powerful tool for design and expression—not just a way to catch mistakes. By seeing programming and design in terms of *concepts* (as developed in Daniel Jackson's *The Essence of Software*), we can start systematically using types to drive the design of our systems, tie our concrete implementation code to specific concepts and even iterate on the conceptual models themselves.
The combination of types and concepts gives us a new foundation for thinking about code design and software engineering in general. We get a stronger foundation for designing our own codebases, libraries and APIs, as well as a direction for how to use and develop future tools like dependent type systems and AI code generation.