My hacks, experiments and products of 2021
As the year 2021 has finally ended and we open the new chapter of 2022 - I’ve taken a couple of minutes and composed my list of projects, side-projects and highlights that dictated my year.
The Pollpass Pie (Poof-of-concept)
I started 2021 with a proof-of-concept called Pollpass PIE 🍰 - real-time collaborative market research “scripting” tool. The idea was to explore tools and services that could be used to make the design of surveys easier, faster, less error-prone and more user-friendly. The hypothesis or the question was - can we make the design of surveys as easy as writing Google Docs?
In the series of experiments, I evaluated Google’s Firebase or to be precise Firebase Realtime Database. I was looking into technologies that could be used for building modern “serverless” web applications without the usage of traditional “storage” stacks and APIs. The PoC proved that the tech is “ready” for reasonably complex definitions and surveys; however, it gets very tricks to “migrate” documents and assure consistency. The “support” for very complex “validations” that are part of real-life scenarios is quite challenging to achieve. The conclusion at the time was to discontinue this line of experiments and focus on other things. However, the area of real-time editors and the power that they bring to modern web apps are on the rise. Pay attention to this area of innovation!
The Oracle Peak
One of the highlights from my public activity was surely The Oracle Peak project; a project that I did with Andraž Sraka at the end of 2020 and was presented at Kafka Summit Europe 2021 (talk). The Oracle Peak is another PoC where I was exploring the usage of real-time streaming data on top of modern data processing stacks. With the help of Akka, Akka Streams, Apache Kafka, ksqlDB and InfluxDB we proved that it is as easy as ever to “spy” on your neighbour’s Wi-Fi as ever. The final system setup has consisted of several custom “IoT devices” and several locations… to learn more hear me speak at the summit tune in here:
The code for Oracle Peak was open-sourced and published on GitHub for your pleasure and satisfaction.
The Pollpass Voice (Proof-of-concept)
In the second half of the year, most of my focus went towards the exploration of emerging “voice technologies” and their potential and challenges specifically within the market research industry. With the series of PoCs and experimentations, I looked into a fusion of Speech-to-Text and Text-to-speech technologies and how they can be used on the web to replace traditional means of classical surveying. Hypothesis or the question asked was - can we build a tool that would make interviewing as easy as talking to someone? It seems plausible; if its scalable is yet to be seen. :)
Bitmaps support for redis4cats
I’ve spent a lot of time in 2021 learning the wisdom of modern functional programming, particularly with Scala and the ecosystem around it. I dug deeper into Scala’s Cats and the Typelevel ecosystem around it. http4s, fs2, Cats Effect and more. Although community and adoption of ZIO are growing I have yet to also dip my toes into that pool. Perhaps in 22.
My peak of this teaching was my contribution to redis4cats - Redis client built on top of Cats Effect, Fs2 and Lettuce. An open-source library that can be used to nicely and neatly work with Redis. My contribution to the lib and the ecosystem was support for Redis Bitmaps. Bitmaps (also called bit arrays, bit vectors) is the data structure that immediately pops in your head when the need is to map boolean information for a huge domain into a compact and fast representation. It is a very popular data structure whenever memory space is at a premium: OS kernels (memory pages, inodes etc), digital imaging etc. The structure can be used for fast and advanced analytics as well. I.e. imagine computing user-funnels, drop-offs, logins etc as fast as possible.
At this point, I should also thank Gabriel Volpe and all the amazing people on Typelevel Discord that helped and supported my efforts.
BicikeLJ client implemented in Bash
What started out as a mere joke has turned into an interesting social experiment (that got me some new friends 👋). I wrote a command-line Bash application that tells you where is the nearest - available - public bike station. Yes; haversine is implemented in Bash. If you live in Ljubljana or if you just fancy Bash, check it out.
The Ballon Project
In the very last days of the year, I spent some time with tech that I’m least familiar with. I decided to dig my toes into Apple’s Swift, SwiftUI and iOS development. Something that I haven’t done in a while. I’ve built a simple app that shows the real-time situations (location, speed, route) with buses in Ljubljana (Obviously; I also built a custom WebSocket backend on top of public data - but that is another open-source side-project)
Data used to get this prototype going was provided by tocen.si and OnTime API - spearheaded by Dr. Matevž Pesek and his team. Advanced tutoring and help were also provided by my dear friend Jan Haložan, an iOS legend. Thank you both! :)
Talks, conferences and hackathons
As it was still a bit hard to travel in 2021 I haven’t really been “anywhere” so I did some Zoom talks and conferences, hackathons and “inspirational speeches”.
- Kafka Summit Europe 2021 - How to over-engineer things and have fun? I spoke about Oracle Peak (mentioned above) a custom build real-time Wi-Fi spying system that I’ve to build on top of Kafka and ksqlDB. The talk was recorded and slides are available here.
- Gentle Introduction to Akka with Scala - Backend Meetup Ljubljana, June 2021. I was invited to speak about Akka and its ecosystem with the intention to inspire and introduce new engineers to the magical world of Akka. To this day my most viewed YouTube video.
- The Greenhack 2021 - Pavla - Slovenian open-data hackathon. As a vivid lover of hackathons, I participated in now “traditional” Slovenian open-data hackathon where I’ve worked on a service called Pavla. Pavla should help people navigate their cities in a more sustainable way. The idea made it to finals and it was publically presented (recording). Although the thing is now “cold” it still helped me make some new connections and friends. The Business case, slides and code are all publically available.
- Becoming S/W Engineer - The last public out-reach was my talk at my old high school (ERŠ, Velenje) where I spoke to a new generation of software engineers about the skills and sufferings of today’s developers and what it takes to become “great”. I hope that I’ve managed to convert at least one student to follow this road that I love so much. Slides.
Conclusion and 22
I would consider 2021 to be a very successful year. I’ve learned a lot, expanded my network and deepened my knowledge - the “social presence” was noticeable. So for 22 - I hope to continue walking this path and jumping over the hoops and challenges as they come.
Happy New Year and hope yours will be as successful as mine! 😋
This post was also published as an article on my LinkedIn profile.