Building a Product Prototype in Elm

This week our small team of four former team mates (two full-stack devs including myself, a front-end dev, and aUX designer) is participating in a four-day hackathon at Envato. We were free to choose an idea to work on and tools to use.

We have picked Elm as a language because two of us wanted to get at least some experience with it and started building an app. The other developer in our team was not familiar with that language at all, the UX designer was not expected to code.

Even though two of us had paired several times on small Elm problems before the hackathon to prepare ourselves, we still ran into a few issues that took a bit of time to solve. However, I’d still call our experience with Elm positive, even though we haven’t completed the prototype yet and struggled with unusual Elm syntax.

It was important for us to prove that we can learn the basics of a new language very quickly, can understand the app architecture and can quickly solve problems by reading docs, following tutorials (the official one and unofficial one made by one of the founders of Melbourne Elm meetup), googling and reading StackOverflow. We both liked the ideas behind the language itself and the architecture for its apps. We just were unsure how all that would work in practice for us.

It turned out that the only thing that we didn’t like was … the official Elm style guide: indentations, leading commas, the number of blank lines between blocks, etc. However, we agreed that we can tolerate that in exchange for the nice architecture, strong types, and informative error messages. I hope that this is not the only Elm app that I’ll be working one in my career.

If you found this post useful, give some claps below or a share on social media. Thanks for reading!

Software engineer, manager since 2002. Engineering management, leadership, software architecture, high-performing teams, professional growth.

Software engineer, manager since 2002. Engineering management, leadership, software architecture, high-performing teams, professional growth.