Engineering @ Swym and other stuff. Opinions are only mine, when not useful.
The day began with that brisk energy that one can sense only when a passionate group comes together. There was already a precedent set during the pre-conference workshops that were a big hit (as heard from my source, Neethu who took part in one of them)
Okay, time for big bold words (literally)
As the ratio of projects owned to the number of contributors grows ever more skewed, there is a slowdown in general progress, be it towards a better tooling, better libraries, better features, etc. since there is only so much that can be done. This calls for more contributions and contributors to these utilities we use every day.
The keynote raised an interesting point, that is very relevant
Collaborate > Competition
Focusing on making 1–2 awesome tool-sets instead of fragmenting into 10–15 modules can help Clojure step forward to the future at great speed and depth.
There is a steady stream of newcomers to Clojure either learning on the job or wanting to learn because it is awesome (not limited to those two of course). Unfortunately, the process of learning doesn’t seem to have improved too much, even from the time I started on Clojure (which was 2015).
The bottom line —new entrants need better docs (read easier and more complete) with more examples and more showcases of how things scale with Clojure. Too many complaints of not-too-complete information and missing real world application of specifics.
Opinion — This state is probably because a lot of Clojure users either have spent a good amount of time on LISP or have learnt it the hard way by stumbling through it.
People with a background of working in not-so-ideal situations also tend to thrive better. For eg: Developers who have literally burned hours trying to make cross-browser compatibility a thing (IE6 included of course), or worked with XMLs as the only sane choice for sending a response back to the client or insert-more-un-ideal-environments. They tend to have sufficient tolerance embedded into them that help overcome the initial hurdles (like getting a REPL going as you want or finding answers to unanswered questions of deployment) to enjoy the rewards. Clearly, the benefits of Clojure are definitely worth the price.
But that’s not true for everyone, so there are many opportunities to explore. Plenty of barriers to be broken down, bridges that can be built.
Personally, I have referenced many articles online and written a few posts as well, but it became overwhelmingly clear through the course of the day, that this is a big problem requiring attention — both internally within your org and externally in the Clojure community.
Firstly —everybody is hiring
Plug aside, this makes for an exciting time to get into the thick of things. Plenty of opportunities across the board — APIs, web apps, data processing, etc. Also, the scale of operations is mind-boggling, you know your work will be getting a lot of action (read stress).
This means there is an additional requirement for a smooth and safe on-boarding experience. It goes hand-in-hand to make the hiring process truly successful.
As I was prepping for my talk on macros (read “rewriting all my slides overnight”), I had to walk through not just memory lanes but most of the documentation again to build out my macro examples. The more you write, the better you are at retaining some of it.
Another example from a well put talk almost at closing time — Lazy sequences are worth iterating over a million times, because when realization hits, it can be costly. As this was being discussed on stage, I was totally looking up the source code on my phone, I admit no shame.
Being sparsely represented at events or meetups, it was clear that nobody had really heard of Swym, or that we have been using Clojure to run a heavy scale platform coping up with the peak demands of multiple BFCM weekends for our growing merchant base. For eg: Our Clojure based stack along with infrastructure tooling helped us handle a big chunk of all purchases made across the world during BFCM 2019 without burning too big a hole in our pocket. So I can imagine there being more of us who are outside the public view, those who are just heads-down in their own problem-solving. Perhaps it is a good time to raise our head up and participate. (Good time as in better late than never)
Talking numbers, systems built with Clojure are hitting some serious scale, without naming names or numbering numbers. There is no denying that.
(Unpopular Opinion - I feel like talking scale numbers are starting to sound more and more like how you read the latest round of VC funding. It is a useful number to know, sometimes good to have, but not always something to evaluate with)
A quick take. Clojure being the elegant language it is, lends itself to be useful in more than just making the data/scale go boom. JNA (Java native access) has now made it possible to literally REPL into IoT devices. Nothing like a “light bulb goes on” moment, here it happened in front of us on the stage :)
Efforts toward building an inclusive community for all
Interesting swag giveaways. The range included totally free (really) to quizes to a social-connect bingo that involved talking to people and filling up your bingo sheets :)
Take the goodness, and make the other parts better (a la Jude)
Next year, if not earlier :)
P.S/Disclaimer: All of the above is from my point of view, i.e totally my opinion.