The home team chats with Jon Chan, Stack Overflow’s Director of Engineering, Public Platform, about his path from self-taught developer to director of engineering, why his management mantra is “Delegate and elevate,” the profound value of a diverse and inclusive workplace, and the Neopets-to-frontend-development pipeline. Plus, Jon gives excellent advice to all the self-taught developers out there.
Quizzes and games like Roblox are a good way to build your knowledge, whether you’re learning to code or becoming a K-pop expert.
ICYMI: Listen to our conversation with HashiCorp cofounder Mitchell Hashimoto, who recently returned to an IC role after serving as CEO and CTO.
Connect with Jon on LinkedIn or follow him on Twitter.
Jon Chan One of the things that also motivated me to join Stack Overflow in the first place was, I got the sense that it was going to be a place that could support me being fully who I am. I came out as a gay man when I was 14, basically. I'm a person of color as well. And trying to find an environment where I felt like it was going to be safe and where I could actually fully express myself was something that was really important to me. So, thinking about inclusion, diversity, equity, inclusion, and belonging was something that was at the forefront even from when I was trying to consider joining Stack Overflow in the first place.
[intro music plays]
Ben Popper UiPath offers a platform for automation, combining Robotic Process Automation, or RPA, with a full suite of capabilities like AI. Developers of all ranks are building upon the UiPath Community Edition. Expand your tech suite and join UiPath community at community.uipath.com.
BP Hello, everybody. Welcome to the Stack Overflow Podcast, a place to talk all things software and technology. I am Ben Popper, the Director of Content here at Stack Overflow, joined as I often am by my wonderful co-hosts, Matt and Ceora. Hi, y'all.
Ceora Ford Hi!
Matt Kiernander Hello!
BP We have a special guest on today who Ceora noticed on Twitter, where she spends most of her time, but also someone that I know from my stint at the New York office, we used to sit together at lunch often. Quite a fellow, Jon Chan. Welcome to the Stack Overflow Podcast, again. Welcome back.
JC All right. Thank you so much for having me. It's so good to be back.
BP Jon, you were recently promoted. You are now a Director of Engineering on the public platform team. Tell folks a little bit about your origin story. This is the MCU, this is the Stack Overflow universe. So tell us a little bit about how you ended up here at the company and what you've been working on up till now. And a little bit of what that new title means and what you're hoping to work on.
CF Wow. What was that like as a self-taught developer, having a company reach out to you for the first time?
JC Oh, gosh. I really couldn't believe it in the first place. I remember when I was in school, especially as someone that was self-taught, and even just trying to do some of the interviews with the big co's that were out there and failing miserably at some of those interviews in the past where it's like, "I don't even know what a red-black tree is, so please don't ask me more interview questions about that kind of thing." And so it was a really big shock for any place really, to reach out to me to see if I wanted to be an entry-level software engineer of any kind, let alone a place like Stack Overflow, where I really considered it a place where some of the best engineers that I could possibly think of, folks that I'd been following for years and years were working at. So for them to reach out to me was a really big surprise and shock.
CF Yeah. So I want to hear about after you started as an entry-level developer who was also self-taught, what were some of the biggest shocks for you as working as part of a team as a professional developer? When you come from that background of usually working on projects by yourself, what was that like entering that environment?
JC Yeah. The first thing that was much of a shock and sort of something that I really needed to adapt to, was just really working on a team, for one. Because I was a self-taught dev, a lot of the projects that I was working on were things that I came up with by myself and then eventually just released, or really didn't collaborate with a lot of other folks with. And so the very first thing that I really had to adapt to was working with a lot of other software engineers and basically everybody was a lot more advanced and a lot more knowledgeable about the kind of code that we were writing and the kind of technologies that we were working with. So that was the first adjustment that was there. And again, one of the things that I was really concerned about was that, "Oh gosh, I'm a self-taught dev. I don't have the background here and I'm working with folks that are literally in the Top 10 all-time reputation at Stack Overflow," and that was a really intimidating experience at the beginning. But one of the things I found out really quickly after I joined too, was just how supportive everybody was when it came to actually helping me learn how to code and really get up to speed with all the tech that we were working on. Stack Overflow is all about trying to help people expand their skills and their knowledge and all of that, and that was reflected inside the company just as much as it was in our product.
BP Yeah. One of the things that I've always really enjoyed about working here was that emphasis on education and career development or personal development. When I came in there was a little bit of a coding course that was taught by Sara Chipps, our Director of Community at the time. I did it with a whole bunch of other Stackers from across every department. There were people there from the technical side of it, but I was in marketing, there were people from sales. And a pretty generous stipend for people to check out conferences, take courses, order books and things like that. So it's kind of cool how the creation of the company was all about spreading knowledge and they really do emphasize that internally for folks. So, Jon, you mentioned a few things that I thought were interesting. Self-taught, came in and joined a team, kind of had to learn that. Talk a little bit about career progression, that's a topic we touch on a lot during the show. The IC versus manager role, folks who have gone into the manager direction, decided they want to go back to being an IC. What was that like for you? Did you start out as an IC and then move slowly into management? And if you did, I think that's the way it went, when did you learn, "Oh, there's something about this role of growing a team or working with a team that I enjoy?"
JC Yeah, absolutely. I definitely started as an entry level individual contributor when I first joined Stack Overflow, and that was the position that I had for several years. I did get promotions over time, like I became a senior engineer then eventually became a principal engineer a few years later. But being a manager was not necessarily something that was on my radar for a long time, until I'd say the opportunity presented itself later on. I've always enjoyed coding, and I've always really enjoyed specifically how to help other people learn how to code, too. I mean, that was a big part of the motivation that I had for building Bento was just like, "Oh, I want to collect all these different resources in one place to help people learn for free." And it was very much in line with the work that I was doing at Stack Overflow. And I think there was some time, especially once I got to a place where I became a principal engineer, where I was like, "Listen, what's the way that I can make more impact here? Is it by me getting even better at writing code, or is it something else where I can actually have a larger impact here?" And one of the things I kept thinking about was that I can get 10% better as an engineer, faster when it comes to writing code, and building better products overall here. But I think the thing that will really maximize the kind of impact that I want to make is by helping other people become better engineers. And that's not just with the products that we were working on at Stack Overflow or the side projects that I had, but mentoring other developers and helping them grow in their careers here. And so, that's really where the switch sort of came on, where it's like, my ability to help and develop this product or to help other people become better as developers, I can do that internally here by becoming a manager and trying to help them become better developers through coaching, through mentorship, giving feedback. That's really where that switch came in.
CF And what did that look like? What were some of the things that you discovered as you began to grow more into the manager role? What were some of the things you learned, some of the things you didn't anticipate that were maybe difficult or interesting or something you enjoyed?
JC Definitely. I think one of the very first things that I had to realize was that this felt like a real career switch. I think for a lot of people that end up getting into manager roles, not just specifically to engineering, but a lot of other disciplines that are out there, design, sales, anything like that, where you eventually become a manager. A lot of those folks I think came into those roles because they were very successful at a particular craft or skill that they're sort of specialized in in that discipline. The better you get at code, great, you're able to deliver things more and more. But once you become a manager, the skillset is completely different. You're no longer working with computers and with code anymore, you're working with people, right? That was, I think, the biggest shift that I really had to make there, and that was one of the very first things that I remember my manager at the time told me was that, "Hey, you're not going to be able to solve the same problems that you've been solving with code like you have been in the past here. It's a very different skillset now at this point." So instead of actually spending time in my editor, I spent a lot of my time in docs, reading, writing, having conversations, listening to people. That's really where the real shift was for me, was that, "Hey. This is not about code so much anymore. Yes, you're still an engineering manager, but it's really about the people and how to make them put their best foot forward.
MK I have a question on that then, because I'm kind of at the stage of my career where some of my friends have reached senior level engineers, and they're thinking about making the next step to management. One of the conversations that's come up recently is, do you need to have a good technical foundation, say for example, a senior level engineer, to become a good people manager, to become a good engineering manager? I'd be very curious to get your opinion. Do you need those technical chops in order to become a good manager, considering that you're no longer working with code? Or can you be a great manager with less of a technical foundation?
JC Yeah, that's a great question. I think that it is still important for you to have a technical background, a strong technical foundation, in order to be an effective leader in an engineering organization. If you're going to be giving direction, or you need to tiebreak certain decisions or provide a strategic direction for the team and everything that's under your purview, you need to be able to have that technical foundation. In addition to, of course, garnering the respect of the folks that are supposed to be under your leadership, having that technical background is going to be very important. But one of the mistakes that I do see a lot of managers end up making is that they end up still coding a lot while they're supposed to be managing. And again, this sort of goes back to what I was just saying before, where the core of your work is really about helping people become better developers, not to be a better developer yourself. And so you get to this place where it's like, "All right. How do I get to a place where I'm going to help empower people to learn better and become better developers themselves instead of doing that myself?" I think that's where the balance of the shift ends up being.
BP Yes, I have a slogan: "Delegate and Elevate." I haven't made a tea cozy yet or anything, but this is a new mantra for me. So I guess thinking a little bit about that, another big thing that you and I have talked about from the time that I joined, especially I think as I got to understand like what role affinity groups play at Stack Overflow and your participation in them, was this idea of diversity, equity, inclusion, and now belonging as well, it runs under a few different names. Talk to us a little bit about your involvement in some of those activities at Stack Overflow.
JC Yeah, definitely. One of the things that also motivated me to join Stack Overflow in the first place was, I did get the sense that it was going to be a place that could support me being fully who I am. I came out as a gay man when I was 14, basically. I'm a person of color as well. And trying to find an environment where I felt like it was going to be safe and where I could actually fully express myself was something that was really important to me. So thinking about inclusion, diversity, equity, inclusion, and belonging was something that was at the forefront even from when I was trying to consider joining Stack Overflow in the first place. Knowing that a lot of folks that were already in the company could vouch for that, some of our founders cared a lot about that as well. Just knowing from the blogs that they had written about these issues, that was something that was really attractive to me. And it wasn't until I joined Stack Overflow that I started thinking a lot more about that and how it would be a really critical part of my work. So I'm now president of the Asian and Pacific Islander affinity group for those folks and employees that want that kind of support. That's actually one of the very first affinity groups that we had started I think back in like 2015 or so. And that's still something that I'm doing right now. And what's really interesting to see as a company has evolved, is to see how much DIB is now becoming more and more something that's just for employees, but something that's actually being baked into how we think about our products, how we position ourselves in the market, all of those different areas. If we're thinking about Stack Overflow as a place that's going to try to serve as many developers as possible, we need to be thinking about people from all of those different backgrounds. And so, as we've evolved as a company, as a product, as a brand, those are all things that I think we're starting to think more about.
CF Do you have any tips for people who are either starting out, or maybe they're at the senior level, or maybe they're at the manager level, who want to work advocating for diversity and inclusion into their career? I think that's something a lot of people are passionate about and a lot of people care about, but when it comes to actually executing on that in the day-to-day job, that's not as clear. We talk a lot about how important it is, but I don't think a lot of people know how to actually advocate for that in their day-to-day job. So if you have any tips I would love to hear that.
JC Yeah, absolutely. I mean, I think the very first thing that I think about is to recognize that you're not alone in this kind of work. Even though you may be the only person that seems to be thinking about that at a company, there are lots of other people that really care a lot about diversity, equity, inclusion, and belonging. Other organizations, a lot of nonprofits that you can go to to reach out. I certainly make use of a lot of nonprofits that I was already a part of in terms of doing volunteer work, to go to them for resources and support, even if there wasn't already built-in support at the particular companies or the organizations where you're trying to enact some of that change or to try to make a difference on that particular front. So first of all, it's just knowing that you're not alone in thinking about this kind of stuff, and it's really hard to make any sort of meaningful change or impact just doing that on your own. So that's the first thing. Second, along those lines too, is to find the other allies that you may have around a sort of issue, even if it's not related to a particular identity that you have, that you want to be able to advocate for. Everybody has some aspect of diversity, equity, inclusion, and belonging, or I truly believe that they do, that they want to get behind and work with you to make that better for everybody at the company. Once you find like a coalition of certain folks that really care about these issues, then I think it's really important to get leadership buy-in. That's one of the other things that I really appreciate about being able to work here is that we have a great dialogue with our senior leadership team and the folks that I've been able to work with on these issues here, so that we can get the buy-in so that it's not just treated as like an extracurricular thing on the side of your main responsibilities as an engineer, or a manager, or whatever that might be, but it's treated as like a first order, important thing that is critical to the mission, and that has buy-in all across the different levels that are there. So finding allies, leaning on the resources that you have even outside of an organization, and then trying your best to see how you can actually fold in your leadership there, I think are great places to start.
MK With your experience working in this field for the duration of your career, do you have any specific wins or success stories that you'd like to share on the podcast if you're comfortable doing so?
JC It's interesting, actually the first thing that I think about when people ask me, "Oh, do I miss something about engineering, or what is the thing that you're most proud about when it comes to even a diversity-equity-inclusion perspective," is actually maybe the last project that I really worked on before I stopped being an individual engineer and becoming a manager, which was the April Fools that we did a few years ago. Some of our listeners may not be aware, but we did like a 90's time machine April Fools a few years ago. Basically we turned the Stack Overflow question page into like a GeoCities website, where there was like a glitter cursor that you were having to go across, and also we had ASCII art in there. And the reason that I'm proud about that, not necessarily because it changed people's lives or anything like that. It put a lot of, I think, smiles on people's faces, but it sort of felt like a full circle moment for me. Like I was saying before, I started off learning how to code by working on GeoCities sites and Myspace and Xanga sites and all of that. And to be able to go and actually change something that I knew almost every coder would recognize immediately, with the guest book and all of that stuff, was something that was really, really gratifying for me, and to pay homage, I think, to the history that I had as a self-taught dev.
BP Yeah, we need to just have like a celebratory episode or two where we focus on this. Ceora has brought it up a few times, but Neopets, Myspace, Xanga's a new one, Tumblr. I think people of a certain generation, we've discussed many times how getting into these things as a teenager was part of discovering yourself, forming your own identity, wanting to have an online identity that you can customize, led you to front end web development and from there down the path. And then there's like an older school version of that with some of the guests we've had on where, "Oh, I was just really big into video games and eventually I ran out and I had to build my own." Or, "I was making an online bulletin board, or running a forum for Tony Hawk Pro Skater 3, and that led me down this path of needing to learn things so that I could advance this personal passion that I have." So, very cool.
CF I want to add really quickly, which kind of goes in tandem with all this. I've been trying to find what the current generation's version of that is. What is the thing that kids today or teenagers today are doing that helps them learn how to code?
BP Making NFTs.
CF I came across something very interesting. I kind of thought that maybe it's not Tumblr anymore, but a lot of people build quizzes on Tumblr for different fandoms. So like, say you're a huge fan of a certain anime or something like that or a certain K-pop group, they'll have like quizzes to help you learn who the characters are or who the members are and things like that. And they're building this into Tumblr and I'm pretty sure they're using code to do that. So, just a side note, the legacy is still going on of people who are using these social media apps to learn how to code.
BP Definitely. One I know is Roblox which my kids play. And in that one, you can build a game and they have a whole separate editor that lives on the desktop where you can design a game and then, similar to Zynga or something like that, you can put in little in-app purchases and try to turn it into a business or whatever. So that's one people are definitely using. I don't actually know, I think it might use Unity. I'm not sure exactly what languages it uses but I'll look it up now while we're talking.
MK I know from chatting to quite a few of my friends who went through university doing computer science for instance, there was definitely more of a shift where people became aware of the kind of lifestyle that software engineers can lead in terms of the work and the compensation and the cool stuff that you can build. And it's a little bit sad because I'd love all these origin stories where somebody was like, "I wanted to impress a partner so I learned how to make a bot in Neopets," and you get those kinds of origin stories. Where I feel like a lot of the people learning how to code now are doing it from a much more entrepreneurial kind of mindset where they're like, "Cool, I want to build something that's going to grow and turn into a business," and that kind of stuff. And that's awesome, I love that, but I also miss the OG stories.
CF That's still there, though. That's still kind of there, a little bit. You can find it if you look for it hard, but it is.
MK I want to see more of those. I want to talk about more of those on the podcast.
BP Okay. Lua, which I'm not super familiar with, I have heard of this programming language once or twice, is what Roblox is in, “lightweight, high-level, multi-paradigm programming language." Okay, there you go. I shared that they have like a whole online course. That's the other thing. Jon, you mentioned sort of offhandedly that you were studying certain things, but you were a self-taught developer. Were the things that you were studying at all connected or they were completely separate? Like your academic pursuits to the degree that you did that, and then the coding side of it.
JC Oh, yeah, it was basically completely separate. Just to give you an idea, I was coding when I was in high school, but then when I was trying to decide where I wanted to go for college afterwards, it was between architecture school, which I actually got into, or it was me going to be studying philosophy and I ended up going the philosophy route. So being technical, I think I maybe took one computer science course the entire time that I was in school. I think it was for iOS development way back before Swift when it was still Objective-C, because gosh, I could not figure out how to make heads or tails of Objective-C at the time. So I was like, "I think I need a little bit of help to go into this," but that was it.
CF We talked a little bit about the origins of how you got started coding with building projects. Do you still build any projects or maintain any projects in your spare time? I know that must be a little bit extra since you're spending most of your time managing and things like that. But sometimes I'm sure you have the desire to code a little bit.
MK I'd be remiss to ask, because there's probably a ton of self-taught developers listening right now, and they have the opportunity of an engineering manager to give golden advice on what they should be doing. So for any self-taught developers out there right now who haven't yet landed their first job, what kind of advice would you give them in order to stand out against potentially their peers who are coming at them from a computer science degree or they're just trying to get their foot in the door in the market?
JC Yeah, that's a great question. I think the first thing that I'd say to folks that are self-taught devs that are just trying to get into their very first position– I think one of the things that I hear a lot of people that are in that position talk about is that like, "I don't have the computer science background with like the data structures and algorithms portion of this, and I didn't get to go to a bootcamp, so I don't really know how to build paths and all of that stuff." One of the things I tell them is that a lot of the people that are in bootcamps, or that are in a computer science degree, also feel like they might be missing some of those areas too. So if you're from a more traditional background where maybe you went to school, like a four-year degree program, where you did study computer science, for example, they probably spent a lot of their time learning things about operating systems or data structures and algorithms, but they haven't really had a chance to do web development because that's not taught as widely as I think a lot of folks might think that something like web development might be taught in those settings. The same thing kind of goes for the bootcamp grads too. They probably are able to get a lot of the background when it comes to maybe how Scrum might work or maybe those technologies that are on the job that we're sort of thinking about a lot. But they haven't had the chance to just try building something on their own without a lot of guidance, which is a really critical skill that I think is important once you are on the job. There are areas where, even if you might think that someone from a computer science degree program or something like a bootcamp that they have, you also have a lot of things that are unique that you bring to the table. So I think that's the very first thing to think about. And in the end, the way that I did this was by building projects. Keep building the stuff that really interests you, like that's how you're going to be able to showcase your skills and ability. Yeah, that's probably the advice I give to folks that are in that position.
BP Yeah. The best resume is being on the front page of Hacker News. I actually have a question. Jon, I don't know how involved you are in hiring, so maybe this isn't a question for you, but if you are to the degree that you could field this question, when you look at an application, let's say somebody doesn't have a CS degree. How would you evaluate them? Would you look at personal projects? Would you look at what they're doing on GitHub, Stack Overflow questions? If they didn't have an academic degree to validate, "Hey, I made it through four years and so I have this competency,” what could you use, aside from obviously bringing them in for a technical interview, to kind of evaluate whether or not the person is a good fit for the role?
JC Yeah. So, I am very much involved in the interview process and yes, we are also hiring, so if you're interested in applying for Stack Overflow, would love to see you come over. But the things that I'm actually looking at when it comes to a resume, especially for someone that is from a non-traditional background, or maybe doesn't have a background that someone that went through a four year degree program might have, the things I really look out for are really three things. One, sure, technical proficiency. We want to see that this is not the very first time that you're going to be coding or building a web application or something else like that. So personal projects, school work that you might've done, hackathons that you might've went to. Those are things that are important that I would certainly be looking at, too. The second thing that I think I really take a look at is a lot of those sort of soft skills or what I like to call professional skills. Have you been able to be a leader inside of an extracurricular, for example, Were you president of your hackathon's team or something else like that? I think what a lot of people don't realize, especially when they're thinking about hiring folks, is that it's the technical skills I think that you can probably have an easier time coaching. Like, "Oh, here, go learn React." I didn't know C# when I first joined. You can spend some time coaching somebody that doesn't have the technical skills or the knowledge there pretty easily, but it's really, really hard sometimes to actually coach some of the softer skills there. Personal accountability, your ability to communicate proactively, make sure everybody's in the loop there. So, anything that can indicate that you have leadership skills that you execute, that you like to lead teams, that's also something else that I like to see. And then really the last thing is that you have an interest in the place that you're replying. One of the things I love to see is someone that took some time to maybe volunteer to help out with coding classes, or maybe they've actually contributed on Stack Overflow. We want to see that you're enthusiastic about the mission, and that goes for any company, not just for Stack Overflow. If you can show that, "I read their blog and I'm really interested in this thing." Or, "I listen to the podcast that you guys put on," that's something else that would be really useful to know when you're applying for a job.
BP Very cool.
CF My name is Ceora Ford. I am a Developer Advocate at ApolloGraphQL. You can find me on Twitter. My username there is @Ceeoreo_.
MK I'm Matt Kiernander. I'm a Technical Advocate here at Stack Overflow. You can find me on YouTube and Twitter @MattKander.
JC And I'm Jon Chan, Director of Engineering at Stack Overflow. You can find me on all socials @JonHMChan.
BP All right, everybody. Thanks for listening, and we will talk to you soon.
[outro music plays]