At the beginning of April (2017), I became a permanent employee at Armakuni. I had been contracting with the company part-time for a while already, but they were growing and asked me to join full-time. This was a very exciting opportunity, not least because they were (and still are) making an effort to hire highly skilled engineers, and being surrounded by people like that is one of the best places to learn. However, due to high demand, most engineers were out on site with clients full-time so we rarely had time together to learn, share and practice. Feeling a little frustrated by this situation, I proposed that we should start a fortnightly internal meetup where we could have talks, discussions and workshops. For every other Monday evening since this is what we have done.
The Format
For the first few meetups, we didn’t define a structure — my hope was that it would start to self-organise and we would collectively own the running of the events. This didn’t play out as I had hoped, and it was clear that some effort
was required to get the most from the events. So, from September onwards, we defined the structure for each event.
The standard structure for a meetup event looks something like this:
- at 7pm there is time for some lightning talks
- around 7:30 we either have some open discussion, a supporting talk or we start the main session if it’s a longer one.
- by 8pm, the pizza is finished and we started the main session (if it has not already started)
Lightning Talks
Right from the beginning, we decided that the content of sessions should not be limited to things which are relevant to our day to day jobs, but they should also include all things that excite and inspire us. As a group of passionate software engineers, these topics are often still tech related — but not always.
So far, lightning talks have covered a very broad range of things including pairing, testing, containers, innovations in current projects, fencing (the sword variety), Palinka, and more.
The Sessions
The types of sessions we have had for our main events are quite varied. Some are hands-on and some are presentations, but all of them have been met with a high level of engagement and enthusiasm.
As a brief summary, this is what we have done in the last few months.
Building Fast Pipelines with Confidence
This is a talk I’ve been working on. The talk shows how it’s possible to build fast deployment pipelines which give you the confidence to continuously deploy. It shows that in order to do this you don’t just have to think about how you architect your tests, but also your software, teams and culture.
Value Stream Mapping
Value Stream Mapping has become one of Armakuni’s key tools. It provides a very clear and visual understanding of how processes are performing and being improved. For most of us, this was a new tool which we had not used before. During this session, Alison did a presentation while drawing at the whiteboard and answering our questions.
Raspberry Pi Automation
This session was about having fun and trying something different. Adrian provided us with some Raspberry Pis and a number of external components (LEDs, stepper motors, piezoelectric speakers). We spent the session connecting these up and learning to control them with different libraries in and languages (Python, BASH and Go).
Testing Architecture with Spring Boot
Ben has been developing a developer training course for one of our clients. The course includes a section on architecting and building software using BDD and TDD. Ben presented a first draft of the hands-on part of this course as a live coding demonstration. At the end, feedback was provided which Ben took back to improve the course.
An Introduction to Elm
I have a personal interest in statically typed functional programming languages, so running a workshop to introduce everyone to Elm was an effort to try and trick some of my colleagues into getting an interest so we can talk about it over lunch.
For the workshop, we built a small UI for building a custom pizza. Elm is a fantastic frontend language and now that we have had that introduction, I hope it might be considered in a future project.
Coding Kata
Bence introduced us to coding kata he had come across. The aim is to build a program which takes a string of input instructions and outputs a rendered bitmap. We did that is a solo coding exercise and then compare approach at the end of the session.
Object Calisthenics
For this session, we tackled the Bank Account Kata while trying to completely obey the 9 rules of Object Calisthenics. We did this in pairs and again, had a retro at the end to compare our approaches in different languages. This was actually the first time I had done this exercise in a dynamically typed language (Ruby) which turned out to be very interesting.
Conclusion
Sharing interests and doing deliberate learning with your colleagues makes the difference between having a good job and having a great job — especially when you work with amazing, talented engineers. To have the opportunity to spend time with my fantastic colleagues at Armakuni is both a pleasure and a privilege.
Looking back over this short time, I hope that those who attended have learnt some valuable things. There were many new things I have taken away from these sessions. I was originally fearful that if I dictated too much how the meetups would be run that it wouldn’t be the group owned event that I had originally hoped for — but after a few months I learnt that it was OK, and even necessary, to own that role (until hopefully one day, someone else will want to take my place). This was a very valuable lesson which I have taken away from these sessions.
Going forward I think we can refine our events further (we definitely need to allocate more time to coding sessions) and I’m sure there will be so many more exciting things to take place events in 2018.