DEV Community

Cover image for I'm an open source enthusiast at Mapbox, the creator of Leaflet and 40+ other JS libraries, and a rock musician. AMA!
Vladimir Agafonkin for Mapbox

Posted on

I'm an open source enthusiast at Mapbox, the creator of Leaflet and 40+ other JS libraries, and a rock musician. AMA!

Hey! I'm Vladimir Agafonkin (aka @mourner) from Kyiv, Ukraine.

In 2008, I started working on a small web maps library in secret from my boss, who insisted that I should stop "reinventing the wheel" and just use "mature, established solutions". When I reached out to the map developers community, my idea was ridiculed for "wasting time instead of contributing to existing projects".

This little library, Leaflet, eventually became one of the most influential projects in the mapping industry. It is used by Facebook, GitHub, Foursquare, Evernote, Flickr, Pinterest, Etsy, Craigslist, European Commission, NPR, The Washington Post and the like, and has almost 22k stars and 600 contributors on GitHub.

For the last 4.5 years, I've been building mapping tools of the future at Mapbox, focusing on the next-generation map technology, vector maps, and in particular performance, data visualization and computational geometry algorithms. Here are a few examples of what I do:

To keep track of all the open source projects I'm involved with, I created this list. There are many, thanks to Mapbox — I'm incredibly lucky and grateful to have the privilege to work on open source full-time, and do it remotely from Kyiv.

Outside of engineering, I write songs, play guitar and sing in progressive rock band Obiymy Doschu. We've recently released an album we've worked on for 8 years. The lyrics are Ukrainian, but give the album a chance — if you like beautiful, evocative, multilayered rock music, it will speak to you nevertheless.

I'm also a happy father of 4-year-old twin girls. Here's me and my family celebrating Ukraine's Independence Day last year.

Ask me anything!

Latest comments (78)

Collapse
 
osde8info profile image
Clive Da

love leaflet (but its a shame mapstraction seems to have died)

Collapse
 
itsmestevieg profile image
Stevie G

Thanks for your amazing work on Leaflet, I'm doing up a few tutorials on Dev.to at the moment and would love to teach people about leaflet as I further my knowledge on leaflet. I'm currently working on a tutorial on how to customise leaflet for the start of a web GIS interface 😀

Collapse
 
luizfellype profile image
Luiz Fellype Cassago • Edited

Hi @mourner !

I have a question, do you know about the lib react-leaflet ?

In case of a yes, could you post something about rotation ? especially a retangle, because I could do using just Leaflet but passing to react couldn't make it. So I was hoping if you could help.

Thanks, you are awesome
ps. Sorry for my english, It's not my native language.

Collapse
 
ahmedalheesaei profile image
AhmedAlheesaei

very humble, wish you success in all your life, thanks a lot for helping us.

Collapse
 
danieljaimes_c profile image
DANIEL JAIMES

Can you talk about the leaflet architecture and what books used for learn javascript + web mapping?

Collapse
 
prushforth profile image
Peter Rushforth

Hi Vlad,

I'm pretty much in awe of your and your team's work on Leaflet. Thanks for that great resource, not only for making nice Web maps, but also for showing us how to code by reading your code.

My question is: do you think it will be important for maps to become an internet media type, like video or SVG? Will this (script-less mapping) help get kids involved in mapping?

Collapse
 
metric152 profile image
Ernest

LTTP here but wanted to say thank you for creating Leaflet. I use it at work to display maps on our website with custom tiles and it works great!

Collapse
 
bohdanstupak1 profile image
Bohdan Stupak

Hi Vladimir.
Looks like I'm a bit too late for the party, but still, I've decided to drop in with some words of appreciation.
I'm using leaflet for my pet-project and although I can't appreciate it at full-scale as pet-project is something that you craft for 15 minutes per month still I've enjoyed using this library and was pleased to hear that the author comes from the same city as me.
But what was the most surprising is that you're a guitarist of Обійми Дощу. This is really amazing how one can be both a decent software engineer and successful artist. Your path inspires me a lot!
P.S. Today I've listened to your new album Сон. Although IMO it's hard to say something new in a genre of progressive metal as there are already some mastodons who are there for decades, still I enjoy how you've embraced dozen of influences we love in progressive metal to create your own beautiful multi-layered mixture. Although Обійми Дощу and Somali Yacht Club represent different genres to me they both are great this year discoveries which show how Ukrainians do some world-class musicianship. Keep rocking \m/

Collapse
 
baibao profile image
baibao

I got a big inspiration from you now.

But how can I keep myself as engineer working with only programming; because sometimes it is really hard for me when above management trying to push me into management role and I don't want.

Would you please give suggestion; I wanna stay in engineer path like you.

THANKS!

Collapse
 
mourner profile image
Vladimir Agafonkin Mapbox

Thank you! I was just always upfront about it — if management asked me about how I see my career going forward, I'd always answer that I want to continue solving difficult engineering challenges, and not interested in management roles.

Collapse
 
katafrakt profile image
Paweł Świątkowski

What do you think are main pain-points of leading open source projects and what can be done to reduce them? Also, how do you mitigate burnout and frustration when dealing with people's "silly problems" (I don't mean it, I just can't find better wording) instead of really pushing your projects forward?

Collapse
 
mourner profile image
Vladimir Agafonkin Mapbox

Feeling guilty about unsolved issues piling up is a big pain point, and so is dealing with toxic people. What I found as a good strategy is:

  • Set up standard reply templates in GitHub, and close issues without hesitation. If a user feels entitled to your time while not willing to make any effort, such as filling out an issue template, providing a minimal test case, etc., it just takes away from people and issues that actually deserve your attention.
  • Never feel guilty about open issues and messages you didn't respond to. You are a human being, with lots of things to worry about and take care of, and any issue can wait. Projects don't have to be perfect all the time. If an issue is critical and important enough and you can't find enough time to deal with it, other people will come to help you — it's open source after all, and otherwise it can always wait.
  • Lock toxic discussions and block toxic people without hesitation — arguing with such people is not worth the emotional investment.
  • Embrace and grow new contributors. Cherish people who show enthusiasm about your project, be patient when reviewing their issues and PRs even if they lack experience and technical skills, and they will grow to be an amazing help. Give away admin rights to your repos generously — putting trust in other people pays off big time.

At the beginning, I tried to reply to everyone, but when you have an inbox that looks like this, you just have to stop worrying and blaming yourself for not responding, otherwise I'd burn out and stop doing open source a long time ago: