Open Source & More - Blog | Tidelift

Valeri Karpov, Mongoose, and the importance of good docs

Written by Amy Hays | January 8, 2019

Valeri Karpov, lead maintainer of Mongoose, got into software development by way of Pokémon.

He started visiting Pokémon forums when he was about 10 years old, and from there, he was hooked. He started building his own forums and websites based on his passion for Pokémon—which became a passion for computer science and software development.

“I went to college for computer science and was considering going into academia or industry,” Val said. “I decided on industry because academia was a little too slow-paced for me.”

His first job out of college was at a trading shop in Manhattan that had an internal library that helped traders with market data. “It was very clunky and not very good,” Val said. “But it taught me the benefits of JavaScript.”

JavaScript, Node.js, and MongoDB

When Node.js popped up on his radar, he started tinkering with it. He and his friends had started working on a fashion tech start-up, and Val was “tired of Rails, and thought Node had some good points.” He ended up playing with MongoDB.

“I started with Mongo because the trading company built everything in-house and they started adopting Mongo, even though they were very particular about software choices,” Val said.  

When the tech startup folded, he got a job at MongoDB.

“The person maintaining Mongoose at the time was working at Mongo,” Val said. “And soon after I started, he left and decided he didn’t want to maintain Mongoose any longer.”

Val was on the JFK AirTrain on the way to a bachelor party when the old maintainer tweeted that he was looking for someone to take over maintaining Mongoose. Val jumped on the chance.

Ownership and pride in work

“Mongoose is an important project and I’m super invested in it,” Val said.

That’s one area he thinks the world of open source could improve in: more responsiveness and responsibility in general. He thinks open source software could succeed more by people taking ownership and pride in the work.

One way to help people take more pride in the work? Val thinks it helps for people to see benefit their projects are providing to users.

“Tidelift is going the right way and is more focused on providing value to customers who are willing to pay for open source rather than asking for donations,” Val said. “I always felt weird about soliciting donations because I feel that it’s not providing additional value to users.”

That’s why he was an early maintainer to sign up to provide support for Mongoose through the Tidelift Subscription.

Val loves tech writing and good docs

Another area Val thinks people in the open source community should focus on is better tech writing and good docs.

“Better tech writing, better guidelines for tech writing, more training,” Val said. “There are templates for docs sites, but not for the documentation itself.”

Val enjoys writing the documentation. Good docs helps educate users and prevents maintainer time wasted on figuring out a non-issue–that is, “issues that are more about lack of knowledge and less about actual issues with Mongoose,” Val said.

Val also spends time writing blog posts and he’s created an issue template for people to fill out when they discover bugs or issues. Unfortunately, only half of the requests actually use the template, Val said, and by nature of the beast, those are usually the ones that get done first.

“I pay more attention to the ones that are submitted properly,” Val said. “I have a labeling system and also give feedback on ‘bad’ issues.”

Tech writing is one of his favorite parts of being a lead maintainer, along with adding new features and fixing bugs, ownership of time and schedule, and connecting with people who use Mongoose.

He’s even written a book–called Mastering Async/Await, “a concise and comprehensive guide to async/await fundamentals.”

Finding time to work on Mongoose

Val works on Mongoose when time allows, mostly on nights and weekends.

“I think I have plenty of opportunity to come up with new things,” he said. He puts out a minor release once a quarter with bug fixes and some new features. He spends his time scoping out those new features, then fixing the bugs the new features might cause.

Oh, and he doesn’t forget the most important part: he updates his documentation.

--

If you’re interested in supporting Val's work on Mongoose while also getting security, maintenance, and licensing assurances for Mongoose and other open source projects you already use, check out the Tidelift Subscription. You can also order his book Mastering Async/Await here.