Who is Saša Jurić? Could you tell us a bit more about your career? What would be your expertise?
I'm a software developer, mentor, and consultant. I wrote my first "Hello World" some 30 years ago, and I've been developing software as a full-time professional for the past 20 years. I've worked on various kinds of projects, desktop apps, frontends, and backends, using different technologies, such as C++, C#, Ruby, and JavaScript. For the past 10 years, my main focus has been on BEAM programming languages, primarily Elixir. More recently, I've been operating as an independent Elixir mentor/consultant, helping teams adopt the language and use it in production. I'm the author of the book "Elixir in Action" and an occasional public speaker at international conferences.
What are you working on in Superology?
I'm collaborating with the Superology backend team in a couple of different ways. First, I've been doing a series of talks on various BEAM-related topics. In addition, I've been working with the team on a company-wide style guide. In a more traditional developer role, I helped the team address some long-standing technical pain points, such as working with the Google Protobuf format and interacting with Apache Kafka. The latter was particularly interesting, as it led to writing a completely new Elixir Kafka client, which is internally implemented as a wrapper around Java's Kafka library.
How could this impact our growth?
The internal talks aim to expand the team's knowledge about the BEAM, help them avoid some common pitfalls of the technology, and allow them to manage the production with more confidence. The style guide increases the code consistency, which in turn makes it easier for people to work with the code they didn't originally write, shifting the code ownership from individuals to the entire team.
Finally, the mentioned technical improvements resolve some issues that occurred in day-to-day development, while the new Kafka client unlocks some features that were previously not available to BEAM developers. All of these things should make the people more efficient and make it easier for the team to grow.
How are you getting on with the people you’re working with?
I've been enjoying working with everyone so far. People are smart, but beyond that, also curious, open-minded, and overall nice. They are exactly the kind of people I like working with.
In this regard, what do you see as our strengths? Or weaknesses, for that matter?
In my view, the biggest strength of any company, and Superology is no exception, are its people. And as I've just mentioned, I think the people on the team are great.
From a technical point of view, it's impressive to see how the team managed to implement a high-throughput, low-latency backend at scale using technology they didn't work with much previously.
When it comes to "weaknesses", I don't really like to think in such terms. Instead, I prefer to think about the potential for improvement. I've been providing pure technical services, and while I see a few areas where some improvement could be made, such as the approach to writing tests, overall, I think that things are looking pretty good.