About Inner Product

What we believe in and where we came from.

Our Mission

Inner Product’s mission is to simultaneously make great software and advance the state of the software industry.

Making great software means, for us, software that is a delight to use. User experience concerns are just as relevant to the predominantly back-end work we focus on, as they are to the end user’s interface. This means we consider criteria such as designing APIs to prevent errors from occuring and maintaining consistency in naming and usage patterns, alongside more traditional back-end concerns such as performance and scalability.

To advance the state of the art we’re focused on two areas: improving diversity and leveraging the power of the computer when developing software. For the former we’re active supporters on ScalaBridge, donating our time and resources to help bring traditionally under-represented people into the Scala community. For the later the most practical approach for most projects is to use modern static type systems, such as found in Scala, Rust, Haskell, and Typescript. Where projects allow we use other formal methods, and machine learning techniques.

Our Origin

Inner Product arose from Underscore, taking on Underscore’s US business. We continue to work closely with Underscore. Like Underscore we are best known within the Scala community but our expertise extends beyond Scala.

Our Principals

Adam Rosien @arosien
Adam focuses on building systems, teaching, and mentoring using functional programming. He previously helped various startups in many domains develop back-end systems and implement continuous deployment practices, and also spent five years as a developer at Xerox PARC.
Noel Welsh @noelwelsh
Noel has been interested in computers for a long time, particularly the leverage that computers give to people. He followed this interest to a PhD in machine learning, focusing on Bayesian nonparametrics and reinforcement learning. He still finds machine learning very interesting, but right now is more involved with programming and programming languages. A large part of his work is helping people become more effective with functional programming.