Last week I attended Craft Conference in Budapest, Hungary. Here’s the description of the event:
CRAFT is about software craftsmanship, presenting which tools, methods, practices should be part of the toolbox of a modern developer and company, and serving as compass on new technologies, trends. You can learn from the best speakers and practitioners in our community.
It was definitely one of the best conferences I’ve ever been so far and I’m happy to share some highlights!
Workshop
For me the conference started with another Scala/Akka workshop. I taught almost 20 people in a full-day workshop and we covered a bunch of topics - from Scala basics to Akka Clustering and Persistence.
My class is working on the first #scala assignment this morning pic.twitter.com/eq0PRg6KrA
— Yaroslav Tkachenko (@sap1ens) April 25, 2017
Big thanks to Balabit for hosting the workshop! By the way, they work on a really interesting product and use Scala, Akka and Spark - check the Scala developer position if you’re in Budapest and interested in this stuff.
Conference
The main event was hosted in the Railroad museum and most of the participants arrived there on a private train! That’s pretty much everything you need to know about the level of organizers ;)
Just a few more photos for you to get the atmosphere:
Finally, some of the talks I really enjoyed:
Dan North - Decisions Decisions
https://www.ustream.tv/recorded/102892648
Highly recommended to everyone! Dan gives some great examples about different trade offs in our industry. Do you think that automated tests are better than manual? How about deployment? It’s not that simple… watch the talk!
Daniel Stenberg - HTTP/2, the good, the bad and what’s next
https://www.ustream.tv/recorded/102894021
Danial made a nice HTTP/2 overview with a bunch of deep details. Wait until the questions, because those were great too.
Martin Thompson - High Performance Managed Languages
https://www.ustream.tv/recorded/102861825
Really interesting talk from Martin about some low-level details for building high-performance applications in languages like Java and JavaScript. Lots of deep technical knowledge.
Yaroslav Tkachenko - Why Actor-Based Systems Are The Best For Microservices
https://www.ustream.tv/recorded/102894272
Obviously, I want to mention my talk as well :) I was pretty nervous, since it probably was the biggest event I’ve ever spoken.
I explained that messaging and event-driven architectures are still very important in the microservices world, especially if you want to build reliable applications. Also talked about the way actors can be used to leverage asynchronous communication.
Ashley McNamara & Steve Francia - Building amazing cross-platform command-line apps in Go
This was the first hands-on session I attended. Really cool intro to Golang and Cobra - CLI tool behind Docker, etcd, Kubernetes and other Golang libraries.
Here’s the slides, so you can try to build an app in Go yourself: https://docs.google.com/presentation/d/1rsc6Wxd4JEB3celr7sTs3y6vOwpKWAxn-n-q-mg-z5Y/edit?usp=sharing
Claudio Ortolina - Painlessly functional and concurrent: An introduction to Elixir
https://www.ustream.tv/recorded/102836446
Another hands-on session I attended. Very basic introduction to Erlang/Elixir from concurrency perspective and an attempt to implement one of the main OTP patterns (gen_server) from scratch - great content! Here’s the slides if you want to do it yourself: https://www.dropbox.com/s/gf0iq0bv0rcra70/build-your-own-small-scale-otp.pdf?dl=0
Theo Schlossnagle - Better engineering via better discourse
https://www.ustream.tv/recorded/102894526
And finally, the last talk of the conference. Theo is a great speaker and he talked about the way we’re all supposed to participate in conferences and get the maximum value from them. I wish it could the first talk, so we would apply the knowledge right away :)
Also, great story about travelling from him as a bonus. Don’t miss it.
Instead of a summary
Unfortunately, one of the best talks wasn’t recorded. Damian Conway is a true real wizard.
Damian Conway IS KILLING IT! Programming in Latin 😄 #CraftConf pic.twitter.com/gC8h30wk5O
— Yaroslav Tkachenko (@sap1ens) April 27, 2017
So, just think about this. He built a parser in Perl to execute code in Latin. Yes, full real language with loops and conditionals, a bunch of built-in functions and etc.
What’s more important, Latin is an inflected language and he was able to use it!
In his snippets, you can change the order of operators and arguments, for example, and the program stays valid!
You can check this gem here: http://users.monash.edu/~damian/papers/HTML/Perligata.html
On my way back to the hotel I had a chance to talk to Damian and I found out that it took him just a few days to build the grammar and the parser for the language (he knew Latin already).
That’s what I call a true craftsmanship.