After two years of absence I was able to attend the 2019 edition of JSCraftCamp thanks to the very generous conference policy my employer Nordic Semiconductor has. (This meant flying from Trondheim to Munich but I compensated this flights CO₂ emissions with Atmosfair.)
In this post I want to write about how I experienced JSCraftCamp and my key take-a-aways.
JSCraftCamp belongs to a bigger family of Software Craft conferences around the globe and is entirely organized by the community. The event is free for attendees and all costs (e.g. for Coffee, Food, Location) are covered directly by sponsors. If you want to sponsor this event in the future, check out this dedicated page — sponsoring starts at 100 €.
It was great so see that Sponsors also came from the community and took part in the open space, this created a much better atmosphere compared to other conferences where sponsors engage with a much stronger focus on hiring and selling services.
With over 100 participants signed up for both days, most of them showed up on Friday. The Saturday saw more no-shows. I guess this is understandable given that the weather on Saturday was really good.
A word on food, because this is always one of the big headaches when organizing a conference: it's time to default to plant-based food.
It was sad to see that the BBQ during the party on Friday focused mostly on serving supermarket meat, while vegetarians and especially vegans had a hard time finding a decent option.
I recommend conference organizers to look into options that can be prepared in advance and can serve everyone: chilies, lentil soups, or pastas can all be prepared in big portions, in advance and without needing to use meat or dairy ingredients.
I really loved the lunch: Burritos were served with meat, but also in sufficient quantities as vegetarian and vegan option, and everybody could be served at once ...
Coffee supply by Peerigion was amazing, they even had milk alternatives!
This was my first marketplace which was facilitated by Cecilia Maria Zannini and she did an incredible job of opening up the space and creating an inclusive and welcoming atmosphere. You could really tell that she cared deeply about making these two days special.
Both days had a good variety of sessions:
My key take-aways
I tried to find a good balance between sharing and helping others while also getting input on some of things I am struggling with.
This was a pull session on fp-ts where we tried for an hour to fix a seemingly trivial function code example I had, where I wanted to turn a non-functional exception throwing code into an implementation which does not rely on exceptions for flow control.
After we did not manage to solve it in the session, I pushed the most simple example on GitHub.
After going back and forth and getting more feedback from attendees, I finally managed to solve it on the next day:
This is why I love Open Spaces so much!
Ask me anything: GraphQL
The questions I got made once again clear that GraphQL seems to be a technology that offers great benefits but those benefits are not immediately obvious to everyone. In this session I mostly talked about concerns of backend engineers and what they need to know in order to be open towards the adoption of a GraphQL API.
Brown Bag: Hexagonal Architecture
During lunch I hosted a session on hexagonal architecture, by giving a walk-through the code base of a recent project of mine but I ended up running out of time because it took longer than expected to come to the core starting from the outermost view of our system. I started with the C4 model's context diagram which is great for explaining the entire system but I should have prepared this session a little better to actually receive more feedback — which was the point for me to host this session: get other peoples opinion about the system I designed.
Learn to collaborate
This was a great session around the topic I am working on for my next talk: how can I become better at collaborating?
We collected skills and actions that make us better collaborators, and the main takeaway for me of this session was that it seems that we can grow our set of strategies to deal with communication or collaboration issues, but it is hard to change your own empathy — some of the "skills" mentioned on the flipchart are harder to change than others but it's possible to improve here in similar ways like with programming. I just don't work on improving them as structured right now.
In this session we mostly talked about how we can deal with the no longer unlikely event that npm will shut down. We looked at some alternatives and especially for browsers there is already good support of fetching dependencies without bundling them from CDNs.
The pain point will be moving away from a centralized service which will create more problems in terms of reliability (if fetching dependencies from many external sources) or costs (managing your own registry).
Things to look into are:
- using nix: https://github.com/adnelson/nixfromnpm
- and for browsers to user script type=module and resolve dependencies from URLs.
There is even more to discover even now that the JSCraftCamp is over:
- the hashtag #jscc19 tracks what happened during the event
- there is the #jscraftcamp_org channel on the Software Crafters Slack to keep in touch and follow up
- you can find the session notes for all sessions in this repository.