Over a million developers have joined DZone.

Dev of the Week: Valeri Karpov

DZone 's Guide to

Dev of the Week: Valeri Karpov

· Java Zone ·
Free Resource

Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Valeri Karpov, MongoDB Kernel Engineer at MongoDB. Some of his most recent DZone posts include:

1.   What have you been working on lately?

Currently, I'm primarily working on MongoDB's internal continuous integration framework, although I'm putting in ~20% time on the MongoDB NodeJS driver and slowly taking over maintaining MongooseJS. In my spare time, I do some consulting work for a small startup called Bookalokal.

Right now my biggest project is getting the MongoDB node driver into our internal CI framework. Its a big step forward for us because, as of now, our CI framework is built to test a single codebase, the MongoDB core server, but the end goal is to phase out Jenkins and Buildbot across the board. In addition, I've recently spent a lot of time thinking about Browserify and ZombieJS, and I'm putting in some time to migrating my client-side JS to Browserify.

2.   You've tackled some interesting datasets with MongoDB. Have you done any projects with MongoDB that stand out to you as favorites?

The data set I've been having the most fun with is the NBA regular season box scores data set. I've been a big basketball fan since 1998, and I love digging up random statistical factoids. I first got inspired to get this data when I was watching a Warriors game a couple years ago and the announcer quipped that there had only been one other time in NBA history that a player hit 10 three-pointers in a losing effort. With the NBA data set, I could calculate both small factoids and broad correlations, and I had a great time doing so.

3.   Are there any particular developer tools or resources you couldn't live without?

In the NodeJS sphere, mongoose, async, underscore, omni-di, and moment go into every project I work on. JavaScript is a beautiful language when written properly, but there are a few clunky bits, like dates, that JavaScript just doesn't do well on its own. Thankfully, with the NodeJS community, there's usually a good module to smooth out JS' rough edges. I've also been using mocha more and more for unit tests, but I think that may have something to do with its ability to report test results with ASCII kittens.

I also do a fair amount of work in Go nowadays, although I have a much more love/hate relationship with Go than I do with JS. SublimeText and GoSublime are my preferred dev environment for Go, and, since I don't code without dependency injection, inject goes into all my projects.

4.   Do you have a favorite open source project (or projects) that you've contributed to recently?

In addition to contributing to the MongoDB node driver and mongoose, I maintain a simple NodeJS dependency injector called omni-di that I'm quite passionate about. Its a small and straightforward module that helps complex node projects grow gracefully, and I don't build non-hack NodeJS projects without it.

5.   Do you follow any blogs or Twitter feeds that you would recommend to developers?

Beside my blog and Twitter feed, I would recommend following Dave Asprey's Bulletproof Executive blog and the paleo diet blog Mark's Daily Apple. Getting your exercise, nutrition, mindset, and lifestyle right is a very underrated part of becoming a better software engineer; you can be a much better coder if you optimize these day-to-day details, and those blogs will set you on the right path. For technology news, I find the Hacker News twitter feed, @newsycombinator, and the trusty @nodejs_bot do a good job of getting me relevant content.

6.   Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?

I started putting together basic HTML and JS sites at a very young age, but where I really learned to love coding was the USA Computing Olympiad training materials. The USACO training problems aren't as flashy as Codecademy, but back in 2005 USACO was about as good as automatically-tested-submission-based coding tutorials got. In addition, USACO focused on classical algorithms problems, such as knapsack, Dijkstra's algorithm, and max-flow/min-cut, which gave me a very solid grounding in fundamental algorithms. I loved solving algorithms problems so much that I ended up focusing in theoretical CS as an undergrad, and the rest is history.

Thanks, Valeri!

Check out Valeri's blog and Twitter!


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}