My year 2022 in review
2022 has been a busy year both geopolitically ❤️🇺🇦 and locally. I have done a ton of Fulcro, played with Rust, got into managing projects and people.
This is my first whole year in Ardoq and I am still loving it. I came to fullfil my dream of being full-time Clojure developer and (aside of that, because I still love Clojure!) I am staying for the friendly, open "big family" culture and awesome people. I started the year by working on our slow, stepwise transition from Mongo to Postgres (I still might one day write about why we sadly did not pick Datomic in the end 😭). It was an important and exciting task. As changing the DB your business is built on, while everything keeps running, always is. Later I took over one of our teams, helping it deliver faster, smaller, more frequently. I have also been pulled into hiring and people management, which is not as much fun as Clojure but is far more important. I still have a great deal to learn here.
I love Clojure (haven’t I mentioned that already?) but I also love to learn and want to be able to do stuff where Clojure is not suitable. So I have picked up Rust again, and this time actually started coding a small desktop photo manager. It inspired me to hold a lightning talk about how I want all software to be written in Rust (and this safer and economical with resources) but never want to write any business application in it 😅 (because you have to deal with many technicalities rather than just the business). The work on my app has stalled somewhat when I discovered that despite Rust’s top notch performance, rendering 20-50 photos on the screen quickly might be impossible, at least without some smart hacks. But I hope to get back to it, when time permits…
I have written a couple of blog posts this year, primarily about Fulcro:
Clojure is in fact a trinity - of language, interactive development, and structural editing - learning tip for newcomers
PostgreSQL: From JSON to table and back - update the value of a jsonb column based on its content in pure SQL
The trouble with list components in Fulcro - why you might not a <something>List component and what to do if you really want one
Code Study: Making code more functional - getting rid of low-level state management in a function
In December 2021 I have also started my Holy Dev newsletter with gems from the wider web and few words about what is going on in my open source and other efforts. So it has its birthday now 🎂! My readers learned about Clojure, Rust, WASM, software development, interesting tools, with a little fun mixed in between. You can find all the links I post there also at the Holy Dev Tumblr feed. Some of the highlights from the gems are Chris Houser’s talk Condition Systems in an Exceptional Language and the article Little Languages Are The Future Of Programming.
I have discovered Asami, Paula’s in-memory / on-disk graph database somewhat similar to Datomic. It seemed as a good fit for small webapps without scaling needs and I have thus created Fulcro RAD Asami plugin to make it possible to use it with Fulcro Rapid Application Development. Paula was super nice and very helpful. I am currently building a small ERP with fulcro-rad-asami for a friend.
I have also held my Fulcro introduction workshop online and at NDC Oslo (there together with my Introduction to interactive development). There is enough interest in Fulcro and I wanted to repeat the workshop but somehow did not find the time. Next year!
I have also had 9 awesome mentoring clients, who I have helped with their Fulcro projects. I love to do it because it feels great to help people and because it always shows me ways to make Fulcro more accessible. So thank you all!
Lastly, I have prepared the talk Unscaryfying Fulcro - the web framework you didn’t know you needed but so far have not managed to "sell" it to a Clojure conference. I think it would be awesome so fingers crossed for 2023!
I continue expanding my use of Babashka, which is awesome and getting ever more powerful. Scripting in Clojure is so much better than bash! I am also trying to get more productive with Portal, which fits nicely into my IDE thanks to its plugin. I have also discovered Flow-storm debugger, which has helped me a few times and is absolutely a tool to have in your belt.
I have contributed a few improvements to the Clojure DB migration tool ragtime and of course to the Fulcro family of libraries.