Prologue
How far will you go to follow your intuition? Leaving a place of engineering excellence, friends, culture for something... else.
So I worked at a great place. The organisation had a great mission (they build educational games for kids), their engineering team was focused on quality, the management was actually supportive and aligned business and tech needs well. In my 13 years coding professionally, I’ve seen my fair share of cheap, soulless ‘IT’ sweatshops, the corporate monoliths buried in red tape and politics, the struggling startups where you cut so much you’re cutting bone and still feeling burned out but where I was, was good. People cared about their work and were more or less competent. I was comfortable, doing ruby, coffeescript, ember during the day and hacking on Elm in the evenings. Up to this point, my only experience in Elm had been remaking an old game for the better part of 18 months, learning Elm and game making.
The phone call was out of the blue, from a manager I'd known in a previous role. He was honest about the situation and what he described failed every single workplace indicator of mine. Every indicator bar one: Autonomy with language of choice. Opportunities like this are very rare. I had just been thinking about what Richard recently said, something along the lines of "I work with Elm 8 hours a day" and that's what I wanted to do (because at my age, one realises how little time we actually have to make a difference). So I did it.
The application is a rewrite of a decade old legacy desktop app. Tech stack consisted of Elm and polymer in the frontend and Elixir, .Net WebApi with MSSQL in the back, as is common with corporate entities (wait what Elixir? More on that later). The job vacancy was made possible by their lead (and sole) frontend developer abandoning the project halfway, leaving the company scrambling for resources. The application was already at 16k LoC and I was coming in as the 'Elm expert', meaning they couldn't find anyone else with any experience in this strange and exotic language.