Michal Kawalec on Improving Programming Itself

Michal Kawalec is one of X-Team's principal software engineers. Driven by hard challenges and a desire to make the world better, Michal is an active member of the functional programming community, often hosting meetups and contributing to open source.

Hi Michal, thank you for taking the time to talk to me. What motivated you to first get into programming?

I've always liked computers. I've been reading bits and pieces (no pun intended) about programming languages ever since primary school. It seemed like a natural choice to take a computer science course in high school, which really helped me understand the fundamentals of programming. I remember implementing a lot of algorithms in C and Assembly back then.

I studied Mathematical Physics after that, and actually decided that programming wasn't for me. That thought lasted for about a year, until I discovered that I'm way better at programming than my peers. So I got back into it. I helped a professor write software that analyzed events from the ATLAS detector, and ultimately got a job writing web apps for a university.

I'm a long-time fan of functional programming. Abstract away the common parts and write code that is clean and easier to maintain.

Were you mostly self-taught in your early years of programming then?

Before high school, yes. I was buying books on C++ and HTML, and I played with MinGW on a very old PC. I particularly remember one of those books saying that XML would be the data format every application would use in the future.

From one of those massive books that weigh 10 kilos?

This one was pretty small. Around a hundred pages on HTML and the amazing new inventions of DHTML.

What motivates you to keep learning today?

There are two sides to this. One, I want to help solve people's problems and make their businesses more efficient. Two, I'm trying to understand how we can improve programming itself.

Hard to say which one is more important to me. They're probably complementary and amplify each other. Improving programming causes me to read academic papers in my free time, while solving real problems keeps me grounded in reality.

Michal talking about the FluxApp Framework

How have you been trying to improve programming itself?

I'm a long-time fan of functional programming. You can abstract away the common parts and write code that is clean and easier to maintain.

So I started a Haskell meetup in Poland called Monadic Warsaw a few years ago. I wanted to have a venue where I could talk to others interested in functional languages. It took off like a rocket ship. We have hundreds of members and have hosted some of the most influential Haskell programmers.

From one of Michal's events

I wanted to get your take on remote work. Everyone does it for different reasons. Why do you work remotely?

For me, it's about efficiency and freedom. If you work in an office, you often waste a lot of time because you're required to be in the same place as others. You also tend to under-document you work, because you feel you can rely on informal communication.

While this works to an extent, it becomes vividly painful that this practice is not a good idea when you have to return to a project a year later or when someone with unique knowledge leaves your company.

With remote work, you have to share that info to convey context to your team members. Good sharing practices quickly become second nature.

There's the freedom, too. You can arrange your daily work so it works best for you personally. You're no longer bound by the strict hours of an office. Constraints still persist to a degree, but it's easier to make it work for you.

This being said, remote work requires a higher degree of dedication. No one will you to start working, you have to motivate yourself, and you have to love what you're doing. It's not for everyone, but the payoffs are immense. Just remember to get out of the house every once in a while.

Finally, what dent do you hope to leave in the world?

I want to solve hard problems and do interesting things, while also making the world a better place for everyone. The details of that, I tend to make up as I go. I've worked for net neutrality and fairer taxation, studied physics, and programmed some pretty cool web apps.

Awesome to hear. Best of luck  in your journey!