Interview by Thomas Peham
August 19, 2015
Photos by Kevin Schmidt
A glimpse into the world of data science.
Kevin Schmidt started his career in software engineering in the early 2000s at Shazam.
Describing himself as a hands-on engineering manager and data infrastructure architect, Kevin has a track record of building highly effective engineering and data teams at companies like Last.fm, Goldman Sachs and Mind Candy.
Share this interview:
Thanks so much for your time Kevin. Can you please describe yourself?
My name is Kevin Schmidt. I'm the Head of Data Science at Mind Candy. Mind Candy is a gaming company. We do mobile games and we've been around for quite a while. Data Science here means looking at the data for the different games that we have. When analysing our data we think about ways to change our games to make them more successful. We give that data then to the game designers. They change the game and then it's getting re-evaluated.
Before I came to Mind Candy I worked at Last.fm, where I was responsible for data as well.
What made you choose to start at Mind Candy in 2013?
At Last.fm we were relatively settled in what we did with data, because they're doing this for quite a long time.
Mind Candy was fresh, so I could build up the team here from the scratch. When I came, I essentially had one person on my team; now it's eight people. I could build up really everything by my own. I could start with a clean slate and that was really exciting to me.
Big Data and Data Science is one of the hot topics out there. Are there some resource you can recommend to others who want to get started in that kind of area?
Ooh, good question. It's relatively easy to get the basics down.
At first I recommend looking at a basic framework, like Spark which is quite a hot topic that's relatively easy to learn right now.
There are some really great courses about Data Science on Coursera that I usually recommend to people who want to get started.
The difficulty is that It's not very well-defined what Big Data, Data Science means, so I tend to split them up into two separate parts.
One is the data engineering part, which is stuff like Spark or Hadoop, the technical programming aspects.
That's not much different than being a software developer, just with some special knowledge about Big Data.
On the other hand, you have data scientists who are doing statistics and they're doing predictive analytics. They do all kind of analytics. That requires a different skill sets.
First you have to figure out what of those things you find most interesting. Is it more the statistics part or the technical aspects.
How does a typical day in the life of Kevin Schmidt look like?
Before I head to the office, I usually go to one of my favorite coffee shops in the area where I live and just go and read and respond to some emails and do some reading in order to keep myself up-to-date.
Thanks to Slack and email it's really easy to already start your day working while you're drinking your coffee.
By the time, then, I arrive at the office, like 9:30, 10:00, all of that is already out of the way and I can focus on more important stuff: technical or data science questions.
We have a daily stand-up at 10:10am. And then most of the time it’s me juggling those two roles where I have to make sure that the data scientists focus on the right thing to analyze. And I also have to make sure the data engineers focus on the right data to process.
Mainly it’s making sure that the game designers and product managers are getting their data at the right time and making sure that these two different people focus on the right things. Still, I do write some code as well, but I do feel that prioritization is much more important in my current role.
How do you translate between these different parties involved? I guess it requires some great communication skills as well?
Yeah. This is a general problem.
Data scientists speak statistics. When they say it's 'statistically significant' they mean something that other people might not understand.
Me translating between product managers and data scientists is a huge part of my job.
Also making sure that the data scientists understand what the data engineers can finish in a given time.
I think translating between the different domains is part of a managing role in data science.
I think in engineering, in general, it's a common thing that these people just don't speak the same languages and I just have to keep up. I have to understand what the businesses talk about and what their priorities are. I have to understand what the software engineers are talking about and I need to know what the data scientists are talking about. I know some of all of the domains. Keeping up-to-date is part of the job, and translating is part of it.
Has there been any "Aha moment" in your life where technology clicked for you?
I started very, very early.
I think I wrote my first program at the age of 12. I always fascinated with computers from an early age. I found that very interesting.
I think it felt as a pretty odd thing to consider this a job. But I created this awful web page in 1997 which a company actually found and they said: "We want you to work for us as a web developer."
I replied "sure thing." That's how I got started in software engineering.
In the late '90s it was still possible to write an awful, awful webpage and somebody still wants to hire you afterwards. I don't think that's possible anymore nowadays.
When it comes to hiring engineers and data scientists at Mind Candy, what are the areas you are looking in? Can you share some insights on your hiring process?
I would split it up again in data engineers and data scientists. For data engineers, I usually look at really skilled software engineers. It's really not easy to find somebody that is very focused on data in his engineering. Some people exist but the technology also changes quickly, so I'm looking for talented software engineers that can learn quickly and then we just show them the ropes in the latest Big Data framework, like Spark.
For data scientists, I'm looking mostly for statistical skills, so their degree is much more important. Not necessarily that I'm looking at specific degrees. I just know that stuff like natural sciences are much more Stats-focused than, a typical Computer Science degree for example.
Can you share some tools you're using on a daily basis?
Yes, Slack is hugely important. We do almost everything on Slack at the moment. Everything else, it's mostly about workflow tools, we're mostly relying on Atlassian stack like JIRA. We even have abilities with Slack chat bots to control the environment. I can spin up servers by typing in chat, which I really like. We are really relying on that.
Is there any advice or any great piece of career advice you've received and like to share with us?
I got one advice from my earliest managers, when I used to work for Shazam, a long time ago.
He always told me, "I don't understand every detail that you are doing" (I was just a software engineer at the time) "but I know what you're capable of and that's why I know how I can manage you."
I think as a manager, especially if you’re coming from software engineering, it’s pretty hard to let things go.
If you manage a large team of engineers or data scientists, you don't understand every framework, you don't understand every piece of code. You have to understand what your engineers are capable of and trust them and that's the only way you can manage engineers.
Don't try to understand everything, just try to understand what people are capable of and let them do it.
Can you share some insights on how you handle testing?
It's quite a difficult topic. Especially for Android, because you've got all the different devices. We have quite a large QA team here with about 15 to 20 people.
They have huge array of devices and it's a lot of a manual process, for games specifically, because it's about touch input and doing the right thing at the right time and our games are relatively complex.
Like our Warriors games, there's a lot of different functionality. It's quite a long process. We try to reserve a long time after development for testing the game.
Testing is quite a challenge on mobile.
And we always have some bugs. I don't think we had a single bug-free release. It's just so hard to test them on all devices and different languages.
So your QA team is working with JIRA?
Yeah. We also prioritize them, based on how critical the outcome for the release is.
There's always bugs that we just have to accept for the next release because we don't have time to fix them, but we are using JIRA to prioritize them.
Would you consider JIRA a great tool for mobile testing?
I mean it’s not that easy to record mobile bugs with JIRA. You basically have to take a screenshot of your mobile screen and add it to JIRA.
What would you describe as your main passion about building software?
I'm mostly on the data side, so my passion is data.
Actually, like large-scale data processing is a fascinating space. There are so many different approaches. For example real-time processing is super interesting for me. If you’re starting to get into the large data set space a lot of old rules of software engineering are no longer valid. And then you have to think differently and I find that fascinating.
What do you think will be the next challenges and the next trends in data science?
We're already seeing more real-time stuff coming. We're already doing some real time stuff.
I think there are a lot of new frameworks coming out. I think that's a big shift at the moment. And you have to get familiar with those new frameworks. There used to be a time when you could just learn Hadoop and you were done. Now it's not that easy any more.
How do you stay up-to-date with all those new frameworks and things appearing on the market?
It's difficult. I have a couple of very smart developers who say, "Oh, we should totally check out this framework."
That's usually when I look at it. That's also how I spend my time in the coffee shop. Trying to keep up-to-date with all the latest trends.
Is there any advice you would give yourself as a 18-year-old?
If I would get the chance to tell my 18-year-old self, I would probably give him the advice to "study the basics more."
Like really learn the basic algorithms in your Computer Science book because that comes back to you, even if you don't think so. And then you have to relearn it 10 years later.