DevConf Łódź 2023 - A brief report

This year, I had the opportunity to attend two conferences. We went to Prague for WebExpo earlier this year, and now, we (vlko and I) visited Łódź in Poland to attend DevConf 2023 (https://devconf.pl/). We chose this conference because it is reasonably close, but mostly because it seemed to have a good mix of technical and not-so-technical presentations.

(Vlko is my colleague/boss, responsible for a lot of technical and people stuff.)

I find conferences to be a great way to step away from the grindstone and find some space to think about the broader perspective of my work. Also, it brings new impulses and topics, which often bring new insight, inspire and motivate. It gets me to think about stuff I don't have the time to think about during my regular working/living schedule. After returning, some of the effect is usually gone, but I find that attending conferences does have a lasting effect on me and my career.

So, here I am, sitting on the train back home, and I would like to share several thoughts and impressions that DevConf had on me.

The conference takes place in Expo Łódź, with four presentation rooms and the expo floor with partner booths. Talks are 40 minutes, with a 20-minute-ish coffee break after each talk. I like this schedule very much, as the presentation length gives enough time to cover the talk topic in appropriate detail.

The breaks allow you to comfortably make it to the next talk, grab a coffee or a snack, visit the bathroom, have a chat with the presenters or other participants, and last but not least, mull over the presented topic (if it made a lasting impression).

Coffee break material.

There were six talks each day, with various topics. I decided to mainly watch the high-level, inspirational/motivational/career-advice type of talks this time, although I went to two deeply technical, detailed technology talks.

Let's briefly mention the talks I attended.

Thursday

Heather Downing: The Visible Developer: Why You Shouldn't Blend In

The opening keynote aimed to inspire people to make themselves visible in various ways. It covered some underlying "requirements" for that, like being a good match in your job and having results.

The main message was to let others know about your results. Nobody else will let the rest of the world know that you are doing a good job, and, to put it bluntly, nobody gives a shit.

Being visible and having a verifiable track record comes in handy when you want or need a new job, for example, and in that situation, it's usually somewhat late to start working on that. Having a visible online (and offline) presence is beneficial for future you and this is part of my motivation to share this report.

Adam Ralph: Five Common Mistakes With Distributed Systems

This was an engaging talk about the pitfalls of distributed systems. This is a complex topic, and people apparently repeat some avoidable mistakes. The presentation pointed out some of the most common ones on a tangible example of an e-commerce system.

My takeaway is that we need to avoid distributing anything unless absolutely necessary. If it becomes necessary, following your intuition isn't always the best idea, so let's maybe do a bit of research before committing to a system.

I also love the "#1 rule of business" that is reportedly worth a large part of an MBA degree: Take the money. The nature of a business is taking the money and sorting the rest later. It might be a teeny-tiny bit oversimplified, but nonetheless, it is amusing and generally accurate.

Rob Ashton: Implementing Modern Types in C#

Oh boy, what was that blur? Rob had a whole lot to share and limited time, and the presentation was built accordingly. The speed was incredible, and I was lucky that I had an idea about the concepts beforehand. Otherwise, I'd likely sit there with a blank stare for the whole talk.

The presentation was about some really neat features of advanced type systems found in some programming languages (both functional and not functional). Although there sometimes technically is a way to achieve some of that in C# (that we use at work), it's usually one or more of cumbersome, unpractical, hard to maintain, or simply not worth the effort.

It also dealt the final blow to my long-standing interest in Clojure, so... Thanks, Rob, I guess?

Antonio Cobo: Lessons Learned After More Than 20 Years Working In IT

Well, I realized two things here. One is that I'm getting old (I'm not that far from 20 years of experience), and the other is that some people have had crazy career trajectories.

This is likely not very common and visible only because of the selection bias (most people who have a lot to share at conferences have had exciting careers), and it is definitely not my case. I wondered for a bit whether this should bother me and decided that I'm actually pretty happy with both my career so far and my future outlook. I also suspect that I couldn't handle some aspects of work in fast-growing companies, so there's that.

I liked the suggestion about making decisions. When facing a (hard) decision, you can imagine the most powerful and the most fearful version of you and compare the decisions made by those two hypotheticals. This can help when faced with some dilemmas.

Antonio was also the second presenter to recommend Radical Candor today, so I'll finally check it out.

Ewald Verhoeven: Accelerating Software Delivery: Why Your Team Is Slowing Down

We all love bugs, technical debt, and legacy code, right?

This talk tried to change some perspective on that so that we can reduce the number of bugs, manage and use technical debt better, and speed up the delivery in the end. I was happy to realize that we are actually doing a pretty good job at this in our project.

Jimmy Bogard: Demystifying Web API Security in Azure

This was a deeply technical talk about a very specific topic. I hoped to get a general overview of the resources available to secure APIs in Azure, even though we are unlikely to actually use it in production.

Tame Your CTO (& Let Yourself Be Tamed)

The final session was a panel discussion to help ordinary people understand the perspective of CTOs. I was too tired to take notes then, so I won't be very specific, but the discussion brought several interesting insights.

One of the interesting points for me is that the Polish software development market is overvalued right now, with developers asking for great compensation, sometimes for "not great value" (which I felt was an euphemism). The result is that many CTOs have an important question on their mind: whether they can afford to keep engineering and development in Poland or they will need to offshore that.

Some thoughts and impressions

  • The conference seemed pretty laid-back and not very strict with time. I was quite taken aback when we came to the presentation room five minutes before the conference opening and the opening keynote, and the room was empty - there were like two other people in there.

    Sure, the longer talks and quite generous coffee breaks allowed this, but when some of the program was off by several minutes, it seemed to be a bit disorganized. But again, I don't think it's a big deal, and it took some of the conference stress away.
  • Overall, the conference was very well organized. Everything went smoothly, and I didn't notice any issues with the organization. We were well-fed and supplied with enough coffee, water, drinks, snacks, you name it. This allowed us to focus on the conference content without any distractions.
  • I was finally taking serious notes. I snatched a small notebook from one of the booths at the beginning and actually used it the whole conference. In the past, I was reluctant to take notes for multiple reasons feeble excuses, but now, I finally made it simple and easy for myself.

    In effect, I took some notes, even for seemingly trivial stuff. It's excellent for recalling, and without that, this report would likely bring much less detail and be very vague. Also, it was great to be able to quickly jot down whatever comes to mind in several areas. I took a lot of notes about ideas to discuss with my team, with my boss, and even with my wife!

    So... before each presentation, I pulled out my notebook, clicked the pen on, and held them in my hands for the whole time. Even having to pull the thing out of my pocket would be a big enough hurdle to prevent me from taking notes. After the talk, I'd review these notes (some talks had many, some had only several), and if anything additional sprang to mind, I noted it in the appropriate area.
My note-taking equipment.
  • It was refreshing to see so many young faces at this conference. I later learned that the city of Łódź sent some very bright high-school students to attend the conference, which I find awesome.
  • The city of Łódź tries hard to attract IT talent and business to the city. One of the activities to achieve this goal is supporting and helping organize this conference. I very much agree that bringing the IT industry into any location will improve it in multiple ways.
  • After the talks, the conference continued with an afterparty with an opportunity to grab a beer and discuss with the other participants. This time, I found it pretty hard, as most of the participants were Polish, and crashing into a conversation and forcing it to switch to English seemed a bit rude.
Not-so-accurate rendition of the afterparty.

Friday

Berwout de Vries Robles: How Not to Be Wrong in Software Engineering

The second day started with some advice on how to not be wrong, or rather, how to be wrong less of the time, as you won't be not wrong all the time. Some of the advice may seem somewhat obvious, but it's often easy to not keep it in mind.

The talk mentioned the pitfall of linear thinking, where you might not take diminishing returns into account and expect a baby in a single month from nine women you recruit. It didn't mention the positive example of non-linear relations, such as exponential growth or compounding improvements on top of each other, which is also very helpful to not forget when prioritizing work or making decisions.

I also liked one of the conclusions that unlikely events happen all the time, and they make planning problematic, especially when the expected value is infinity (possibly negative).

The talk also used some multiple negatives I didn't fail to not find unfunny.

Krzysztof Cieślak: Bringing the Power of AI to Your Application

Given that AI is eating the world right now, I was pretty surprised that the first AI-related talk took place so "late" in the conference. However, I didn't realize that until after the fact, so it's not a big deal, I guess.

This talk brought a lot of clarity about various prompt-related aspects, like zero-shot, few-shot prompts, instruction prompting, and Chain-of-Thought reasoning. As someone who doesn't have much background in AI, I found this talk very informative. It also covered retrieval and embeddings, and I finally found out what's the big deal about vector databases lately.

Spencer Schneidenbach: Behind the Streams: An In-Depth Look At ML- and AI-Powered Analysis of FPS Gameplay

The following presentation also contained a bit of AI, although not the generative kind that is all over the place now. When watching the talk, I had several moments when I would consider easier, faster, and better working ways to achieve the end result, but given that the goal of the project was learning and it was just a small side project, the chosen tools were perfectly reasonable.

Antoni Łęcki: How to Create Your Development Opportunities Through the Strength of Organizational Communities

The talk about creating guilds within a corporate environment isn't directly applicable to me and our small dev team, but the idea of building communities to foster collaboration and learning is as valid as ever.

Sebastian Gębski: Unicorn's Baby Steps: What Should You Know (& Do) As a First-Time Startup CTO

I wouldn't characterize our company as a startup anymore, but some of the ideas presented apply even to us.

As a small company, we certainly need to realize which decisions are easily reversible and do as much research as necessary for those that aren't.

We need to focus on what we are doing and choose our battles carefully. Otherwise, much larger competition can easily overspend us. Also, improving the developer experience is something I hope to take a look at soon.

This talk also got some gears inside Vlko's head spinning, and we had a candid conversation back at the hotel.

Agata Chudzińska: From Sandbox to Real World: Lessons Learned From Implementing Generative AI Solutions

The last presentation was dedicated to generative AI and how to include it in your products. My most important takeaway was the realization that user feedback is gold. I'm not sure how we can incorporate that in our products and if it can be done meaningfully and on a suitable scale, but we'll need to keep this in mind.

Closing thoughts

It was nice to find out that I can still somewhat competently play Quake 3 Arena. Retro Gaming Club w Łodzi (https://retrogamingclub.pl/) brought several retro computers to try out, like the ones below. There was also a small network with Q3A preinstalled, and it just worked. I don't quite agree that Q3A is retro, but we had a good time with it in between some talks.

The display on the left one was awesome - rendering the contents like an oscilloscope.

We didn't have much opportunity to explore the city. We did visit a science and technology center (https://www.centrumnaukiec1.pl/) located in a decommissioned power plant, and it's well worth the visit. Multiple topics are presented, and the technology part consists of many interactive exhibits showing various technology principles.

The conference was very informative and inspiring/motivating for me - it seems to have come at the right time. I hope this write-up will help someone decide whether to attend it sometime in the future.

It's all inside of that blob.