By Lukáš Volf | 20.9.2023

iOS tech lead Michal Svěrák: An error in the code had me fly to Israel

Development – 17 min read

ios developer standing in the hallway with a macbook

The mobile development team at Applifting is full of talented developers with a handful of complex international projects under their belts. They develop apps for iOS, Android, and Flutter. This time, we wanted to introduce the “frontman” of the apple-bearing branch, a team lead and simultaneously a father of two children, Michal.

Michal and I talked about the role of a tech lead and what it entails, what Michal's beginnings at Applifting were like, what some of the most common client challenges he’s dealt with are, and what he looks for in candidates. We also discussed his hobbies, the first app he worked on, the growing importance of AI, and the reason he chose mobile development.

First things first: how did you become a developer? Your journey was quite unconventional.

That’s true, I majored in environmental protection at Charles University. During my studies, I started looking for jobs, and I wound up being an IT supervisor for an American university. My job was to take care of all the computer labs, networks, and technical matters in general.

I realized there and then that I was into IT. When things weren’t breaking, I was just killing time, waiting for them to do so. So I started learning to code—I spent about three months learning Swift, which was a lot of fun.

After about two years, the university decided to outsource the position to an external company, so I began looking for a junior developer position. Roughly two months later, I found one.

"I like the syntax of Swift. It reads well, and it’s easy to use."

Why Swift and mobile development in general?

I was a big fan of Apple products, and at the time, Swift was being introduced as a new language. Plus there were good learning resources and support, so I was curious. I generally like the syntax of the language; it reads well, and it’s easy to use.

ios developer holding iphones

What was the first app you made?

It was a CrossFit workout timer of sorts. It was mostly just me trying stuff out, so I never released it.

Then I made this simple to-do list app called 3 Big Things. Every day, you can set a maximum of three things to focus on. That way, it doesn’t turn into one of those never-ending lists. This time, I did release it on the App Store.

Is there anything you’re working on right now?

My latest project is a Tour de France trivia game for cyclists. You can test your knowledge, unlock new levels with points, and so on. Nothing too groundbreaking, but I learned a couple of new things again, and I figured it was worth releasing. It’s been out for like a month, and even without marketing, some 35 people have downloaded it.

I take it you’re into cycling?

Yeah, I spend about 8–10 hours cycling every week. I have a road bike and a cross-country bike that I do marathons with, the ones that are like 50 kilometers. I’m in it for the experience, I don’t care too much about where I place. Road cycling is more about training. I do like seven thousand kilometers in a year. I’m at about five thousand now.

Apart from cycling, you’re keen on fishing, right?

With our second child now, there’s very little time for it. Two hours on the road to Šumava to do some fishing, then two more hours on the road—that’s four hours total just in the car. But going for a four-hour bike ride lets me spend almost the whole day with my family.

It is a beautiful sport, though. You get to visit stunning places, wade in rivers, outsmart some fish; it reminds me of Brad Pitt in A River Runs Through It. [laughter]

"Competency models show you exactly what you need to do to get to a senior level and earn more money."

Back to work: you’ve been with Applifting for six years. What brought you here?

As a junior fresh out of school, I wanted to continue working on my programming skills. I went through a couple of smaller companies, but things never quite worked out. Then I stumbled onto this company that was launching a free summer course. Whoever made the best app would get a job offer.

I took some time off and went every day, spending eight hours tinkering with the app and learning new things. I ended up winning, but the job offer never came. So I had to figure out what to do next. I was running out of money, and my wife was pregnant with our first kid. I wound up reaching out to a handful of companies and did some interviews.

Ultimately, I liked Applifting the most. What won me over was the structured learning environment. Competency models give you a clear path forward, so you know exactly what you need to study up on and do to get to a senior level and earn more money. I found this transparency fantastic.

How many of you were there back then?

I joined the company as a medior developer. There were two of us doing iOS, two or three people on Android, and one tester; so six people all in all. Now there’s 10 of us in the iOS team alone. I still remember when we were all crammed into a small apartment in Karlín.

I was working on a couple of smaller projects for Škoda and this Israeli startup. Bit by bit, I earned my stripes as a team lead, and I got to lead a team that built a Know Your Customer (KYC) framework for Erste—a digital customer verification system. Some two years later, I worked my way up to a senior.

ios developer talking with a colleague

What exactly does being a team lead at Applifting entail?

You won’t run into any project managers here. Projects are led by developers who know its ins and outs. The problem with most project managers is that they promise the world without actually knowing if it’s even possible to deliver on what they’re promising. That’s one thing we try to avoid here, so it’s usually the most experienced developer on the project who is the lead as well.

It is pretty time consuming, however—with the KYC project, I spent around 50 percent of my time just managing people, talking to the client, dealing with scrum, tickets, requirements, all that stuff. It was a lot, but I did actually enjoy it. Team leads are responsible for the project and its success, so they earn some extra money for that.

"We established the tech lead position. They keep an eye on a specific technology, pushing it forward, trying to foster a sense of community among developers, and encouraging people to share experience and help one another."

You are also a tech lead. What does that involve?

While team leads take care of people on a project, there wasn’t much of a connection within the technologies themselves. We would hire a developer and put them on a project, but they didn’t have that sense of belonging to something larger. You just get assimilated by the client all too quickly—you get access to Slack and Jira, you sit with their people, and before you know it, you are out of the Applifting loop. The only thing that connects you to the company is its name on the invoice.

That’s why we established the tech lead position. They keep an eye on a specific technology, pushing it forward and trying to bring the developers back into the fold so that they feel like a part of a community, so that they can share their experience and help one another. When somebody needs a hand, they have someone to turn to. I make sure to take time out of my day to assist people with complex issues. For more general stuff, we also have a Slack channel, where we help each other out.

Tech leads also do project estimates for the clients. Sometimes, we assist business people as well when they come to us with questions about how difficult something will be, if we’ll be able to do it, and how.

Do you throw any get-togethers here and there?

Every two weeks, we have a meeting where we discuss what’s new. Every now and then, someone presents on some sort of interesting topic to keep us on our toes. We go out for lunch together, and we do team-building activities four times a year.

In any case, you must constantly be up to date on trends and updates, right?

For sure, you just have to. It’s also a way to represent the company, in a sense. Last year, for example, we organized two iOS meetups to share interesting news with the community. At the first one, I spoke about what the path from a junior to a senior looks like, and then I helped organize the other one.

ios developer coding on a laptop

"I draw a lot of inspiration from working with companies on different projects."

And what is it that inspires you?

Working with multiple companies gives me a lot. Having gone through multiple teams and apps of all sizes, I always try to observe and learn as much as I can.

A lot of the things I like to use I’ve picked up while working for Erste on George. There are some really smart and pragmatic developers there. Jablotron, on the other hand, allowed me to experience a more ragtag approach and try my hand at new technologies.

In terms of development, do you use any specific technologies or frameworks?

I’m not a huge fan of third-party frameworks. I like to use the tools Apple gives you right out of the box, like Xcode, Swift, and also lots of SwiftUI, which we’ve been using a lot these days.

Building things yourself is just more reliable, it gives you control over them. The only exception might be Alamofire, but even with that, I tend to use URLSession if I have the choice.

So the Apple toolkit suits you. Anything you’re missing, though?

Xcode’s stability leaves something to be desired; updates tend to break things sometimes. The Accessibility Inspector has been particularly unbearable lately. One thing I’d welcome is an AI extension for Xcode, something like the GitHub Copilot. That would probably come in very handy.

Are there even any AI tools for iOS? And do you use AI for work?

I make use of ChatGPT quite often. I like that I can dig deep into technical topics and get an immediate response. There’s no need for me to create a prototype and spend hours testing it.

As far as iOS development goes, it’s still early days. Apple hasn’t fully embraced AI yet, though I expect they eventually will. It could speed up a bunch of things. Take a look at the transition from UIKit to SwiftUI—you had to code everything manually and just imagine what it’d look like. Someone without the experience would just stare at it, completely clueless.

Then SwiftUI came along, and designers could suddenly code their own prototypes. They type “var Body”, wrap a button in curly braces, and it appears right there on the right, fully customizable in real time.

"AI could potentially replace some junior jobs, but the demand for experienced senior developers will only go up."

ios developer coding on a laptop

What’s your take on the further development of AI?

In my junior days, they needed someone to hack together the UI, take care of tasks seniors didn’t want to bother with, and not screw things up too much. Nowadays, AI can handle many of these junior responsibilities. You can just say, “Create a screen with buttons like this,” and if your description is good enough, it spits out code that might not necessarily be production ready, but at the very least it’ll be sufficient for a prototype.

It also proves useful with research. Back in the day, you’d tell your junior colleague, “We need to implement a system for scanning receipts, look into the possibilities.” Now you just open ChatGPT, ask it how to do it, and it gives you a bunch of ideas. Sure, it will be clunky, sometimes it won’t work right out of the gate, but it does the job.

So yes, AI could potentially replace some junior jobs, but the demand for experienced senior developers will only go up, I think.

Speaking of juniors, what surprises you the most during interviews?

It’s mostly the attitude that some people have lately. Oftentimes, I ask them something, and they say that they don’t know. I ask another question, and it’s the same thing again, rinse and repeat. When you apply for a junior iOS position, you should probably be familiar with the basics—or at the very least know where to look and how to find out. But some people just go, “I applied because I don’t know this and because I expect you to teach me.”

So I have to confront them with reality. We expect some work from them, which we’ll pay them for, and we’ll naturally educate them as well. But first, we discuss what they can do for us. I don’t have a problem with someone not knowing something, but some basics are a must.

"Knowing how to finish a 100-kilometer bike ride is nice, but actually doing it is a whole different story."

What do you value the most in candidates?

I generally like to see interest and enthusiasm, a spark of excitement and joy. That’s incredibly important to me. I also like to ask people why they did something a certain way, if there’s a reason behind it. You can have all sorts of implementations or solutions, it always depends—is it a small or big app, an MVP, or something more robust that needs to withstand everything?

I often hear things like, “That’s how we used to do it at my old job.” When you’re a junior, I get it. Somebody with more experience told you to do it that way. But when you’re a bit further along the path, you should be relying on your own reasoning.

I think being familiar with the theory doesn’t mean much on its own. You have to be able to demonstrate the skill. Knowing how to finish a 100-kilometer bike ride is nice, but if I put you on the bike and go ride with you, it’s a whole different story. I want to see that these people are actually capable of implementing and explaining things.

ios developer talking with a colleague

What are you iOS guys currently working on?

We’re of course bound by NDAs, but one of our teams is working on George, and two other teams are working with Jablotron. This sort of team augmentation is something we generally do well. They put us in touch with the client, and we quickly adapt and get things done. But we’ve also got our hands full with two very nice startup projects, where we get to decide how we do things. It’s great to be in contact with someone who has a vision for the product and to help them make it a reality.

What’s the most challenging thing with clients?

That would probably be gaining their trust. Everyone tells them how they’re the best, but when they change suppliers after a year, and you parrot the exact same thing to them, they don’t know if they can trust you. At the same time, you can’t explain all the technical details to them. They would have to become developers themselves for that.

It’s a little bit like getting your car inspected. They tell you that they need to replace a part, and at some point, you just have to trust them and tell them to go for it. It’s not like you go and ask them to pop open the hood and show you what’s wrong. This is what we always try to establish with the client—some form of trust.

Once you’ve gained the client’s trust, what’s the most hotly debated thing?

Most often, it’s expectations. Sometimes, they think that we’ll develop an amazing app for them, and everyone will just go and download it. But that’s not how it works. They also have to do the marketing. My job extends to tempering their expectations at times, but it really depends on the client.

"I enjoy constantly improving things. I don't want to settle for mediocrity."

Last but not least, what pleases you most when working with a client?

I’m happy when the project structure is set up well, when things like architecture, task assignment, or ticketing run smoothly. It’s also really enjoyable when clients have a growth mindset and strive to constantly make things better. For example, we clear a certain number of tickets, and they go, “Great, how can we do even better next time?”

This process of continuous improvement is something I like. It bothers me to no end when there’s the opportunity, but people don’t want to grab hold of it. There was a client back in the day whom I kept telling we could do a better job, but I was always told, “Focus on doing better on your bike, don’t bring that to work.” I don’t want to settle for mediocrity, though.

"We wound up flying to Israel with a few other guys, and we spent several days at a client’s office in the desert."

Any interesting problems you’ve run into during development?

There have been quite a few of those. My favorite actually highlights the importance of good communication and proper documentation. This one time, we were developing an app for an Israeli startup. The app needed to communicate with Bluetooth devices, but there was a bug where it just didn’t at times, and we had no clue why.

In the end, we wound up flying to Israel with a few other guys, and we spent several days at their office in the desert. After countless hours of debugging the code, I discovered an incorrect refresh value, and then it was all good. We couldn’t have figured that out just doing remote calls, and it wasn’t documented. Either way, it was pretty sweet that we got to take a trip to Israel just because of an incorrect integer value.

Do you have any work rituals? Like listening to music, for example?

For sure, I have noise-canceling headphones, something I can’t do without at this point. Working from home, especially in the early hours, also does me good. I get down to business first thing in the morning because I can’t keep going for too long. Around 2 PM, I go for a bike ride, and then I get back to it later and work into the evening hours. Splitting the workday into two parts suits me, I’m more productive that way.

It also happens to me quite often that I’m banging my head against the wall with something, but after my bike ride, I crack the case as soon as I get back home. And of course, I need my coffee. I drink like four or five cups a day. I really enjoy espresso, so I got myself a high-quality lever espresso machine. It’s become a bit of a hobby of mine.

You say working from home suits you, but you also have two small kids…

That’s right. Madlenka is two years old now, and Vojta’s five. I usually shut myself in the office, and they respect that but know that they can come in. It’s not like I can work for four hours straight anyway, so I go make my cup of coffee or take something to drink and talk to them.

I’m the kind of person who likes to have a system in place. If you can do that and stick to it, great. If not, working from home might be your undoing. If I didn’t have kids at home and just sat there alone, I probably wouldn’t enjoy it as much and would just go to the office.

Share this article

Join our newsletter

By clicking the button I agree with the collection and processing of my personal data as described in the Privacy policy.