Code[ish] logo
Related Podcasts

Looking for more podcasts? Tune in to the Salesforce Developer podcast to hear short and insightful stories for developers, from developers.

Tags

  • community
  • side projects
  • inclusivity
  • organization
  • trust and safety
  • CDN
  • caching

74. How Dev.to Built a Community

Hosted by Julián Duque, with guests Ben Halpern and Jess Lee.

With six million unique users a month and 350,000 registered users, Dev.to has become the place for developers to engage with a broader community. The team behind the site has focused a lot of its energy on making sure the site is reliable, regardless of network speeds, and safe, with plenty of guidance and moderation tooling in place. Ben Halpern, its CEO, and Jess Lee, its COO, answer questions from Julián Duque on how they were able to build this fast-growing social network for tech.


Show notes

Ben Halpern and Jess Lee are the co-founders of Dev.to, an online community dedicating to helping the developer community communicate. They've been described as a social network for software developers, where anyone from novices to experts can create a blog post to share their ideas. They worked on the site for a long time as a side project, and after they launched, the unexpected and overwhelmingly positive responded they received encouraged them to turn it into their full-time job.

Part of what makes Dev.to so appealing is that it's been designed to be fast. The site is designed to take advantage of caching at POP centers, so that individuals around the world can access the content as quickly as possible. Since the project is also open sourced, they've been able to receive contributions from over 500 individuals, ensuring that no bug goes unseen.

Dev.to also considers community health to not just be essential to the business, but also a value woven into the company and the product. Their focus on education and strong moderation tooling has helped them build trust in their users. Users feel safe when the site actively minimizes aggressive language. The future of Dev.to is shaped by the feedback they receive, but in many instances, they allow the community to thrive without too much administrative interference.

  • Dev.to is a community of software developers getting together to help one another out.
  • CodeNewbie is a supportive, international community of people learning to code.
  • DevDiscuss is a podcast from CodeNewbie that shares stories from people on their coding journey.
  • CodeLand Conf is a community-first remote conference.

Transcript

Julián: Hello, welcome to Code[ish]. My name is Julián Duque, I'm a developer advocate here at Heroku. And today we have a very special episode, one that is very interesting to me. If you know me, you know that I'm very involved in the community, and community is pretty much what I breathe. And today we are going to be talking with the people at DEV Community. So with me, we have a Ben Halpern, he is the Co-Founder and CEO of DEV, and Jess Lee, she is the Co-Founder and COO of DEV. Hello, Ben and Jess, how are you doing?

Jess: Hi, Julián, thanks for having us.

Ben: Yeah, doing great.

Julián: Okay. We are very happy to have you here, and we want to know more about the DEV Community, and what you are doing. So before starting to talk about this amazing project, please, if you want, introduce yourself and tell us a little bit more about your background and what brought you to this project.

Ben: I'm Ben, I'm a software developer by trade. I am a semi self-taught developer. I did a little bit of computer science along the way, but then sort of discovered the craft for good a little bit later in life. And this project kind of got underway first step back in, I think, 2015 and in some capacity has been evolving ever since then.

Julián: And what about Jess? Tell us about you.

Jess: I actually didn't start coding until about four and a half years ago. I am a career transitioner and ended up going to a bootcamp where I learn how to code. And then, very serendipitously, met Ben through a friend and we had a lot of, sort of common struggles with the existing developer community and just bonded over what we were looking for, just in what we thought would be a much more productive and healthy community. And that's what we set out to build together.

Julián: So for the people out there that doesn't know about the DEV Community, what is it? How can you describe it so we all understand that and start participating in it?

Jess: Yeah. So DEV is a community for programmers of all experience levels to just learn and support each other. It's a place where you can publish articles and get lots of feedback and just meet and connect with other developers.

Ben: Yeah, and it's really built around this notion of blog posts as a means to communicate in the software industry that's been around since the beginning of time, as far as software has gone. And we've really tried to take the way developers do communicate, need to communicate, share ideas and try to make it a little bit more accessible and a little bit more friendly. It's not like we're doing anything that the community doesn't rally and figure out how to do on its own, but we hope to bring a little bit of thoughtfulness and oversight to the whole thing so that it's not every developer for themselves.

Julián: Yeah, because usually when you go to sites to consume content, it's just a blog post and it ends in there. Maybe it gives you the option to like and share that blog post, but doesn't give you too much interaction. So what's different in DEV Community that it's basically building up this huge community of developers all around the world?

Ben: Yeah. We try to keep the conversation going, allow people to make sort of deeper connections, follow one, another, get involved. A lot of the sort of expectations you might find from social media across the web in general. It's not like developers aren't already doing this on Twitter and sort of across the web. But we felt like there's this need to bring some of this in a way that's specifically moderated for the people involved, has community dynamics. We have a centralized code of conduct. We really try to sort of like look out for the conversation and move it in the right direction. And we don't do that in a heavy handed way. We let people have conversations in whatever capacity they want. But we really are mission-oriented and we try to keep the conversation going effectively and constructively.

Jess: A lot of people describe us as a social network for software developers. And like Ben mentioned, we really take moderation seriously. That was the first few features that we built out, even when we had very little members, we just wanted it to be a constructive place and that was top of mind. And you might not see this through the site, but we've had a lot of just internal discussions about how community comes together for developers. And oftentimes that's at conferences. So in a way, DEV is almost like an extension of a very big conference where people are sharing information and they're connecting. But they're doing it in a supportive way where they can really get to know one another.

Julián: There is a motivation behind DEV. But you planned DEV as a company at the beginning, you wanted to create a company or it started like as a side project? Or what was the beginning, like the spark that started the project?

Ben: Before even I had met Jess and it really was just a bit of a side project. It was never not possibly going to be a company if things worked out. I think the notion of side projects as a software developer are that maybe you take on this project, maybe you can kind of get some people to sign up, create some different membership options, maybe get some sponsors, help the thing support itself. Maybe make a few bucks on the side and in the social media space and all that. So it was always like, "Oh yeah, maybe if this takes off, it can be a way to make money and devote more time to the whole thing." But the way like any side business is, maybe just a side project, it's like there's the time when it feels like, "Oh yeah, maybe this is making me a few bucks on the side," and then, "Oh yeah, maybe this is actually taking off and it's going to be a full time thing." And I think once Jess and I were both working on it, it became really excited to have the option to actually just have this be our sole professional focus. And I know as soon as that kind of started becoming a possibility, it was really exciting.

Jess: Yeah. We definitely got to where we are today by taking lots of baby steps. On day one, I wouldn't be able to tell you that we'd be growing this into the company that it is today, but it's just been a lot of fun. It was a side project probably for me at least, for about seven months, before we decided to pursue it full time. And that was just because we're seeing this momentum and realizing that there was really a need for this space.

Julián: So you had this side project that started to get traction, and then you noticed that there were maybe missing features. Like for example, you mentioned the moderation or how to tackle moderation. Tell us a little bit about this technical challenge, how you were prioritizing the features you were developing while the community was growing.

Ben: Yeah, well, we always really tried and continue to try to tackle the problem at hand and not build the ultimate longterm solution right from the beginning. And a lot of that, knowing that we were really community first, we really didn't want to ever do anything that allowed our growth to outpace our community ethos or our code of conduct, and really have this happen in a measured deliberate way. And I think allowing us to lean into the features that mattered most at the time to the community, at whatever size it was, allowed us to sort of really develop a strong underpinning for not only letting the community grow to the size it is now, with a few hundred thousand registered users and millions of visitors who come to consume the content, but to do that in a way that allowed the system to learn how to work the way it should work. And being a side project for so long before it turned into a business for real, really helped ease the pressure of having to grow, grow, grow. There was a lot of confidence that if we were very thoughtful at the beginning, we could take some of those next steps, like at the right pace. And then once it came time to focus on this as a full time job, we sort of had a lot of good principles laid out and a lot of good groundwork.

Julián: Nice. And tell me about the technology behind. So what do you use or what type of technologies are involved? I want to know, like from the side project, like the beginning, and how it was evolving to what it is today.

Ben: It's kind of like a division of what we sort of think about and execute on and we try to keep things simple. Ruby on Rails, some JavaScript sprinkled in here and there, which is probably as simple as you can imagine. And a lot of the founding ideas were, this was a side project, we just kind of wanted to focus more on the ultimate use case than try to do anything technically interesting from the ground up. From our perspective, if it was boring, technically, that's really a great thing. But we stumbled into some really good technical ideas along the way. And a lot of that is this kind of side project situation where because you have time and nobody asking for results, you got to kind of entertain your interests.

Ben: And one of those was an architecture that really revolves around caching at the Edge. So working with our CDN, Fastly, to deliver content from close to the end user as possible, which was sort of an exercise in just what's the best performance we can get for everyone all over the world, thinking that if inclusion is a big part of why we're doing this, let's make it inclusive from a networking perspective. Like let's deliver content from as close as possible to where you are. So if you're based in Tokyo, you're getting about the same response times as if you're based in New York. That was just this notion that, from a user experience perspective, performance is such a big thing. And if we're designing something for just reading and some pretty simple use cases in a lot of ways, let's not put off making it fast and accessible all over the place.

Ben: What that's actually turned out to also be a very scalable infrastructure when we're caching so much and delivering it as plain HTML, you can do a lot of requests without a lot of pain on the origin servers. And honestly, that wasn't really why we took the approach we did, but it's evolved and it's become a pretty interesting approach. And since we're open source, anyone can kind of check out exactly how and why we do it. And not like we have the world's cleanest code, our code is, we make the same trade-offs everybody else does and just trying to deliver the product on the end. But we've grown and made a lot of fun, interesting choices along the way.

Julián: Wow. I didn't know that it was an open source project. So people can contribute to it?

Jess: Yeah, we have, I think over close to 500 people have contributed to the code base. Really what we mean by prioritizing community, people are able to engage on the platform, but also just support and help build and build out the features that they're looking for. And our just entire code base has been a lot stronger by having many eyes on it. And it's been a great way to get to know the community.

Ben: We were not open source from day one, really like if you weren't in the know that we were an open source project, that kind of speaks to the importance of the product and the community and the purpose of it from that perspective. And open source came about when we realized the more we really involved the community and the more we focused on transparency and the more we lean into some of these values that we were adopting along the way as wanting to do things the right way, open source just became obvious. So we got to the point where 99.9% of the code we write is open source. We have a handful of closed source utilities here and there when needed, but we've been working on a future where other communities, whether in niches within software development, but also in baking or sports, or just local communities, we would love to see a reality where other folks are using the software we've sort of stressed over for so many years to try to get right, in terms of moderation, in terms of ethos and things like that. And open source just slides right into that and we're so excited about the progress we're making there.

Julián: So how many users does DEV community has and how the concurrency looks like on a regular day? And especially now during this situation we are living globally that people it's invested more time like consuming content, or how that concurrency looks like? I'm curious about it.

Jess: We serve close to 6 million unique users a month and we have about 350,000 registered users. But Ben, you can talk about concurrency.

Ben: Yeah, well, we sort of spoke to this earlier, but our highest traffic endpoints do not typically get recomputed. We really try to serve that same HTML to as many people as possible. So that's kind of the secret sauce in terms of our scalability. And as an open source project, what we hope to kind of deliver to more and more use cases as our software gets spun up and used by more and more folks, as mentioned, we sort of were thinking more user experience early on when we wanted to serve things from the Edge.

Ben: So our requests get cached on an Edge server. So if you're requesting from New York, you go to a node in New York. So if you open up your DevTools in your browser, you can see that if you're based in New York, you're going to get a server called LGA for LaGuardia Airport. That's just where the local server is. And it's just cached HTML. It goes there and comes back. It doesn't even leave the city. And we make a lot of additional asynchronous requests to the backend. So there's a certain concurrent level that we build things up. We run Puma on Heroku as a server and we fork our instances, we use PgBouncer to help manage our database pooling. But ultimately, we have a system that, knock on wood, is fairly well designed to scale a lot more easily than you'd think.

Jess: I just realized something so silly. When you were talking about how a lot of requests end up being asynchronous, I just remembered one of our principles is commit to Async, but in a totally different context. It's about how we do distributed work, but it'd be funny to think about it through the technical side of things.

Ben: Yeah. I mean, I think our tech and our sort of workflow philosophies do line up pretty well. And I think engineering organizations like ours, do a better job of thinking in asynchronous terms, if they also have that as a notion for their software lives. There's the Conway's Law that your sort of technical architecture is going to reflect your human architecture and vice versa. And I think it absolutely is true for how we operate. Also right down to like how we operate as a team in terms of having empathy for one another, trying to create community within our organization, like it's all just one big mashup.

Julián: And now we are all embracing Async with this mandatory work from home order, that is all around the world. So it's good in the context. How does the operation of the platform looks like? It seems that you are getting a bunch of users, lot of traffic, and seems complex to operate a platform like this.

Ben: It is pretty complicated, I think organizationally, I think because we have a pretty complicated product in that communities and humans are so complicated and on a day-to-day basis, we just have a lot of different little things that come up. We have no one dedicated way people come across our platform. They sort of come from everywhere. They have all sorts of different use cases. People do different things in different ways. But from a technical operations perspective, we try to keep things pretty simple. A lot of that goes back to we want to focus on the human problems a little bit more than the technical problems. And we do the technical things we need to do along the way. And of course, choosing Heroku early on, it was a big part of that in terms of trying to offload some of the complication to the platform and simplify things. So there's no shortage of complexity in running a company like this, where there's so much human complexity, technical complexity. Our team is located all over the world. We made the decision early on that we didn't want to co-locate. But, it's kind of like it balances out. We try to sort of operate on principles instead of rigid rules and we let those principles guide us as we grow.

Julián: The technical challenge is easy, but what about the human?

Jess: We grew our team quite a bit a couple months ago, and it has changed our organization completely, just in terms of how we get work done. Not to get too specific, but we used to, everyone would sort of be on top of the GitHub issues that came in and we would work on areas we thought were the bigger priorities. But we've had to find a new way of articulating that to close to 30 people on the team. Before that we were under 10 people. And so thinking about how to grow the company has been quite the journey. And one of our values is that we constantly evolve. We think about that just even with our internal tooling. So for example, we have one person who is our community support manager, and it's been that same one person for close to two years now. But obviously we've grown our user base drastically and we are serving so many more people. But we are still moderating at the same level that we were many months ago.

Jess: And we're able to do that because, Michael, even though he's not an engineer, he thinks about ways through the lens of a product. And so he was able to identify different tools that we need internally to help us continue to be successful in the moderation area. And we've also grown a moderation team. So we have a bunch of volunteers from community who also help moderate the platform. And so we're always thinking about just ways we can make our lives a little bit easier and how to just build on the solutions that we do have, what are our pain points, if anyone is repeating any work, how can we pull that out and simplify things.

Julián: Is moderation, the only like human challenge that you have with the platform, or there are others that may be are not visible to the users? Like also education, like changing culture, teaching them, because you can have like a code of conduct and ban people.

Jess: The way we sort of view moderation, it also just falls into the community health. So it's not just about banning people, but it's about really exuding just what our value is. Usually, we don't typically just ban somebody unless they're doing like outright spam or something that really, really crosses the line. But we really try to even engage with people because oftentimes intentions are not bad and we've tried really hard to go back to that idea that you're like at a conference and it's like a person talking to you. And so we have a mascot, Sloan, and she's sort of our moderator who explains why something might be hurtful to another person. We really just try to explain it so people know where we're coming from. And a lot of times people will be like, "Oh, you know what? I was maybe being a little aggressive and I wasn't considering this other point of view." So for moderation, it's not just like down-voting and banishing people from the platform, but we really just try to facilitate more of a conversation there.

Julián: One of the things I have seen even, especially in online communities, and I tell it from my experience, I'm not an English speaking native person. English is my second language. And there's a lot of people out there that's interacting in an online community that sometimes things or context change in translation, and what they say maybe is not bad, but the translation or the context comes up bad. So what do you say, I think it's like a great solution to be able to have a way to correct and make things clear instead of just kicking out the people off.

Jess: Yeah, absolutely. There's so much nuance when it just comes to human interaction. And so in general, we believe the best in people and we really try to take different cultures into account. We're learning these things every single day, me, Ben, and Peter are all off from North America. And so we come in with our own set of cultures and we're just learning and being open and we hope that the community feels the same way.

Ben: Yeah. And the way we have to think about it, is somewhat kind of like as a system at scale. But we can't lose track of the kind of principles of empathy and really being empathetic towards the fact that everyone's coming at this from a different perspective, different personal cultures, different personal values, and really creating a piece of software that is flexible enough to account for that. And let the humans take over when there is a lot of nuance and understand that we need to help the humans do their job through good technology, but not let the technology do too much of the work because we need the people stepping in at the right times. And having this sense of appreciating the nuance I think has been somewhat of a separating factor, compared to maybe like some traditional sort of software ecosystem companies that I think maybe have seen things a little bit more black and white than we've tried to do.

Julián: And there is more sense of belonging when the platform is more human, when you have like the more human interaction.

Ben: Absolutely.

Julián: It seems it has been like quite, quite the experience, quite the journey for you all. So it is worth it. How has been this whole experience so far?

Jess: I mean, it's been like a dream come true in many ways. But I think one of the most exciting parts in building DEV that I personally didn't really think about, initially, because I was just excited about having DEV become a household name for developers and having it be this resource that is part of your career. But in order to accomplish all of this, just the company building aspect has been probably the most exciting parts. Like I spend most of my time now thinking about just our internal processes, about our team happiness. Ben was talking about how performance is an accessibility concern and we want to serve a global community. And so we've built a team that's globally distributed and just thinking through our company culture, like all that has actually brought me probably the greatest joys in building out DEV. And that's definitely not what I thought initially when it came to building out this community.

Ben: I think for me, the individual high impact moments that have sprung up when you give people a platform and a voice are pretty remarkable. You can kind of imagine that like, yeah, sure, if you have a lot of people congregating, certain special interactions can happen and we try to empower more good things than bad things. And some of the good things have just been so cool to see, like people just making connections, finding jobs, launching software projects on the site that wind up being huge. So we can trace some five digit star GitHub projects that really got their legs on DEV because we provide a space for people to kind of come together and kind of congeal on things that really maybe exist on Twitter if you catch enough lightning with an idea. But you don't really get into that, you don't really get to explore that nuance.

Ben: And maybe HackerNews is a space to launch things a little bit, but we really feel like the community elements, when people actually come together on our site, really deliver a sort of this extra special situation. And regardless of growth and metrics and anything that you can kind of see as a graph, I think it's the individual little moments where we can kind of directly see one thing leading to another, like all at once, is pretty cool. And just hearing people that got jobs through the site, one way or another either they explicitly, we have a place where people can post jobs if they want to. And that's certainly a component of it. But otherwise, it's just people kind of making natural connections, finding their voice, demonstrating who they are. Of course, we found a lot of the folks within our team who were either just posting on the site and we got to know them and they eventually sort of really gelled with us or contributing to the community through our open source and they eventually became full time team members. All those little anecdotes are just so darn cool.

Jess: Yeah. I think a magical moment for me is seeing this unfold in real life. So I was at CodeLand Conference last year and I was in the elevator and I saw this interaction between two people. They were like kind of looking at each other and they're like, "Hey," and then they realized that they knew each other, but they knew each other through DEV. And they were like, "Oh, are you this person on DEV?" And that was just so cool for me to be in the room and see that, see those connections being made in person. And yeah, and to what Ben was saying, many people from our team are people that we first got to know either through the platform or through the open source community. And if anyone's listening and considering open-sourcing their code, it's a really great way to find a future team members.

Julián: What about the future of DEV? How does it look like?

Ben: Well, if you go to dev.to/future, we have a post which sort of is our current state of the future. And we really feel like it's important to keep people looped in because we're a community platform, but also a community business. And if we're going to be serving the community, we want everyone to know that this is the plans, this is the future, this is what's going on. And for us, our core thing we think about most days in terms of the future is the future of our open source project so that we can evolve our business in a way where most of our business work is supporting our open source project through hosting, services, etc. And really evolving what we do as software service providers so that as our company grows, we don't have to max out our current sponsorship driven model and things like that, which helps us sort of get from one point to another. But is not necessarily what we want to scale up and make our big picture business model. So we are going really hard on our open source stuff. And we have a lot of really cool stuff coming down the pipeline.

Jess: Yeah. So our company mission is to empower community. And it's not to specifically empower the developer community, even though that's what we've been working on. And so like what Ben said, focusing on our open source so that people are empowered to build their own communities in the future, whether or not their technical. Yeah, so future looks like any person being able to click a button, stand up their own social network and have access to their own data and just have that transparency because they're powering is through that open code.

Julián: So I had the opportunity to write a blog post, I think a year ago, at DEV.to, and the experience was amazing. I love it the way you, not only offer, but the way you interact with the people. It's very nice. I want to keep creating more content there. I think, especially for my Spanish speaking community, which is the one I mostly target. But thank you for what you do because it has been a great place for us developers to contribute and to share and collaborate. Any final words for our audience today?

Ben: I will say that you should check out some of the work we're doing in terms of our own podcast. If you're listening, you're probably a listener to developer oriented podcasts. And not too long ago, we joined forces with CodeNewbie. So they're proud of our organization, if you've heard of CodeNewbie, and they have a really brilliant podcast. And we are working to expand what we do in podcasts. So we have a couple of new podcasts coming up and if you're going to be spending time on DEV you will probably see when we launch that and stuff. So we don't really need to get into where to find that right away. It's still sort of a work in progress. But keep an eye out for what we're doing with our podcasts, I think they're going to be really awesome.

Jess: So DEV is actually running a conference this summer called CodeLand. It's actually the fourth year of the conference and it was run by CodeNewbie, but they have since joined our family and so we're co organizing with them. It's virtual, so you can tune in from anywhere and it'll just be full of inspiring talks and hands-on workshops for anyone looking to level up in their career.

Julián: And to finalize, I want to thank you Ben and Jess, for joining us today on this Code[ish] episode. Again, thank you very much for what you do and for this project and for enabling this beautiful developer community all around the world. And looking forward to have you back here on a future episode.

Jess: Thanks so much for having us. It was great chatting with you.

Ben: Yeah, thanks so much.

About code[ish]

A podcast brought to you by the developer advocate team at Heroku, exploring code, technology, tools, tips, and the life of the developer.

Hosted by

Avatar

Julián Duque

Principal Developer Advocate, Heroku

Developer Advocate, Community Leader, and Educator with experience in Node.js and JavaScript

With guests

Avatar

Ben Halpern

Founder & CEO, DEV Community

Ben is a Canadian software engineer by trade and co-founder of DEV. He has been working on startups and entrepreneurial ventures most of his life.

Avatar

Jess Lee

Co-Founder & COO, DEV Community

Jess leads day-to-day ops at DEV & commits code whenever possible. She replicates Taiwanese street food & entertains her past life as a musician.

More episodes from Code[ish]