Michal Kawalec
Senior Full Stack Developer

In this interview, we sit down with one of X-Team's full-stack JavaScript developers, Michal Kawalec.

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.

What motivated you to first get into programming?

I always liked computers and I’ve been reading bits and pieces about programming languages and techniques since primary school. So a natural choice was to take a CS course in high school and it really helped me with understanding programming and its basics. We had ten hours of computer science a week with university lecturers and implemented a lot of algorithms in C and assembly.

Then after starting studies in Mathematical Physics, I had a year when I decided that programming isn’t really for me. That passed quickly after I discovered I’m way better at it than my peers and eased back into it.

I started helping a professor write software that analyzed events from the ATLAS detector, and then got a job writing web apps for the university.

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

Before high school, yes, I was buying books on C++ and HTML and played with mingw on my super old PC. I vividly remember one of the books saying that XML is the future data format every application will use.

Please tell me they were those massive books that weighed 10 kilos.

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

So it sounds like the early days you were motivated thanks to a natural talent and attraction to programming. What motivates you to keep growing with it today?

There are two sides to it.

On one side, it’s helping people solve problems they have and to make their business more efficient.

On the other side, it’s trying to understand how we can improve programming itself.

It’s hard to say which is more important to me, they’re probably complementary and amplify each other. Improving programming itself causes me to read academic papers in my free time and solving real problems keeps everything grounded in reality.

What are some ways you've been trying to improve programming itself?

I’m a long time fan of functional programming. It makes it easier to abstract away the common parts and leads to code that is easier to create and maintain.

I started a Haskell meetup in Poland (called Monadic Warsaw) two years ago. There was nothing happening and I wanted to have a venue to talk to others interested in functional languages. Since then it took off like a rocket ship, we have more than 400 members and have hosted some of the most influential Haskell programmers.

We’re actually having the next meetup tomorrow, with Bartosz Milewski coming with a talk again, since he really enjoyed his stay last time.

Editor's note: And as you'll see below, it's standing room only at Michal's meetups.

What are some of the bigger Unleash milestones you're hoping to achieve this year?

I would like to write a blog post about recursion schemes, do a talk on the same topic (in Brazil in March 2018) and cooperate on some Haskell libraries with other developers.

I wanted to get your take on remote working. Everyone does it for different reasons, what are some of the most important ones for you?

For me it’s about efficiency and freedom. If you work in an office, often you waste a lot of time because you’re required to be in the same place as others. You also tend to not document your work, because you feel you can rely on informal communication. This works to an extent, but becomes vividly painful any time you come back to a project a year later or if someone with unique knowledge leaves the company. With remote work you have to share that information to convey current context to others, so very soon good sharing practices become second nature.

When it comes to freedom, it is closely connected to the efficiency. You can arrange the work in a day in the way that works best for you personally and you’re no longer bound by the strict hours of an office. Of course constraints still persist in remote work, but it’s way easier to make them work to your benefit.

That being said, remote work requires a higher degree of dedication. No one will tell you to do the work, you have to motivate yourself and you have to love what you’re doing. It’s not for everyone, but the payoffs are immense. You just have to remember to get out of the house once in a while.

Last but not least, what dent do you hope to leave in the world? however big or small.

I want to solve hard problems and do interesting things, while at the same time making the world a little better place for everyone. The details I tend to make up as I go: I’ve worked for net neutrality and fairer taxation, studied physics and programmed pretty damn cool web apps.

We'll help you unleash.

Join the 20,000 developers who subscribe to our newsletter.