Talks and Podcasts

Podcast Episodes

  • The critical channel - I’m a co-host at The Critical Channel. We talk about leadership, culture, engineering, and much more.

Designing for failure

Recently, we’ve discussed failure and resilience in a distributed system architecture. Unfortunately, failure has been neglected for quite some time in our industry. Systems have become much more complex and challenging, especially in the Kubernetes era. With all this new complexity comes the question: how can we design systems to be resilient and ready to fail? This is something that mission-critical systems had to think of first, but many services (until today) neglect the importance of this. There are many concepts we can learn and use from other fields like electronics, aviation, or naval industries that will help us be prepared for the unexpected.

In this talk, I would like to talk about how to design a system for failure. What pitfalls and gotchas do we have to be prepared for in a microservice environment? How can SRE principles help us get there? And most importantly, how do we put this into practice?

Recording and slides. Last presented at Golang Poland Meetup 2020.

Discovering the tech lead in you

When you transition from a developer role to a tech lead, you realize how lonely it is, predominantly if you work in a smaller company. Your responsibilities and accountability grow, and when you have questions, you don’t have many people to look out for when needing help. What exactly does being a tech lead means? What are the problems that you will have to solve in this role? How can you get better at it? In this talk, I’d like to share that experience with you and hopefully shed some light on this new journey you are going through (even if you already are a tech lead).

Outline.

Revealing the world of service meshes

Software engineering is a constantly changing world. We went from monoliths to SOA to microservices and now lambda. We started simple, 5 services, then 10 services, a 100, and now we see companies with 2000+ services. Service mesh technologies have gained a lot of interest over the past years, and High-traffic companies started to add a service mesh to their production applications. But what is a service mesh, exactly? And why is it relevant to you?

I want to explore the ups and downs of using a service mesh in this talk. My goal is to make sure you are well informed to make an intelligent decision if you want/need to use a service mesh.

Slides.

Building hexagonal architecture Go applications

Have you ever found yourself thinking about how you should structure your code? And what kind of architecture should you follow? If you come from object-oriented languages, usually, you will choose some classic models like MVC or Layered. In Go, we typically use a flat-file architecture and try to structure it logically, following the idiomatic Go. What if there is something that will encourage you to replicate your company’s domain, gain more maintainability, and it’s easier to test? I’d like to bring you the hexagonal architecture in Go, showing how we can make projects more maintainable, testable, and easy to understand.

Slides.