Goatmire 2 - Odin’s Folly
2026-10-05Underjord is an artisanal consultancy doing consulting in Elixir, Nerves with an accidental speciality in marketing and outreach. If you like the writing you should really try the pro version.
The halls of the conference are empty. A few developers are working on their laptops, clearly cramming in some work they are on the hook for. Everyone else is attending the talk. The hallway track is quiet.
The horns sound out in the theater. Resonant in a space that predates amplifiers. The drum strikes deeply. I enter the stage in the mist of the smoke machine and green light. I can’t see the audience but I hear the murmuring. A nervous smile as I launch into a silly loveletter to our open source community, dressed in serious ceremonial garb.
The second Goatmire ended on friday the 2nd. It kept ringing into a late summer day on the 3rd with a chill hackathon and a nice AshConf. On the 4th I was disassembling remnants of computer-driven instruments in my garage.
Arguably this was all about Elixir.
All photos by Petter Boström at Five Keys, phenomenal photographer, videographer & collaborator
We could not have put on the event without sponsors. I can’t get into each one or this post will be infinitely long. But lets just say most of them opted not to have a table because they preferred to attend the conference. Wild.
Foundational sponsors
Supporting sponsors
Partners
Beginning
Immediately after doing the first Goatmire I decided I wanted to do another one. Because of how successful the weirdnesses of the first one had been I knew I wanted to retain that. I also knew I didn’t want to pressure speakers to put on theatrics. Allow and enable, sure. But giving a straight-down-the-middle talk on something interesting should be welcome. So I was thinking about how we could ensure the strangeness, give life to the theme without putting that on the speakers.
Meanwhile in New Orleans. Flora Petterson was having ideas. She is the puppeteering programmer who gave the only non-published talk of Goatmire 2025. That is the only talk about Elixir that has made me cry and I was not alone in that. She reached out to me around November, not long after that first Goatmire about doing some thematic shenanigans with puppets.
We started conspiring right then and there.
I’ve had a few people work very close with me on pulling the conference together. Stina is my wife and right hand. She has done a ton on the practical end and during the execution of the event took on more than she had imagined she would. One reason Stina could step back from administrative things and help a ton with stagecraft and operating things was that we brought in Helene Mattisson who ran hotel bookings, speaker logistics and the general practical production of the event. Keeping me on track, tracking deadlines and so on.
Flora, Stina and Helene. In no particular order were my most intense co-conspirators kicking off the event. But I was already lining up Marc Lainez' plans for a talk. Plotting badges with Gus Workman of Protolux Electronics. I pinned down Sam Aaron and the plan for proper DJ sets very early on. This event has essentially been a year in the making at various intensity-levels.
One bit of program-related steering I decided on early was to help people steer more technical. I definitely wanted talks that touch on human and social aspects of what we do. But we steered relatively technical overall.
During this I kept hearing from people around the community that months later people were still talking about Goatmire. Which was reassuring as we went quiet plotting the next one.
Workshops
This is the most hinged and on-your-rocker part of Goatmire this year. We did workshops. Kindly hosted and supplied with caffeine and sugars by Campus Varberg and Varbergs Techarena. 2 days with 2 workshop slots each day, 4 hours long, 4 parallel rooms. 16 workshops planned. 14.5 happened. We lost two due to presenter illness and that 0.5 was what happened when the AI people gathered in one of the empty spaces and just jammed out.
This all went very well. You can see the schedule here.
- Multimedia with Membrane 101
- Nerves community hack session
- Introduction to Elixir
- Test-Driven Development
- Ash Demystified
- Hardware hacking
- Docker 101
- The Tinkerer’s Guide to Elixir Processes
- AtomVM is real
- Nerves as your Smartphone OS
- Make some noise
- Terraform 101
- Emerge & Solve - GUI and State in Elixir
- Achieving Balance in the Workshop
were the ones that happened.
My personal favorite just conceptually is Nerves as your Smartphone OS. Every attendee got a working second-hand Fairphone 3 thanks to Citronics. Marc Lainez had prepared them to run Nerves and got everyone running and ready to develop their own phone OS on top of a Nerves foundation. I missed the workshop but I just had Claude turn mine into a music player.
The balance bot was phenomenal. Watching music come out of the Sonic Pi workshop was awesome. Hearing that Damir made his whole gang hand-code Solve and Emerge for 4 hours in the age of LLMs made me cackle.
This was a good kind of soft opening to what turned into a very dense and intense conference. This could have been a worthwhile event all on its own. I’m very thankful to Malin Påhls Hansson for all the help and encouragement throughout. I hope we planted some seeds with the students and non-Elixir folks that did attend.
Day 1 - On the metal
The first day of the conference talks were focused around Nerves and remains in many ways the NervesConf EU we had folded into the previous event. We did not co-brand them this year because that sucked for trying to communicate about it all and we didn’t want people to skip day one just because it touched hardware. We had a plot to start and we had a ton of awesome talks which I don’t think requires an interest in embedded.
I was Odin on this day. He performed two functions, the MC of the conference according to some fully fictional ancient accords and he was the antagonist in the form of a fully silly startup CEO type. Our audience encountered The Goat for the first time. Our average developer. Our audience proxy. To further blur the goat’s identity the actor behind the mask was replaced for every vignette we performed. This was a lot of fun. Well-known names in the community getting to be goofy in relative anonymity.
Our first speaker was Peter Ullrich.
I have nothing to add about that initial talk that isn’t explained by Peter flossing on stage in a viking costume. It was a lot of good explanatory stuff on how radios work actually. Phenomenal start to a conference.
Gus introduced the badge he had built for us. A very capable thing with battery, LCD screen and a decently sized keyboard. Plus sensors and additional connectivity. People had a blast with the thing. Gus talks more about what people did with it on a recent Macro Mayhem episode that they recorded during the conference. This allowed our first serious deployment of the Nerves orchestra in a tearjerking performance of Rick Astley’s seminal Never Gonna Give You Up.
Matthias “Maze” Reik spoke about the Fledex library which we were using to light the 4 meter tree. So along with his cute little LED strip we helped run his demos on our 900 RGBLED tree.
Marta expanded her concepts from ElixirConf EU in Malaga with some new and interesting hardware in glove form. Sahil gave a very stern talk to the assembled comrades. And Kevin shared the state of his Home Assistant library for Elixir and Nerves. Interestingly we had a whole contingent of Nabu Casa folks attending the conference. They use Elixir and have been sniffing around Nerves recently. Hope we’ll have more to share about that in the future.
AtomVM by Davide Bettio, Nerves 2.0 by Frank Hunleth and an awesome stand-in talk by Alex Slade. Frank’s talk unwrapped all the “magic” of Nerves into very concrete steps to give people guidance on what Nerves actually is and how it works. Which I think will be a valuable reference for a long time.
Marc Lainez, of Nerves Car fame, finished the day by presenting his work on making Nerves run on all sorts of things. He presented it on a Wii U, running Nerves, he talked about smartphones, tablets and e-readers. As well as showed off his snazzy new Nerves smartwatch. I have one of those that I still need to flash. So excited.
The final vignette of the day. La Misère Du Boc. The first of several original pieces of MIDI music performed by the orchestra and enhanced vocally by Saša Jurić and Ellyse Cedeno. Sam Aaron as the goat gave a performance of misery that quite literally made my 6-year old daughter cry. She has decreed that next time she will be a fairy and help the goat.
A phenomenal first day. None of the theatrics had blown up in our faces, people were having fun, the catering was feeding people, the talks were great.
We wrapped up by having organized to run Lightning Talks at Bank 28 and I roped Saša Jurić into hosting them as he had also expressed interest in giving a Lightning Talk.
We absolutely packed that bar to the brim. It was unusable for probably 2 hours as the lightning talks happened. It was a lovely time.
Day 2
A new day, a new antagonist, a new outfit. This day I was Loki. Supposed helper of the poor goat. The kind of help you prefer to be without. This continued the rampage of the severed head of Mimer and the struggles of our beloved goat.
Beyond the fact that my wife wanted nothing to do with me due to the white crocs (the rest of the outfit also did not help) it was a good day.
Bryan Hunter was certainly one of the biggest and most anticipated names. I feel like he spoke more earnestly and with less restraint which was fun to see. A great talk as we expected.
Dan Janowski talked us through the purpose of the Erlang Ecosystem foundation. If you assured me at the conference that you were going to become a paying member, then this is that moment. Not later. Immediately. Only collectively do we have the means to solve shared problems.
Rebecca Le gave one of my favorite talks. First time speaker, long time writer, decades long fan of Morrowind apparently. This was a masterful talk showing very atypical use of Elixir, Ash and more.
Membrane noise cancellation, removing american muscle.. Time estimates with Tim Jarratt. Evadne going off on building personal agents in Elixir. Daniil Popov on building desktop apps in Elixir. Bart on Hologram. Stefan on result monads. The Selberts on .. murder. Sam Aaron showed his work on time critical audio processing. Kamila Pokój lectured us all on marketing.
And James Harton brought it all home beautifully with his presentation on the new robotics framework for the BEAM. BEAM Bots.
Feliks Pobiedziński and Mateusz Słuszniak, Hear No Evil: Building a Membrane Pipeline for AI Noise Reduction
Day 2 was very intense behind the scenes. Stina and Flora practicing the puppet theater scene in any moment they could. The Selberts' talk requiring some stage adjustment. Other fairly involved scenes with Mimer’s head. This day was intense behind the stage and we were all completely wrung out when it was over.
The evening was the long-promised karaoke. Karaoke at Bank 28 which is not usually a karaoke place. Once we started things off the people who liked to sing just went ham. The whole place was singing, the staff took a turn on stage, bands formed and broke up. The joy in that space was palpable. As an organizer I could sit back and enjoy.
Day 3
Odin returned checking in on Q3 OKRs and finds out the new code is fully operational. Requests a deploy. Promptly kills the goat to test that we truly have disrupted life and death. One quick payment later the goat is back.
The investor meeting doesn’t go as planned though…
First speaker was Damir Batinović and he rocked his presentation, while his very ambitious demo did let him down a bit. It did a little of what it should have which was show UI overlaid on top of a videostream. The camera was held by a BEAM Bots robot arm, running on a Nerves device, showing some presentational bits by focusing on one of six Fairphone 3 devices, also running Nerves, mounted as a grid. The whole thing was wild. And it worked way better before and after.
Oh, and he progressed his slides and read speaker’s notes with last year’s badge.
Regardless it was a very good talk. Emerge is an incredibly interesting project. I’ve already put it to use turning one of the Fairphones into a music player.
The Elixir in the Enterprise talk that followed was frankly a breath of fresh air in its comparatively sober presentation of real-world team dynamics, organisational concerns and so on.
Then one of our special guests. We wanted to extend some bridges to other communities. We had Kamila from the Gleam community give the marketing talk and later on this day we would have Rob Carbone from the Erlang and OpenRiak world. This was even beyond the BEAM. But also very close to home. Teresa Lopes gave a phenomenal talk on a lot of the fun technical concerns when running Postgres DBs at over 100TB.
Essentially off-topic I had encouraged Julian Köpke to submit a blurb based on some conversations we were having. A call to action for resistance, openness and self-hosting. He delivered with A Rebel’s Guide to Digital Independence. From what I’ve heard it landed very well.
Nelson Vides shared his thoughts on the challenges of observing a high-throughput system without impacting it. Josh Price dove into spec-driven development, Ash and regenerative software. Making good use of available resources as he commandeered the tree and the horn brigade for his own purposes.
Aaron “The Karaoke Beast” Seigo went way deep on maps. Zach Daniel ran a time travel game as a demo for the new Ash Temporal. This time actual time travel, not just the fictional one from last year.
Rob Carbone spoke on OpenRiak. There was also a demo portion which I don’t believe could be fully shown so we might see additional material from Rob on that.
Before the final talk I had the pleasure of thanking everyone who contributed. This blog post will already be very, very long so I will not reiterate that fully here. I was also side-swiped by Flora handing me the most ridiculously sized bouquet of flowers I’ve ever seen. Turning Odin’s words back against me. It was very sweet. We had all contributors that were still around up on stage.
The day and conference was closed out by Quinn Wilton speaking on her recent explorations of particular types of formal verification of BEAM applications.
We did sneak in one last vignette. The goat’s satisfaction in a job well done, Odin’s thoughtless pivot and the final snippet..
git checkout main
The Old Gods and the new CEOs are fickle entities. And the struggles of a developer are not heard in the meetings where decision-makers cackle and plot.
Theater production
Flora Petterson comes from a family of performers. Her mother is a professional puppeteer and her father a professional musician. Flora has toured with her mother way before she ever wrote a line of Elixir code.
“I’m not worried about the puppet stuff, that’s easy.”
Said with the same certainty that I had about not being worried about the Nerves stuff.
We were both right and incredibly wrong.
Throughout the months leading up she did a lot of research on motors, solenoids, power and pulled every person we knew with experience in this stuff into the mix. Eventually she had to leave the research phase and start the building. She was nervous about electronics. I was nervous about puppets.
You should know that we didn’t know each other well when we embarked on this. I had given her a lot of leeway and helped prepare a lot of equipment for the shadow puppet talk at Goatmire 2025 but I had not been involved in making the talk. I had just given her trust and done my best to help. She had certainly given an awesome return on that trust. The talk had been phenomenal. Making some small thematic elements seemed so very doable.
It grew. Plot. Scenes. More puppets. More techniques. Neither me nor Flora know any sanity when it comes to scope. Not early in a project.
In the end we made massive cuts from our perspective. Thankfully the ambition was so massive that it didn’t matter.
Flora and Ellyse showed up to our place in the swedish countryside a full week ahead of the conference and we started to build. We unpacked her bags full of prototype hardware, more or less finished puppets and an animatronic raven. It all worked. It all needed work but this was possible.
We worked on the script. The music. The code and configuration. Flora got hit by a swedish flu and spent two days out of commission. She thankfully was a lot better by the end of the week.
So many people showed up to help. Our in-laws, Celvin from our karate club. Eventually Benjamin “lostkobrakai” Milde and Sam Aaron showed up. Benjamin did a lot of work on the instruments. I made the glock fully operational. Sam made music, was a lovely support in cooking.
We kept building. We also had one massive effort that we prepared materials for but could not do without the architect for it arriving.
Flora built the huge head of Mimer. Our stand-in for an LLM. And unhinged fountain of wisdom. Stina’s sister did most of the painting on it. He turned out so good. I think he was a crowd favorite. Him just showing up was guaranteed laughter.
Ellyse who wrangled visiting babies, wrote Erlang MIDI libraries and worked on the music would also end up being our showrunner. Kind of organically. And once she had that headset on and was making the calls it was a pleasure to act and MC. I could set much of the stage comms aside. The amount of weight she just plucked off of mine and Flora’s shoulders was immense.
The Tree
When we planned the tree it took us a bit to figure out how hard a full size tree could be to deal with. Setup, transportation, fire and heat concerns.
Dan Janowski stepped in to engineer it. He did a very thorough job and also figured out the aesthetics of it. Our plan was never that this stuff was to be perfectly natural looking. My guiding description was “nordic glitch”. Exposed wiring is cool. Dark forests are cool. This is apparently all a bit vague for anyone not brought up in a swedish forest but it worked out.
He had planned it so that when he arrived, assuming all the appropriate parts were there he’d be able to assemble the tree in a couple of hours. That totally panned out. The leaves were assembled but not dressed in their paper and the LEDs had been tested in isolation and segments. Not in full. We had everything for driving them though. Easy. Right?
I believe a full day was spent putting the leaves on and in order. Figuring out LED holders, transmissiveness, opacity and finally wiring. We decided against cutting up the strips and introducing the risk of messing up connections because the 900 LEDs across 45 meters were enough to snake the entire tree.
Along with Dan we had Jenny, who is local to us, she moved between entertaining our children with dogs and ponies and helping Dan assemble leaves. We also got Jonatan Männchen who is an absolute practical machine. The CISO of the EEF wired up the power for the entire tree and would later helm tearing it down after the show.
It was a late evening that Jonatan and Rob Carbone were enumerating the lights and assigning them as stem, leaf, trunk. And when they were done we could light the tree semantically. Green leaves, purple stems, trunk dark.
We did also have one major issue that Gus resolved with the LEDs and addressing where the SPI bus buffering was somehow out of whack with what we were doing and prevented us from addressing all those LEDs. The tree was quite a journey.
While workshops were starting up Dan had finished tearing down the tree and getting everything ready to be shipped to the venue for setting up again. We’d have 4 hours of setup.
Instruments & Animatronics
The show ran from a laptop running an Elixir application called conductor. A very non-fancy LiveView UI running as a cluster on a dedicated wifi network on a very awesome little GLinet travel router that did everything we asked of it.
Every instrument and the tree were on that network and clustered. LEDs were driven live. The songs were sent out and synced up by conductor but played in isolation for timing purposes using Ellyse’s MIDI library.
Gus and Benjamin did a ton of work turning the messy instruments into tight installations.
The raven ended up being offline due to lack of time so it was a battery-powered animatronic that perched on my shoulder and could change eye-color, move his head and generally animate. Flora created him. Gus tightened him up and with Pepe’s help made the buttons on my cuff for manual control. Gus did so much work for this conference. Just a ridiculous unit of a man.
Erlang distribution never let us down. Nerves never let us down. The code just did its thing.
The messiest of our custom tools, which also did its job remarkably well, was a very slop-coded hackertyper kind of tool. When a goat was at the keyboard that laptop showed a MacOS display with a thematic overlay on the projector. On the goat’s screen they saw scene instructions. As they typed, literally anything, it would progress the scene on the display. It would eat errant typing when it needed the actor to pause and it would spawn windows, open things and run weird effects. Sometimes it even did the thunder. Not always which was probably something I missed in reviewing the scenes.
During the show
We had so many people step up and do goat duty. I don’t think I have the complete list. Going from memory and I’ll ask Ellyse to correct me later:
- Jon Carstens
- Gus Workman
- Frank Hunleth
- Ellie Fairholm
- Sam Aaron
- Peter Ullrich
- Quinn Wilton
- Ellyse Cedeno
- Saša Jurić
- Marc Lainez
Frank, Jon and Stina stepped in to do horns. Flora did the bass drum for our introduction.
Stina, my absolute legend of a wife, stepped up and became a full-on actor (Fenrir, the friendly pup) and puppeteer. She also did the trombone for any scene involving Mimer’s head.
The raven was finished in the green room in the hour leading up to the event starting. The puppet portraits of our singers were finished by Bryan Hunter and Benjamin Milde in the green room during day 2.
Saša learned his singing parts during the event. Ellyse developed her dance during Day 3.
The show was improving as we ran it. The Goatmire JIT warming up.
The People
I will have forgotten to credit people in this. It is inevitable. Because so many people were involved. From our favorite tea shop lady to the AV technician Tobias, so many people have been involved in making this work and making it great.
While Flora was here building with us. Over in New Orleans her husband Tom was managing the children and still managed to create three lovely pieces of original music that Ellyse could work into MIDI and iterate on. I cannot get over the fact that this conference had original music written for it.
Getting to see different sides of people I know from the community has been fascinating and delightful. I knew Dan Janowski the advocate. I did not know the engineer and artist. I knew Flora very superficially. Now we’ve been through absolute madness together. I’ve seen Ellyse the lighthearted awesome presenter. Now I’ve seen Ellyse the fully locked in showrunner, the karaoke menace, the performer.
I’ve seen my Nerves Core Team members step up in ways I don’t think they knew they were stepping up in. Jon was a rock. Frank took to the stage. Gus did .. the everything .. everywhere .. all at once.
I knew Benjamin would be a delightful collaborator. Now I’ve had him at my house for half a week solving things together. I’ve seen Bryan Hunter confront cold water after a sauna and speedpaint a portrait.
I know who will tape down cables. I know who will hand me a continuous flow of gaffer’s tape. I know who will squad up with my wife to staple fabric.
There was a lot on my shoulders for this thing. As we went I completely stopped feeling alone. This was a troupe. And as we brought everyone on stage at the end you could see the audience thinning. We made this thing together.
Beyond all the theatrics I’ve heard over and over again how good the talks were. For much of the conference the hallway track was dead. People did not want to miss the silliness and they stayed because the talks were awesome. We are incredibly thankful to our speakers and workshop hosts. And to the program committee that selected them.
I’m incredibly pleased with how everything came together. I’m deeply thankful to everyone who just brought their absolute best, as collaborators, speakers, workshop hosts, attendees and made this event such a magical moment in time.
This post is already long. I hope others will dive deeper into what they did. AtomVM badges, balance robots, Nerves on smartphones. I want to see talks, blog posts, Elixir Forum threads. It has been a beautiful and messy process and we should share it.
We will be making recordings of the talks available. We don’t know the timeline yet.
I will never forget it. I could not be more proud to help bring all this out of this community that I love so much. We are not doing Goatmire next year. So make cool things happen where you are and we’ll keep you posted about our plans in the newsletter.
First time the glock played a song
Underjord is an artisanal consultancy doing consulting in Elixir, Nerves with an accidental speciality in marketing and outreach. If you like the writing you should really try the pro version.
Note: Or try the videos on the YouTube channel.














































































