April 17, 2017 An Interview With Dmitriy Kozhevin (Daiver19)
We asked a long-time Topcoder member and marathon match competitor Daiver19 for an interview.
gorbunov: We are a relatively small community of long time competing Topcoder marathoners, yet we barely know our leaders. You’ve competed in the Topcoder Marathons since 2009, and the statistics says you’ve won one match. What was this match about? Do you remember it, or, like me, forget the task of a marathon once it is over?
Daiver19: Unfortunately, that wasn’t as clean of a win, as I wished for. That was a match where you had to find hash collisions and it turned out that it’s possible to solve it in a very efficient way (unlike in usual Marathons). So, there was a tie of about ~80 winners. But I actually do remember some of the problems, which had interesting solutions.
gorbunov: What are your favorites then?
Daiver19: I’m not sure about favorites, but there are a couple of memorable problems. One was about restoring a broken pattern from shards. Unlike in usual problems, my solution was based on generating the test cases and finding the one which statistically matches the input shards. As for regular problems, I’ve had quite a bit of fun with making the graph as planar as possible. While it sounds like quite a well-known problem, there were a lot of things to think about and also some interesting findings (e.g. it turns out that locating graph vertices in around vertices of some triangle is quite a good idea).
gorbunov: Do you prefer the problems where you found a good solution?
Daiver19: It’s rather about having an interesting (not necessarily very good) solution or just an interesting problem statement.
gorbunov: Where do you work? Can you describe what you do at work, if it matches by complexity Topcoder Marathon Matches, or you do need some extra hard tasks to solve outside the work, in order to feed the brain?
Daiver19: I work at Google. Currently I’m mostly working on data processing and analysis, and I have some complex tasks to solve. But they’re usually quite different from MMs due to real-world restrictions and requirements. In Marathons, I can focus on algorithm and optimization, which is quite refreshing. This loads my brain in its own way.
gorbunov: Are these work tasks similar to sponsored marathon matches, or they are specific to Google?
Daiver19: They’re definitely specific to Google. As for sponsored matches, I don’t usually take part in them (well, besides TCO), so I can’t do a reasonable comparison.
gorbunov: I know Google is a sponsor of the TCO this year. Usually sponsorship means they want some fresh minds to be hired. What are the key characteristics of successful googlers?
Daiver19: I’m not sure I can make an assessment here. In my opinion, at least good problem-solving and analytical skills are needed.
gorbunov: Your performance in Topcoder Marathon Matches may be an example for many new members. The tasks are becoming more complex over the time, and the rival competitors do not stay at the same place. What is the secret of holding yellow rating for 8 years?
Daiver19: Well, for me the question is rather ‘why are you not red yet?’ since I think you always should aim to grow. Otherwise, it’s just dedicating your time to competition and trying to get decent results. Also I don’t even start working on problem if I don’t like it, so I guess it’s also about being passionate about a good solution.
gorbunov: Actually you got me a little bit wrong regarding the red rating, I meant that being currently rated 29th in Marathon is quite an achievement. But I wish we all could become red eventually. Or maybe orange.
Daiver19: Well, I think the answer remains the same anyway; just trying to perform consistently and aiming to become better.
gorbunov: Do marathon matches affect your performance at work? I mean, do you get tired, sleepy because of night coding etc., or you manage to combine these two things?
Daiver19: When I was studying, I’ve definitely had a lot more time for MMs, than I have now. Currently I usually spend two weekends for the real coding, and do some fine-tuning and occasional evening coding during work days (and of course try to generate more ideas). So, I hope my work performance isn’t affected, though I guess my MM performance is.
gorbunov: What have you learned at Topcoder that has helped you in life outside it?
Daiver19: As with any programming contests, Topcoder develops algorithmic thinking and ability to understand what exactly your code is doing. This sometimes helps in real-life coding. As for marathons specifically, I think they also promote problem solving skills and thinking out-of-the-box – after all, there is usually no definite solution. Again, those skills sometimes help at work when you’re, well, solving problems.
gorbunov: Your handle. Can you please tell a story behind it? Are you a diver?
Daiver19: I came up with the nickname a while before joining Topcoder. It actually came from a cyberpunk book, where hackers were called ‘divers’ because of deep immersion into virtual reality interfaces. Misspelled for uniqueness. Also, ironically, I still haven’t managed to try diving, I’m a bit scared of it.
gorbunov: What would you say to a new members in marathon competitions?
Daiver19: For someone who hesitates to try it; you don’t really need to spend whole two weeks to get decent result, so don’t worry about spending too much time. For a new participant I’ll repeat myself, have fun while solving the problem and don’t submit anything if you find the problem too cumbersome. And just some practical advice, try to use all the machine time you have for your solution.
gorbunov: My favorite question. Your creative credo?
Daiver19: I’m not really a credo-guy. Will ‘ALL GLORY TO THE HYPNOTOAD!’ work?