Anil Dash has been in tech for a long time. He’s a vocal advocate for inclusion and humane tech, writes amazing blog posts (and tweets!), and is now the CEO of Fog Creek. He shares how he navigated his impressive career in tech and how he builds kindness and community into his company's products.
[00:00:01.26] SY: (Music) Welcome to the CodeNewbie podcast, where we talk to people on their coding journeys, in hopes of helping you on yours. I'm your host Saron and today we're talking about coding and community. (Music) You've probably heard of Anil Dash - he's a veteran of the tech community, writes amazing tweets, and he is the CEO of Fog Creek.
[00:00:30.03] AD: I'm Anil Dash, I'm the CEO of Fog Creek Software, which among other things is the company that makes Glitch.
[00:00:36.18] SY: He's a huge advocate of community, inclusion, and just being nice to each other. But how do those values translate into an actual product? What does that look like? Today, we talk about how to build products based on our values. After this.
Digital Ocean is the easiest way to deploy, manage, and scale your application. Everything about it was built with simplicity at the forefront. Setting, deploying, even building. Their support is amazing - they've got hundreds of detailed documents, tutorials, webinars, and community managers, so if it's your first time deploying an app, they've got great tools and community to make it nice and easy. Try Digital Ocean for free, by going to do.co/codenewbie and get a hundred dollars of infrastructure credit. Link is in your shownotes.
[00:01:31.05] I don't know how much people know about it and how many awesome things have come out of Fog Creek - can you give us a quick rundown of the company and what it's done?
[00:01:40.09] AD: It's been around for seventeen years and has created a series of products over the years that people love. It started with Fog Bugs, which was one of the first really popular bug tracking apps. The team co-created Stackoverflow, a couple years after that the team invented Trello. And then about a little less than a year ago, we launched Glitch as a friendly community where anybody can create the app or the website of their dreams, and it feels like it's on a path to be a full-fledged sibling to some of its other successes in the past, and I saw that, that there was something that great coming along, and I thought - I gotta be part of this, and joined the company in late 2016.
[00:02:17.27] SY: Yeah, and I remember you telling me about that, and I thought wow, I really can't think of a better person to be a champion for the community and also have such an important role as CEO at an important company like Fog Creek - it seemed like such a great match. But can you tell us a little bit about how it all started for you - how did you get into tech?
[00:02:35.05] AD: Sure. I almost can't remember a time when I wasn't in tech. I was very lucky, my parents got me my Commodore Vic 20 computer, which was a very primitive, early home PC, that we got when I was five years old. And what you did is you wrote basic code and you made the programs that you wanted to use to code, and initially saved them on tapes - cassette tapes, so I'm that old.
[00:02:59.01] SY: That's so cool!
[00:03:00.09] AD: Yeah, it was really cool, and I fell in love with it, the idea that you could create something. And it was your work that made this thing light up on the screen, especially as a kid, was just revelatory. And even as late as in high school, I got a summer job, installing software for somebody or plugging in their printer for them, to write software, and I literally started with Visual Basic on Windows because I knew Basic from that computer I had as a kid.
[00:03:28.15] SY: So, where did that take you? I know you're a very famous blogger, was that as a result of your experience in tech, or observations about tech?
[00:03:40.07] AD: Well it's interesting, as much as I loved tech, and I'd still say this is true, I was never a great coder - I sort of taught myself enough to be dangerous and build the things I wanted to build, but I was never formally trained, and I got to work with great coders early on, so I knew what it looked like to be around people who were that good. I loved the arts, I loved activism, I loved writing, I loved these things that were other parts of culture. I live in New York City, and when I first came here, my first jobs were being the tech guy in a place that did promo or the music industry, being the tech guy at a newspaper, so it was translating between these worlds that then were very separate. Now, of course, every publication is of course is a website or digitally connected. But in that era, to bridge the gaps between - well, these are software people over here, there are techies over here, and these are creative people over here, and to have one foot in both camps was always my passion, so when by the late nineties I felt like I had something to say, it just felt natural to put it up on the web and what I realized since I started doing that in 1999 was I found a community of bloggers - the first, maybe the first, yeah I think there were about fifty blogs when I started.
[00:04:57.28] SY: Wait, period? Like that's it?
[00:04:59.02] AD: Yeah, on the internet, yeah.
[00:05:00.11] SY: Wow, oh my goodness.
[00:05:02.15] AD: Yeah, and I thought I was late! Fifty people doing it, so everything's been covered already. And we had a dinner of every blogger in New York City, and that dinner was two tables in a restaurant.
[00:05:18.05] SY: (Laughs) That's amazing. Ok, I want to go back to something you said earlier, where you said you worked alongside really great coders, you know what that looks like. What does that look like?
[00:05:28.18] AD: So I see it a lot, I can kind of play some instruments but I'm not great at it, because I don't know music theory. But when they start talking about, this is the conventional way that you're going to modulate between these chords, and this is a traditional progression, all of a sudden I'm like, looking around, like, I don't really know - I know the notes but I don't know what you're saying. And I think that was how I felt about computer science, is I would get around these women and men that were building the tools I was using, and I'm a pretty good front-end web dev, but as they got into systems work, and they got into complex data structures, and they got into harder concepts, one of the things I think about, I would read Joel and software talking about interviewing programmers, and I don't think, certainly not intentional, but he wrote about light board interviews, and his concept was - I want to understand the way somebody thinks before you consider hiring them. But it mutated as the industry took it and ran with it, and became about almost this hazing ritual, of we're going to force you to go through some incredibly elaborate algorithmic work with a whiteboard marker, in a totally contrived environment. Reading that stuff, I thought, God, I'd never pass one of those tests. Like I don't have the chops for that - I don't code that way. It's ironic because I think every pretentious coder's cliche about Stack Overflow totally applies to me, where I'm like I will absolutely Google some error message, get on Stack Overflow, find the snippet of code, drop it in, see if it works, and then sort of hack it together until it does. And I know there are people that think, that's not the real thing, that means you're not serious. I think if it runs and it works, then you're it, you're a coder. And so I never say I'm not a real coder, I never say, I'm not qualified, but I just think I have huge respect for the people that do have the formal training.
[00:07:27.19] SY: Yeah, so I'm curious, how do you feel about today's landscape of new developers, because there's a lot of people , myself included, who came out of bootcamps, self-taught, non-traditional backgrounds, and I think some of us are totally fine not being the biggest and the baddest coder on the team, but I think a good amount do want to be really technical and be respected in that way. So would you consider in the last five, six years this rise in non-traditional backgrounds in coding, how does that affect your idea of a good coder, a not so great coder, how do you think about that?
[00:08:08.22] AD: It's complex, there are some parts that are better and some parts that are worse, and I think the way it breaks down is, there's never been a better time as a coder to learn the basics, because there's just so many more resources. I didn't have Stack Overflow, we didn't have blogs when I started coding, there was nothing.
[00:08:25.19] SY: You had your blog.
[00:08:26.05] AD: Yeah, even before that, when I think about when I was a kid when I was coding, you had a username that came with your PC and it was like, here's some basic information, good luck to you. And you sort of put it together, but if you got stuck or you had a real hard crash or an error, there was nothing to do. Maybe you could go to a user group if you lived near one, but I grew up in the middle of nowhere, so we didn't really have any. So it was like, I guess I'm just gonna not do this. I guess it's done! I guess I have a bug, it's over. And so the idea to be like a community of people to talk to, or things to look up or to learn from others was huge, it was really powerful. So that is better, the fact that there is probably an answer out there, it might not be easy enough to find, you have to fix those things, but there is a world of knowledge that exists - that's really powerful. I think at the same time, the things that so many of us know about the toxicity of some parts of coding culture, about the barriers put up culturally and socially, those are in some cases worse than they've ever been, and even though we can talk about it now, it doesn't mean those things have been dismantled, and so I think the intimidation factor of saying, I need to step into a world where - it's a small percentage, but some percentage of people are going to try and stop me or try and present this as not being for me, I think that's really, really hard, and I'm on the lucky side of this where the funny thing is, as an Asian-American man, there's a bias towards believing we do have technical skills, I think I've been estimated as a better coder than I am, rather than a worse one. Certainly no one goes up to me at a conference and goes, are you a designer? Are you here with your girlfriend? I never get that question, right.
[00:10:07.23] SY: It would be amazing if you did. Just saying.
[00:10:12.21] AD: I'm very mindful of that, people are like, oh, you definitely know how to code, and I'm like, well maybe, and so I think that reckoning is different for each of us, and then in terms of like what do I consider a good coder, this gets into who would I hired. How I come down these days is looking at ironically, what are your values. I want to understand, if you're given the choice of how to implement this feature or this capability in the platforms that we're building, have you thought about the way if affects the world. And in particular, the hardest question I think a lot of us face is, it's fairly easy to imagine failure. What if I build this and it doesn't work, what if I ship it and it doesn't scale, what if I launch a new product like we've been launching Glitch, and it doesn't take off into some huge success, that's something people normally prep about. And to sort of say, not only do we hold ourselves to that benchmark, of we want to make things that impact the world, and learn from where there have been shortcomings, like Stack Overflow wasn't always friendly enough to newbies, and that's a real - the fact that you're not only trying to match the levels of one of the greatest tech companies ever, but then also raise the bar, and say along the way we're going to try to fix these other bugs and be more inclusive at a company that, even though it's always had great values, was not always as broad in its hiring and who it recruited and retained. To me, the reason that I wanted to take that challenge on is cause that's what the entire industry has to reckon with.
[00:11:40.07] SY: Yeah, so what I find so interesting about your belief and your big push to be friendly and kind and welcoming on your platform is the fact that you're the CEO saying this. Usually when I hear messages like that, it's the community manager or the evangelist or the diversity and inclusion person. I honestly don't think I've ever heard that message so consistently as the one coming from you, and you're the CEO. Why is that so important to you?
[00:12:12.18] AD: I think there are more CEOs now that can articulate that they care about that, but certainly there weren't a lot when I was coming up. The first CEO who reached out to me said, do you know somebody that could train our team on inclusion, building a welcoming culture, and on diversity? The first CEO of a successful company that ever reached out to me and asked me that question was Michael Pryor at Trello. And it was a successful tech executive, a white man who'd built by that time a company that had already had several successful products, and Trello was in the middle of a rocket ride, paused during that process, while Trello was still independent - this was before it sold to Atlassian or anything, and he says, I need to teach my team about it and I need to learn about it - can you help me find the resources to do it? That left a hell of an impression on me. We have this moment where we can either take on the responsibility of that and be worthy of it and step up to the fact that tech broadly is the wealthiest and most powerful industry that's ever existed. And therefore we have the highest responsibility. Or we can become what the robber barons were when the titans of oil and steel and everything became dominant in culture.
[00:13:24.19] SY: So it's interesting to me that the CEO of Trello - especially at that period that you described - cared so much, or cared at least enough about diversity and inclusion to reach out to you and say hey, can we troubleshoot, solve this together. Because if I think about a product like Stack Overflow, Stack Overflow is as valuable as its community. You need people to submit answers and ask questions, so it makes total sense why someone would care about diversity and inclusion. But for something like Trello - it's a product - why in that conversation do you think diversity and inclusion was important in that context?
[00:14:04.02] AD: One of the things - this is going to sound tangential but it's related - one of the things that I always say to other folks that are prominent in tech when I get the chance to talk to them is we can't make our arguments on economic grounds as to why we need to do the right thing. I know that diverse teams build more successful businesses and more successful products. I don't ever frame to our team that the reason that we care about inclusion of our hiring is so can make more money. And it's because there has to be a moral gravity in it - and it's short term, but short term can be somebody's entire life, so we have to push past that. And I think I'm fine to use it as supporting logic, like it's fine if your second point is also building an inclusive team is good for business, but it ultimately has to start with what your values are. And the way that ties back in is, could Trello could have succeeded if its boss didn't care about people? Probably. But people are who they are, and their values are what they show when nobody's looking. Their values are what they show when it isn't going to translate directly, immediately, into the bottom line. So I think, why would somebody ask that question before it is required by either we're having trouble hiring, or we got in trouble in the press because somebody did something, or x y or z. The reason they do it earlier than that is because they actually give a damn, because they really care, and it's real. And I think more and more it's becoming obvious which organizations have that kind of leader and which don't.
[00:15:35.16] SY: I like that, I like leaders that give a damn.
[00:15:38.01] AD: Yeah, me too.
[00:15:41.01] SY: So, when we talk about having a great community and being really ethical and caring about people, how do those values translate in the product you're currently working on, the big one, Glitch - how does that show itself in that process?
[00:15:56.01] AD: First a little bit of background about what Glitch is - Because people might not know - we talk about it as a community, but from a technical standpoint it consists of three things. One is, go to Glitch.com and you can scour a bunch of apps that you can either use or you can do what we call re-mixing, which is cloning them and having your own copy that you can modify. Connected to that is a development environment, like an IDE, where you can actually edit code live in real time with one or more people, like Google docs for editing code. And then the third part, probably the most groundbreaking part from a tech standpoint, is while you type, as you code, it's automatically deploying your app live to the web - automatically. And the whole ethos of it is this un-encumbrance from the hard parts, the frustrating parts, and focusing on just the creative part. Given that that's the goal, to be more like that, then what else do you have to have? And the biggest thing I see is that you have to feel safe to create, and this is not obvious, but one, it's different to create in front of others or with the potential of others joining you, then it is to do it on your own. And the second is, we don't work alone. There is nothing that is not a remix or a recontextualization of somebody else's work or is not influenced by somebody else's work. And a lot of this too is informed by the fact that we share DNA with StackOverflow, where we just see - what is to code without the knowledge of others? It's impossible. And so, when you build that ethos into what you do, then it's imperative to make this a safe place to create, and then the second part of that is, if you want to make a safe place to create, the predicate to that is you have to start by making the most vulnerable people safe first. So you have to take the people who've been most marginalized, most pushed away from conventional tech, and say you are going to be at the center of this, you're going to be the first people we reach out to and say, does this work for you, does this meet your needs? Because if you can get them, you know the rest can do it too. That took me a long time to realize. And I think there's this sort of - how do you find this balance where everybody has their place and everybody feels like there's a place for me where I can at least create and set my ideas in front of people.
[00:18:10.15] SY: But do you think there are rules, features, things, that Stack Overflow has done - or maybe you've done as well on Glitch, that have prevented something like that to happen, or -
[00:18:23.11] AD: Yes, absolutely.
[00:18:24.08] SY: Tell me about that.
[00:18:24.22] AD: It's design. On StackOverflow I would credit Jeff Atwood and Joel Spolsky, the co-founders, as direct reasons why they made a design that doesn't have these issues. Intrinsically designing things to afford good behaviors and positive interactions, and rewarding them. Because the other thing is like, you look at what it takes to advance within Stack Overflow and get more reputation or whatever it is that you aspire to, and it's all very positive, helpful, generative behaviors. On Glitch we have a feature where if you get stuck you can mouse over your Error message or look in the margin of the editor and there's the emoji of the person with their hand raised, and if you click on it, it says on the homepage, Joe is looking for help and you can be like, click the button, oh Jane came in to help Joe and now you're editing this file together, and it drops you into the exact line in the editor that this person was editing when they asked for help.
[00:19:15.27] SY: That's awesome. That's so cool.
[00:19:18.12] AD: Yeah, and that idea of live, real-time, multiplayer coding is really exciting, but the interesting thing about it is we don't have any scorekeeping or badges or anything on Glitch, but the only thing it'll show your profile is an indication of status, is whether you've ever helped somebody. And if you've been helped. And it's early, we're still, these features are very new, but there's a really strong signal, which is the way that you earn prestige, or you have a signal that you were a real member of the Glitch community, the only thing you can do that connects you to others is help them. And so that is an expression of our values built into the product.
[00:19:57.03] SY: That is so interesting. So do you also have a place for explicit code of conduct, guidelines, something that - what does that look like?
[00:20:06.18] AD: We actually have a couple - you click a button and it'll create a file for you, when we have a - you choose different licenses, so if you choose an open-source license like MIT or GPL, you can do that with one click. We have the same thing for code of conduct creator, and we are very explicit about having a code of conduct that you click a button and add it to your project does not mean you have a code of conduct, right, you have to enforce it, you have to have policy behind it, and we've done everything from instructional videos to pieces that we've written, talking about the ethos there, those kinds of things. So we're investing in here's a way to learn about the theory of this thing, but at a basic level, even the fact that you can go into our coding environment and with one click, add a code of conduct to your open source project -
[00:20:50.23] SY: That's very big.
[00:20:52.19] AD: Yeah, it's a very strong signal about what you make easy, what you set as your default, shows the world what your platform is about. And with Glitch, you make a new product, and first of all, in Glitch, the idea is that you remix a working project. So you're probably starting from a project that already exists. But even when you start blank slate and you're typing everything in yourself, it's still one click to add a great open-source license that enables sharing and collaboration. It's still one click to add a code of conduct that enables people to know there are ground rules for how to participate with one another. Those are design decisions where yes, it's about convenience of the person who's creating, but also a signal of what is this tool about, what is this platform about, what is this community about, and what do we stand for.
[00:21:34.02] SY: Absolutely, and that's the argument about the code of conduct that I've never really understood, because people say, if someone's going to be a jerk, they're just going to be a jerk, no code of conduct is going to stop it, and I'm thinking - but that's not the only audience for a code of conduct. When I look a meet-up, a conference I'm about to attend, and I see that they have one, to me I think, ok great, these organizers take this seriously, inclusion is important to them, creating safe spaces is important to me, they've thought about the issues. So it is instantly a much more welcoming place and a place where I feel comfortable attending or speaking than a conference that didn't put any thought into it. So you're not just talking to the possible mean people -
[00:22:14.02] AD: Transgressor.
[00:22:14.17] SY: Yeah, you're sending a signal to everybody.
[00:22:17.11] AD: It's also - it's such an interesting thing, too, because that same argument would be that we shouldn't have any laws because criminals won't abide by them -
[00:22:22.19] SY: Right, yes, it drives me nuts!
[00:22:23.22] AD: And for me, it's a much simpler case, which is - we do a lot of things that are about signals, that are about social signals. And we encapsulate our values and our norms for communities by doing so. That's the hard part, that's the next fifty years of coding. That's the big challenge.
[00:22:42.28] SY: Coming up next - we talk about how to prioritize the needs of the community by making technical decisions. We also talk about how the code that we're all working so hard on may not be as important as we think. After this.
Digital Ocean provides the easiest cloud platform to deploy, manage, and scale applications of any size. They remove infrastructure friction and provide predictability so you can spend more time building what you love. Try Digital Ocean for free by going to Do.co/codenewbie, and get one hundred dollars of infrastructure credit. Link is in your show notes.
[00:23:21.26] So you made an analogy earlier where you said that the way we have to think about designing for community and really making sure people feel safe - it's like if, you know, prioritizing the lions over the gazelles and how we really need to take care of the gazelles. How do you know the needs of those gazelles?
[00:23:42.26] AD: I think it's hard, I think it's really hard, and I think I have no room to complain, I'm the CEO of a tech company, but I think one of the challenges of being in the position that I'm in is you are isolated, almost by nature, from hearing those who most need to be heard. So you have to build a process by which you interrogate your assumptions and by which people have access to being heard. It's funny because there's really pragmatic things - you talk about using discourse, and we do too - you have this thing where people actually learn, as it turns out, over time, how to build tools that afford good discussions. And it's like - why does this one forum work so much better and so much less likely to have serious kinds of abuse on it? It's because there's a lot of very smart design decisions in it, they give moderators a lot of power and let people learn the ability to manage each other's responses. And so it is no coincidence that somebody steeped in learning how to build a community of millions of people that don't treat each other negatively, is able to build another tool where they have the same behavior. So I look at both levels, one is - should we have a platform, an infrastructure, a forum where people can give us feedback and we can talk to them, and at the second level, can we make sure that when we enable such a thing, we're using tools that are also designed to be positive and supportive and don't allow abuse and all these others things. Who makes your tools matters. What their values are matters. If they're thoughtful and intentional about what they do, matters. And then when we get to how do we make sure people get heard, it's not obvious to somebody if they haven't thought about it, why is it that the Glitch social media on Twitter, on Facebook, or whatever - are, every single day showing black creators and their work in designing the web and their work in creating culture, is one - we want people to see these brilliant people. And see what they're making and be inspired by them, and one of the key ways to make a creative community is to have good inspiration. But two, the second part of that is to be explicit about Glitch is for you. And it's a weird and shocking thing to me that all these other creative tools - and I think Twitter's a great example of this - rely on, depend on, the creativity of black creators. And can never say it.
[00:26:03.28] SY: That's right! Especially Twitter.
[00:26:06.20] AD: Twitter's the exemplar of this. And can't say it. It can't even acknowledge that there's this disproportionate audience that is driving creativity. I want to make sure that every product I ever create makes everybody feel welcome. Period. For the rest of my life. Or I want to be out of this business. These are my choices, as a CEO who cares about metrics, who cares about the bottom-line and the business that we're building and making something valuable - I look at every community that's taken off as a creative community, whether that's YouTube or Soundcloud or Twitter or Tumblr, and I'm like - ok, who has succeeded in tapping into the creative zeitgeist and building this generative community that really shifts culture in a big way? Every single one has done it by having black creators be welcomed and successful and thrive on the platform. And that's one example, but if you look at the like - it's old-fashioned, but if you want to make sure your community is valuable and useful and accessible to everybody, invite them in, explicitly. Tell them -
[00:27:07.18] SY: Explicitly, yes.
[00:27:09.12] AD: Tell them - I see you, and you are welcome here, and we're going to do what it takes to make you feel welcome.
[00:27:13.10] SY: And I think that's what people miss, is I think they don't understand what it's like to always feel like things aren't for you. I'm so used to being in a world where things are not made for me, whether it's make-up, a movie, job opportunities, whatever it is, I'm so used to having to find the thing that's labelled ethnic, or black - I'm so used to that, in every part of my life -
[00:27:43.19] AD: Is this webcam going to work for me?
[00:27:45.11] SY: Oh, don't get me started on webcams.
[00:27:48.00] AD: Exactly.
[00:27:51.02] SY: Oh my god, it drives me nuts. So I'm very sensitive to that, and I'm very sensitive to explicitly showing faces and voices to send the message of, this is for you, without calling it a diversity initiative, because that kind of ruins it.
[00:28:09.06] AD: Yeah, I think, I was joking about this with the team, I am not going to do our - it's Glitch and it's February so here's a tweet about George Washington Carver.
[00:28:22.00] SY: Thank you so much. I really appreciate that. (Laughs).
[00:28:24.05] AD: I'm just like - who wants that? Who's that for? What's the - in what world is somebody going to be like, now I'm going to code here. And I think if you're instead - like we did an interview with a fellow who's the creative director of Vevo, we were like, oh, I watch these videos all the time, I use this site all the time, I think they've done a really interesting job of branding themselves and making themselves distinct from even like living within the YouTube environment. This guy's got a lot to say, I'm going to watch this interview and oh by the way it's brought to me by Glitch, so that's interesting, that makes me think about how I'm going to design my projects on Glitch. So that's it - it's us and it's real and I think, I'm very mindful - and this is true of every community that we serve. We hear you, we see you, we're doing this stuff - what do you want us to do?
[00:29:11.07] SY: And I think that bringing it back to individual coders, code newbies, people who are doing more of the technical day to day stuff, I think that that is a really hard to answer. If I'm building a product on my own, or even if I'm leading a very small team, how do I decide whose needs to prioritize, how do you make those decisions?
[00:29:35.16] AD: I think one of the things to understand - it's hard and it's not constant. It changes all the time, so the choice you make can be different later. And a lot of times a company doesn't make a decision about it because it is hard. Why aren't we trying to serve Japanese users if they like the product? If it's not hard, you're not thinking about it. The other part is to understand that where you put your resources is the way your company expresses its values. There are many criticisms of capitalism, but if we accept that these are capitalist organizations, then what they spend money on is what they care about. You cannot say you care about a certain thing if you have no investment in it and no resources put on to it. So a really useful thing is - you can't decouple what's thought of us as the budgeting process from your company values, your organizational values, your institutional values, and what your goals are at a human level. They have to be reflective of one another. As a team member, can you make the case of like - we are ignoring this audience and we need to do better, and I say that on our team, Jen joined last year and she was like, your accessibility story on this is terrible and we need to get better. And she did the full audit and then once she was like, can I take the next step, it was like two weeks, we had to refactor all of our front-end work on improving accessibility. Which means we're spending money - resources - on accessibility and not on community or other aspects of community, or marketing or whatever else. And it's not perfect, we still have a lot of work to improve there, and we haven't built a good-enough process, but that's what it looks like. When you say our values are x and our investments are y, x needs to equal y.
[00:31:24.05] SY: So in that example with Jen focusing on accessibility, for two weeks, it sounds like things like accessibility and having really great community tools and being really friendly, is in addition to the "regular tech stuff" you have to do. Do you feel like they're always competing with each other?
[00:31:43.29] AD: Not always, but a lot of the time. The hard part for us is we're not a venture-backed company. Fog Creek has never taken any venture capital.
[00:31:52.01] SY: Oh wow, that makes it even more impressive.
[00:31:54.05] AD: And there's no outside money, there's no waterfall of cash pouring into our hands where we can take tens of millions of dollars and hire a bunch of people to do stuff. And so we have to be very judicious in what we invest in. We have to be very thoughtful about these things. And there is resource contention - there is a tension between - we're going to spend money on this and not that. Glitch is probably the most technologically advanced product we're ever tried to put out as a company. So as soon as you click on remix on a Glitch project, we are cloning the entire repository of code that backs it up, standing up an entire new container, deploying the entire node environment, bringing the code over, and then giving you a live editor, that usually happens in about 700 milliseconds. And yeah.
[00:32:39.14] SY: Wow, that is so impressive.
[00:32:41.01] AD: It's wild. And the funny thing is, you can't really tell. Like people don't know what's happening when they click remix, they're sort of just like ok, I get a little dancing turtle and then I've got my code. And I think that one, to have the confidence to hide the complexity of what's happening there, that's serious stuff, that's real, real technical work. And I think that all speaks to that point of like, is there a tension with investing in tech? Yes. But can we set the bar where we can alternate between doing something that's groundbreaking at an architectural level and a deep code technical level, and doing something that's pushing the state of the art and advancing what's possible with community. And with inclusion.
[00:33:25.14] SY: So within that example when I hit remix and I don't realize all the awesome, amazing, complex technical aspects of it are even happening, do you worry about dumbing down what tech is, what code is, what it can do, particularly if we're talking about newbies and people who are just getting started?
[00:33:46.17] AD: No, and I think there's a couple reasons why. One is, I'm pretty much explicitly trying to destroy the priesthood. I don't want this to be that you have to know all this stuff. I do think a lot of old-timers, we tend to write these blog posts once a year, things are too hard now! Back in my day, I could FTP some files onto Geocities and everything worked great. We're like, yeah, but you couldn't do all the cool things you can do now. The true part of that lament of things were simpler back in the day, it's like - there are millions of people whose first experience was Neopets or customizing their Myspace homepage or updating their livejournal theme, or that first ten or fifteen years of the internet was really a period of a lot of generativity, a lot of creativity, a lot of accessibility to people being able to say, and just the power of your sourcing the browser is enough to get me started on my way - and this was my experience - to learning more and more and more. Then I think we lost a little bit of that, even as the tooling has gotten better and the infrastructure has gotten better and these new frameworks can do a lot more, we lost some of that, and so for the most part, the part of Glitch that's visible to users is a pretty standard container. You can actually open up a terminal in Glitch and see at a command line what's happening, and it's just Linux, and it's just a container, and it's not a sandbox where you can't do the real thing, it is real code, and we're real adamant about that. And a lot of times historically people have tried to build an app without coding, drag and drop, do these things, and the problem is you always outgrow it, and then you're like, I want to know the real code. And nothing that you've learned applies. And with Glitch it's the opposite - it's real node, it's totally standard, the code runs anywhere. It's why with one click you can import a GitHub project. We just want you to run it.
[00:35:33.04] SY: That's so cool.
[00:35:33.16] AD: And, similarly, you can take it with you. If you're like, I hate Glitch, I don't like this dude, he rants at me on Twitter, I'm going to take my phone and go home, you can do that. But what that does is it means that everything you do is applicable, everything you do is knowledge you carry forward that's still useful and that makes you a real coder and makes you a real credible member of the community. And nobody that answers a question on Glitch has to know Glitch, right so they're like, here's how you do this front-end dev, this question I got about how to make this thing work, they don't have to learn Glitch. They can take their knowledge and apply it directly. And then later on they might choose to explore and be like wow, Glitch seems to do a lot, I'm going to try it out. What we want to do is earn a community that comes to us because they think it's valuable to respect what we're doing, find enough value that they have a good exchange.
[00:36:22.22] SY: Well I think that's a great place to transition to fill in the blanks. Are you ready?
[00:36:25.02] AD: I am ready.
[00:36:28.02] SY: Number one - worst advice I've ever received is?
[00:36:30.19] AD: I'm lucky this is an easy question for me.
[00:36:33.26] SY: Do you get a lot of bad advice?
[00:36:34.28] AD: No, but my father, who's brilliant - he's a PhD, an immigrant, and all these things that are incredibly impressive, but he did tell me when I was a young man that I should spend all my money so that I should earn more. Which is horrendously bad advice.
[00:36:52.09] SY: That's terrible!
[00:36:53.21] AD: It's phenomenally bad advice. Don't do that, I don't know why he said it, it's a weird thing to say, I'm trying to be charitable, I think it's his reaction to coming from nothing in a very, very poor part of India to the privilege and decadence of being in America, but there is no real rational explanation for it. It's just horrendous advice, I suggest you don't do it, on the other hand it's funny and I laugh every time I think about it.
[00:37:18.05] SY: That's an awesome worst advice. That was good. Number two - my first coding project was about?
[00:37:22.02] AD: I think there was a game on the Vic 20 that I read about - back then, this was in the early 80s, there were computer magazines at bookstores. Both of which have gone away now - none of those things exist anymore, but you would go to the newstand rack and there would be a magazine for Apple 2 owners and a magazine for Texas instrument computer owners, and there would be a magazine for commodore computer owners. And then you would read the magazine and go, here's a cool game, you're going to run in a circle. And then they'd say now, just type in the source code for it, and you flip to the back, and there would be twelve straight pages of microscopic print source code that you would transcribe character for character and then you would type run and it would say there's a syntax error and then you would go through and you would find a hundred syntax errors and debug them one by one, and eventually you would find one where you'd go, I typed exactly what's in the magazine, and you'd realize the magazine has a typo, and then you'd fix that, and then at the end of it you'd get a game that wasn't any fun at all. And most of my early coding experiences were pretty much that, for a couple of years.
[00:38:28.15] SY: That's awesome. Number three - one thing I wish I knew when I first started to code is?
[00:38:36.12] AD: I wish I knew that code wasn't the part that mattered. I was so obsessed with - I want to get better to skill, and I want to find the more clever way of solving this problem, and I want to learn this new data structure, and I want to do x, y, and z - that one, at a very literal level, your code's going to get thrown away. It's going to get refactored, you're going to go back and look at it a month later and go, what was I thinking? Somebody else is going to come in a year later and be like, we're throwing all of this away, this person doesn't know what they're doing - so it's disposable, it's the most disposable thing you can create, almost. Also that getting attached to my code was ego, it was hubris, it was just me feeling like I'm smart and I want people to see that I'm smart, if they look at the code or whatever. And it wasn't thinking about users, and it wasn't thinking about the people who couldn't even be users, and it wasn't thinking about what's the problem we're trying to solve, and it was sort of this temple to myself, and the revelatory moment came when, as I said, I got the chance to work with some very, very skilled coders, and they were like, what's the simplest thing I could do that would work?
[00:39:44.16] SY: That's a different mindset.
[00:39:46.02] AD: And what it was was like one, I gotta look at this thing in a couple of months and debug it, so I'd like it to be comprehensible. And two, somebody else might look at it and I don't want to be embarrassed by like them thinking I was just trying to be clever instead of helpful. And I think those things go hand in hand - what does it take to be a great coder, what does it take to be a great technologist, what does it take to make great products? Well there's this consensus that's been reached by the people who are the best in the world at it, who are unimpeachably great coders, is really examining ourselves, really reflecting on ourselves, and saying - are the things I do aligned with my values of being welcoming and thoughtful and useful to the majority of the people in the world, especially putting first those people who have had barriers put in their way. And if not, can I change myself and the way I see what I do to make sure I'm getting closer to that ideal.
[00:40:40.26] SY: So I've heard that a lot, that sentiment, especially from more experienced developers and people who've been in tech for a while, say that the code really isn't all that important, there are many other things that are more valuable, more important than the code itself. At what point do you come to that conclusion? Is that just kind of a natural place to get to after you've been doing it for so long, or is there an event that triggers that - how, what causes that to happen?
[00:41:08.27] AD: I think it depends on the person. I think, to be clear, it's easy to say that the code doesn't matter, but the technology matters. I think, for example, like Glitch wouldn't be succeeding as well if it hadn't been a true technological breakthrough as well. But it's the combination of the idea of the innovation and the implementation being sufficiently successful, but the specifics of the code - there's no line of code in the product that won't get replaced or hasn't been replaced. So being able to distinguish between the realization of an idea and the current momentary implementation of it -
[00:41:50.14] SY: Oh, I like that.
[00:41:50.23] AD: Is a hard evolution to make, and I think, I don't know anybody who didn't first have to go through getting their work aggressively refactored by somebody else, or having their product be thrown away, or having somebody be harshly critical of the thing they'd open sourced, or whatever it was, before they had that revelation. I think it comes through trial by fire - I think it comes through pain and through being humbled, and that's part of why I try to tell the idea to people earlier in their careers, especially the folks that I mentor, you don't have to go through that - whether it's a humiliation or the shame of like, I had the security bug that caused the company to be embarrassed, or whatever it is. If you can be open to that sort of reflection before the crisis point, then you get to get to that more evolved mindset sooner.
[00:42:41.22] SY: Yeah. Huh, very nice. Well thank you, Anil, so much spending time with us and talking with us about community and coding and all things Glitch and Fog Creek - you want to say goodbye?
[00:42:52.22] AD: Yeah, thank you so much for having me, it's really a joy and I love the idea of getting to connect with the CodeNewbies audience and get to say, I can't wait to see what you create. That's where I get my inspiration, it's people who are starting their journeys as coders, who have these ideas that nobody else in the world can realize and it's going to take what all of you do to really see what this stuff is capable of being.
[00:43:17.20] SY: And I'm excited to see what people make on Glitch as well - so if you're listening and you haven't tried Glitch yet, make sure to give it a shot and let us know what you've created. And that's the end of the episode. Let me know what you think. Tweet me @CodeNewbies, or send me an email, email@example.com. If you're in D.C. or Philly check out our local CodeNewbie meetup groups, we've got community coding sessions and awesome events each month, so if you're looking for real-life human coding interaction, look us up on meetup.com. For more info on the podcast, check out www.codenewbie.org/podcast, and join us for our weekly Twitter chats. We've got our Wednesday chats at 9 PM EST and our weekly coding check-in every Sunday at 2 PM EST. Thanks for listening, see you next week. (Music).
Thank you to these sponsors for supporting the show!