The record books of Topcoder have a lot of entries which showcase brilliance and passion. However, none of them are a testament to persistence like the top line of “Most consecutive SRM appearances” book. Dave dcp Payne has not skipped a single SRM in the past 400 of them, which took him slightly over 11 years. He has held the #1 position in this book for many years, and will hold it for almost a decade even if he stops competing today – the next runner-up who still has his streak unbroken torus711 has to do 227 more SRMs to catch up.
SRM 720 was 400th for Dave, so I couldn’t skip the chance to talk to him about this. It required some imagination, since I’ve already asked all obvious questions in the previous interview with him.
Looks like in the 6 years since the last interview you still have had no major life events to prevent you from participation in SRMs. Any new and interesting near-misses, any memorable stories?
My life is busy, but I find that somehow I’m always able to get the SRMs in. In recent years, the number of SRMs per month is rarely more than 2, if ever, so it’s easier than ever not to miss. I did have a time recently where my router malfunctioned and thus my WiFi wasn’t working. One of the first things I thought about when that happened was, “I’ve got to get this resolved before the next SRM!”. Thankfully, a router reset resolved the issue and no harm was done.
What kind of redundancy do you have in your setup for SRM participation – two distinct internet providers, two laptops with pre-configured Arena which you haven’t reconfigured forever, a diesel generator for power outages? 🙂
No, nothing fancy like a generator, although it’d be awesome to have a generator for general power outages :). My backup plan is to use the wireless hotspot capability on my cell phone, although I haven’t had to use that plan as of yet. The wireless hotspot is really nice though, because if I happen to be away from home and don’t have a convenient WiFi nearby, I can always use the hotspot as long as I have a cell phone signal. Just for redundancy, I did test out the hotspot connection with the arena just to make sure it worked (what good is a redundancy plan if you never test it?). The results were good, and it seems to be a good backup plan. I do have two laptops with the arena configured for additional redundancy.
Are you using Java applet Arena or the new browser-based one?
I use the Java applet. They did some fun SRM a few years back which you were required to use the Web Arena, but that’s the only time I used it.
Your profile can look a bit intimidating to a beginner in the Topcoder Algorithm track – it shows that even with so much dedication after so many years and contests a person doesn’t necessarily become red. Do you practice separately these days, or do you count participation in SRMs practice for the next ones?
Great question. I used to practice nearly every day, and one year I even used a site called dontbreakthechain.com to keep track of how many consecutive days I practiced (what is it with me and consecutive streaks? :)). As for rating, I realized pretty early on that this wasn’t something I had a lot of natural talent in, but I still found it quite fun, and still do. But as for reaching a very high algorithm rating, I think it really helps if you grow up doing things like Math Olympiads, or at least in some environment where you get a lot of exposure to that type of thinking. You can certainly work on attaining those types of skills later on, but it’s a big advantage if you can get into it early, have some base level of talent, and are in the right environment.
I mean, if you look at a guy like Petr, for example, he had the great level of natural talent, but he also had the environment he needed to develop and nurture that talent early on, and when you combine all those things you often end up with a world class algorithm coder (interview).
So these days, I focus more on developing new skills in software development, which is really more of a strength for me. I don’t have a set algo practice schedule, although I do try to solve the SRM problems (appropriate for my level) after the match if I didn’t solve them during the match.
You only have so much time, so you have to decide whether to spend it making your strengths the best they can be, or trying to bring up your weaknesses to maybe an average level. For me, that means focusing the most on software development skills.
Do you have any advice for newcomers to Algorithm competition?
Just try it and see if you enjoy it. If you find that you are excelling at it, then you can decide to put more and more time into it if you want. But just have fun when doing it, I think that is the main thing. If it turns out not to be a strength, then don’t try to force it to be one, think of what other things you are good at and let those other things be your primary focus.
It looks like you don’t participate in non-Algorithm tracks any more – is that true, or is your profile playing jokes on me? If it is so, why did you stop?
I’ve actually been doing some competitions in the Code track this year, mainly around the Predix platform. So yes, I do still participate, although not as much as in the past just due to more time constraints these days. It’s also taken some time to get up to speed on the newer technologies Topcoder is using in competitions.
What about participation in other (non-Topcoder) competitions?
I don’t really do other competitions outside Topcoder much anymore, although I did do the Hackercup this year (Facebook’s competition).
What are your current areas of interest in software development? In the last interview you mentioned learning Android development.
Mainly React.js these days, and node.js, and still doing a lot of .Net as well. There are a lot of Topcoder competitions you can do if you just know these technologies. I also worked on learning React Native (mobile platform) this year. Finally, I am working on Swift as well, but that’s going pretty slowly. One thing about software development, there’s always more to learn and more projects to do :).