Tag Archives: Gamedev

I thought soft skills training was snake oil. Then I took one.

For most of my career I was convinced that soft skills trainings sell false solutions — vague frameworks, feel-good slogans, nothing you can actually use on Monday morning. So when I signed up for Difficult Conversations and Emotional Dysregulation at Kozminski University, my expectations were low.

Two intense days later, led by Magda Żmijewska — an executive coach with 25+ years in business and a former HR manager — I walked out with a changed perspective and, more importantly, a set of tools I’ve been using ever since.

What actually stuck

Difficult conversations can be iterative, not always final. This was the single biggest shift for me. A hard conversation doesn’t have to resolve everything in one sitting — you can approach a problem piece by piece, clarify, improve, and come back to it. The training frames this with the Deming PDCA cycle applied to communication: plan, try, check, improve. Once you stop treating a difficult conversation as a one-shot, all-or-nothing event, most of the fear around it disappears.

Low tension is the foundation of good communication. Stress pushes people out of their creative, productive mode and into survival mode. A surprising amount of the toolkit is simply about reducing tension: no surprises (send an agenda, especially for a hard meeting), take a 5–10 minute break when a discussion gets emotional instead of postponing it “to next week,” and control your own voice — calm, deliberate speech de-escalates more than any clever phrasing.

Open questions beat ready answers. Instead of jumping in with judgments or solutions, ask: “How did it go?” “What was the biggest challenge?” “What surprised you?” Only after that: “What would you do differently next time?” It sounds simple, but structuring feedback conversations this way — positives first, difficulties later, improvement last — completely changes their dynamics. It also taught me to stop “rescuing” people by finishing their sentences.

Communication styles are a practical lens, even if you doubt the theory. The training uses a DISC-style model of communication types and their stress triggers. I went in thinking this was pseudoscience — and I’m still not going to defend it as hard science. But as a working model for adapting how you talk to different people, it delivers real results. I also learned something about myself: the conversations I find hardest are the ones centered on emotions, which told me exactly where I need to grow.

Kindness is a strategy, not a weakness. Genuine goodwill, paired with being “soft on people, hard on problems,” gets you remarkably far — even with people you’ve just met.

Why this matters beyond one training

This was my first extensive soft skills training, and it recalibrated how I think about the whole category. The difference wasn’t the topic — it was the trainer. Magda combined solid theory (psychology of communication, basics of the neurobiology of stress) with exercises that made the tools stick: group work on communication styles, Gestalt chair technique for repairing strained relationships, facilitation frameworks like the “12 powerful questions” for teams in trouble.

The practical result: difficult conversations stopped being something I avoid. I now have a repeatable way to prepare for them, run them without escalation, and — when they go sideways anyway — return to balance and try again. That’s a skill that pays off in every code review, every planning meeting, and every disagreement with a colleague or client.

If you’re an engineer or specialist who rolls their eyes at “communication workshops” — I was you. This one is worth your skepticism being proven wrong.

Refactoring: Improving the Design of Existing Code

Well, it took me 10 years to read this book. Seriously. Fowler wrote a second edition during that time, making the book way more relatable for a modern programmer.

I took many courses and matured as a programmer a lot during this time, yet I had so much trouble with this one. The reason is pretty simple: Polish translation of the original book is famously atrocious…

But hey, I’m getting way ahead of myself. Let’s start from the beginning!

At some point of your career you get annoyed by the code you produce. You might figure out what’s wrong by yourself, but when you’re neck deep in it, it’s hard to get the perspective. You can feel the smell, but you’re not always sure where it’s coming from. And Fowler’s book is going to give you that perspective.

I started reading Refactoring in 2025, while it was initially released in 1999. Sounds like madness? Well, some of the parts of the book definiitely feel dated, but the general principles are still valid. That’s because you don’t need to reinvent the wheel (which is exactly why I hate “modern” web frontend tech). The book teaches you that the code needs to be readable – it’s written for humans, not for machines. It also gives you a big chunk of solutions to frequent problems that we all have to conquer.

I’m really happy I finally found the time to grab it from the top of my Pile of Shame. It was a nice refresher and a good exercise. I just wish I had more opportunities to focus on code… It’s funny I recently did some contract work on a hellish landscape that was WordPress with hardcoded WooCommerce stuff. HTML entangled within business logic inside a theme. Like in “good” old times. It would be such an excellent case for implementing the solutions from the book!

TeamCity – updating Perforce SSL certificate

I recently updated SSL certificate for a Perforce server. Turns out TeamCity had issues with p4 trust not accepting the new server identity.

At this moment TeamCity’s documentation says to set the teamcity.internal.perforce.forceTrust=trueconfiguration parameter to the related project or build configuration” See for yourself at the documentation. This is simply wrong!

Thankfully TeamCity’s bug tracker has the proper solution. Turns out you have to navigate to the diagnostics tab in admin panel, go for internal properties and set it there. For reference, the link will look like this:

https://teamcity.example.com/admin/admin.html?item=diagnostics&tab=dataDir&file=config/internal.properties#!:config

That’s it! Don’t forget to disable the parameter once the new identity is picked up by TeamCity.