The Stack Overflow Podcast

From life without parole to startup CTO

Episode Summary

Welcome to a new year. For our first episode back, we're featuring a chat with Jessica Hicklin, the CTO of Unlocked Labs. She describes what it was like to enter prison with a life sentence at the age of 16, how she taught herself to code in while incarcerated, and how she turned that into a new role as a software engineer and entrepreneur after being released at the age of 42.

Episode Notes

If you want to read more about Jessica, you can check out the blog we worked on together for the launch of our Overflow Offline initiative. If you've ever wondered what it's like learning to code from an XML file of raw Stack Overflow data, be sure to check this episode out.

You can learn more about the Supreme Court case that led to Jessica's release here.

Her company's mission is to build a better justice system from the inside, specifically by educating incarcerated individuals so they can teach the next generation and have valuable skills upon release. Read more about Unlocked Labs here.

Our lifeboat badge of the week goes to mx0 for answering the question: How do you extract the 'src' attribute from an 'img' tag using Beautiful Soup?

Follow Ben on Twitter and if you enjoy the show, be sure to leave us a rating and review.

Episode Transcription

[intro music plays]

Ben Popper Hello, everybody. Welcome back to the Stack Overflow Podcast, a place to talk all things software and technology. I am your host, Ben Popper, Director of Content here at Stack Overflow. Today I have a very special guest as some of you may know from our blog and recent podcasts, we announced a project recently called Overflow Offline, where we're trying to support organizations like Kiwix that make it easy to download and read and search an offline version of Stack Overflow, and we're also trying to work with a lot of organizations, from folks who are learning inside of the prison system, to scientists in remote locations, to people who live in countries without a ton of internet access, to get their hands on this in case they want to learn how to code or build something with software. So today I'm very excited to have Jessica Hicklin, who is a user of Overflow Offline, who is the Chief Technology Officer at Unlocked Labs, on the show to discuss her experience with some of this stuff. Jessica, welcome to the program. 

Jessica Hicklin Thank you. It's good to be here, Ben. 

BP So for folks who don't know, just briefly talk a little bit about who you are and how it is that you ended up with a XML version of Stack Overflow as your first kind of encyclopedia for learning how to code.

JH That's actually a good way of characterizing it. Hi, everybody. My name's Jessica Hicklin, and like Ben said I am the CTO of Unlocked Labs. We're a nonprofit trying to build better correctional systems from the inside out, so that's kind of how I come to it. I was once inside the correctional system. I went to prison at 16 as a juvenile on a life without parole sentence, and spent 26 years before I came home. But during that time I was trying to learn how to code. And for those of you who don't know, there's no internet access in prison so there's no Googling it to figure out anything. You have textbooks if you can get your hands on them and a lot of reverse engineering to understand, until one day a friend of mine who used to work at IBM asked the question. He said, “How do you do development without Stack Overflow?” It's a really good question that I had no idea what it meant at the time. I said, “What's Stack Overflow?” And through an arrangement with the administration, he sent the old stack dump XML files, like 90 gigs of them, and it took me all of about five minutes of setting it up to go, “Oh, where has this been all my life?” And that was really the game changer in my own programming career and also in the project that we're working on. 

BP So for people who haven't heard yet, talk a little bit about what Unlocked Labs is and maybe the genesis of that, because I know it started with your own learning, but now has spread to other institutions and has a really cool kind of pipeline of teaching people and then making them into instructors and partly sort of builders within that network.

JH Sure, absolutely. And it actually illustrates how we now use the offline version of Stack Overflow in two ways. So Stack Overflow started, and there's a long backstory, by all means reach out to me from our Unlocked Labs site and I'll give you the longer version. But the short version is, there came a time where my understanding of purpose in life, having a life without parole sentence, was to give access to education to the incarcerated. But due to changes in prison environments I just wasn't able to anymore, and so we started looking for a solution. I had seen Khan Academy and the idea was, “Well, what if we could build a Khan Academy for prisons,” which was quite audacious given the fact that, again, I had like two textbooks and no programming skill, but that was the idea. And we set about building the first prototype and getting administrative buy-in and eventually this became a thing where they said, “Huh, maybe we can actually do this. Okay, build it.” And that's when I had to say, “Uh-oh. I pitched some of the ideas, this is a great idea and I have no idea how to do it. Not a clue.” But I guess that's been my experience since I've been home. Like most good tech things, that's how they start. It's like, “This is a great idea. We haven't built it and have no idea how we're going to do it, but let's do this.” And that was really our start. So I had seen something on PBS and I had a friend reach out to a local organization called LaunchCode, which is a non-profit coding program for non-traditionally tech individuals, and my co-founder, Haley Shoaf, is the one that the email eventually ended up reaching and we connected. And I explained this wild idea to her, my friend had kind of prefaced it, that we want to build this education system for prisons that have no internet and I need help, a lot of it, and now. And so she coordinated with some administrators and began sending pieces of the LaunchCode coding curriculum, because at first, I needed access to it myself– I didn’t know how to code. There were some other motivations behind it at the time, the laws that were starting to change, a real opportunity for me to come home was coming up, and like most prisons, there was really no credentialing system. So if you think about my situation, I was 16 when I went to prison on a life without parole sentence, which means I had no education, no work experience, no job skills. 

BP Right. I remember you telling me AOL was your last sort of brush with web technology.

JH Yeah, you can date me like that if you want to. 

BP My bad. 

JH Yeah, well, to give a slightly more interesting context, I was just talking about this with one of my coworkers the other day. I said, “Well, technically I didn't start on AOL. I started with a PowerMac and eWorld.” Dear God, like three of us listening to this will probably remember what that was. But it got me into AOL and that was actually my only experience with the internet, which actually made this project idea even crazier because our pitch was, “Well, let's do a full stack web development distributed application that people can access education through,” which really meant that I didn't really know what I was talking about, but I knew the idea, I'd seen it. And so she provided this coding curriculum, and when I started to see it and we started talking, the idea was like, “Well, what if we just start teaching this coding program? I mean, that's a good start. That's an education that people can use.” And so we collaborated in offlining the LaunchCode curriculum and began teaching it in a pilot version. And actually that's the first, I'll call it public use of Stack Overflow at the time for us was, we have these coding students in a prison who are trying to get skills. They're going home. A lot of them had been in prison longer than 10 years, so it'd been a decade at least since they'd touched a computer. Clearly they didn't have a current skill set, and for some crazy reason we said, “Let's teach coding.” And so, again, there was no Google. You can't just look up all the million resources we have access to on the outside. The only thing a student could do when they were stuck was look it up on the offline version of Stack Overflow. And actually, it's funny. It's used so much by the outside version of this curriculum that we had to flag for people, if you copy and paste the answer from Stack Overflow, because the answers to half this curriculum are in there, we're going to have a conversation. 

BP Right, right. This is a teaching moment, not a copy paste. 

JH This is a teaching moment, don't cheat. And the whole, “Oh, you're only cheating yourself,” and all those other things. But it was actually one of the greatest joys of teaching that class. And because I taught the first class, and again, I'm self-taught and by that time I'd been in prison 20 years, to walk around and see people digging through Stack Overflow the way that people do out here and finding answers without having to ask the teachers and the TAs and everything else was actually a really beautiful moment in this process. 

BP For folks who don't know, what was the environment like inside the lab? Was there an internal network? How did you build it out? What was the user interface? Just a little bit of sort of how you managed to enable students to kind of get access to this. 

JH Oh, good point, and it actually kind of dovetails into the second branch of what we do at Unlocked Labs. In the first iteration of this whole process, there were some old computers that were just sitting around. They were purchased for a program that they never had the staffing to teach, and so we just asked, “Can we use this computer lab?” It was located right next to the public library in the prison public library, and there was 12 terminals, all these little corrals on desktops. We managed to convince somebody to let us connect it to a server that was networked from another room and we put the entire curriculum and then Stack Overflow on it. So it was a local server serving the offline version of Stack Overflow, and it really was like a digital classroom from the early-2000’s is the best way I know how to describe this. There was a literal projector and an old school projection screen and then us standing up there for a while writing on an actual chalkboard. White boards weren't a thing. And our class ranged from people who were going home in a year to people who were never going home, from ages from roughly 30 to 68, I think was the oldest guy. Everybody in the class I think without fail had been in– well, one guy, everybody else had been in prison at least 10 years. The longest term person that had been in prison was 22 years. And so we had this large variety of folks who either had experience or no experience whatsoever, and a classroom that was from the 2000’s. And really that's kind of what paints why this resource was so important to us, because it was the only modern thing we had. And then the LaunchCode curriculum, and at the time the original curriculum we were teaching Python and Java Spring Boot Development. So we had this server that we set up as like a Maven server and a resource library server, and then a Stack Overflow server, and then the curriculum server itself. And so students would log on like they were accessing the internet. And actually we did our best to make a proxy internet where it mimicked their real world experience that they were going to have because these are employable skills. People were going to go home and approach an employer.

BP No, that makes total sense. Yeah, you want them to not feel like they're dropped into something totally unfamiliar, to as best you can simulate that working environment. 

JH We added our GitHub server to it as well, so that they can do that kind of work. Thank God for Stack Overflow for me, because at the end of the day I'm the one that's designing the infrastructure for all this, and I’d get to a piece of the curriculum that was like, “Okay, so this is how we push and pull and do GitHub.” I'm like, “I'm offline. I don't have GitHub. How do I replicate this very important process for these brand new developers? And by the way, I'm a brand new developer myself.” And it was actually in Stack Overflow that I found the configuration for setting up an Apache base Git server so that people can push and pull and merge and share projects and all that. Every facet of this project that we did was touched by Stack Overflow. And to the final part of that question so it leads into the second thing we do, the environment itself, the curriculum itself was a website. We set up an Apache server and took everything that was hosted on a website out here and converted it to use localized URLs and point to local videos and resources, and then we built a framework around it that was an LMS specifically for one program when we got started. 

BP A Learning Management System, just for people who don’t know, I want to clarify that. 

JH And so that was really the genesis of what became UnlockEd Labs now. And we had a pilot coding program, we had the fledgling seed of an LMS, and everything else sort of happened organically. We finished the first pilot and proved that guess what? You can teach people in prison how to code. People did capstone projects that were vetted by the outside, people from the organization. And so we began to look at what it takes to grow this, and that growth process took two directions simultaneously, which has been an interesting part of our journey. We expanded the coding program to where we teach it in three prisons in Missouri now. We've had 120 students I think, give or take a couple, graduate the class now who are certified as coders ready to go out in the world. 

BP Yeah, I mean, I'm a former journalist. I have to say, when I first heard this story I had a hard time believing it because it's amazing to me that you could learn about Apache servers and Python and Git and figure out all this stuff on your own, or I suppose probably with the help of the curriculum, your co-founder and some of the other folks in there. But it's just so inspiring to me that people can be such autodidacts and that with the help of that community you can get so much done, to the point where, as you were just sort of saying, people are being prepared for work on the outside. 

JH One of the particular restrictions of most prisons in Missouri is that you could only ever own six books at a time. So it wasn't like I had a huge resource library easily available to me. So again, it was Stack Overflow where I learned even what Apache did, let alone how to configure it. I can't tell you how much that research made a difference in our world. But we graduated the first class and decided let's grow this thing, and so we eventually expanded to three prisons and now have 100 and some odd graduates. But more interestingly was what happened to the LMS, or the Learning Management System, that we built just to provide this curriculum. My outside co-founder, Haley, I was having conversations with one of the local universities –Washington University– that does a prison education program, and they were just so fed up with the for-profit offerings in the space, not only because they're for-profit, but more so because they were just unreliable. It's funny, we did some user testing before we ever fully engaged with them and one of the conversations was around what happens to students who enroll in too many curriculums. They would download too many courses, they would lock up their tablet and they were kicked out for an entire semester until they can come back, so it was a real bottlenecked education. And somehow that turned into a conversation around, “Well, what if our currently incarcerated developers who know and experience the problem could build a solution?” And even now I look back and go, that was, like most other things in this adventure, it was a crazy idea. But we eventually ended up in partnership with Washington University and where Mellon Foundation funded to take some of these developers from our original pilot program, put five of them in a room –I was the one of the five– pay them federal minimum wage and have them start developing a solution. And we did. We set up an Agile-based development shop and I functioned as the project manager for a while, and Haley, my outside co-founder, functioned as the product owner. And we began working on building out a solution that not only works for a coding program, but also works for whatever offering is available in prisons, and that's when we really began to research and understand how large of a problem this really is. And there are roughly 2 million individuals incarcerated in the United States right now. 95 to 97% of them will come home one day. The problem is 83% of them will go back within 10 years. 

BP Yeah, recidivism. It's a real problem.

JH Yeah. I'm just so baffled by how that number exists, that this is considered success that there's an 83% failure rate. And what's more surprising is that we don't really know how to fix it. Because there's no public open source infrastructure that collects data that can be analyzed, prisons really have no idea what they're supposed to be putting in front of people. There's independent studies that have been done. Most of them are meta studies that are done on analyzing data from different parts of the field and conglomerating it, but at the end of the day there's no real time data being collected about education in prison. We're just randomly assigning things to people hoping it deals with whatever their criminogenic risk may be.

BP And also, kind of to the point of Overflow Offline and textbooks, in the world of technology the skills that are in demand are changing so rapidly that it would be hard in some cases to keep up with that. So I think part of what's beautiful about your program is having people who, as you said, are on the outside, people on the inside who have graduated, and people who are coming in. That's a wealth of experience, but it's a variety of experiences hopefully that can translate into more real world skills in the curriculum, as you like to say. 

JH One of the things that really came out of that first dev shop was that it's one thing to teach somebody how to write lines of code. It's another thing to teach them how to be a developer on a team. You put five people in a room and have them work on the same project and they've never collaborated. I will attest that it is a very interesting process, but it is also a necessary skill to be an actual developer in the field instead of just a freelance coder. And this is yet again where Stack Overflow came in handy, because while I worked in a closed circuit television station for a while as a system engineer, and I designed this coding curriculum from the inside out, you have to remember that I have weird knowledge gaps that I didn't even know I had. I mean, I didn't go to school for a CS degree. I had no reference materials to tell me even how you go about coordinating a software project, and I spent quite a few hours in Stack Overflow digging through ‘software development’ as a search term to even understand that there's this thing called Agile. And I eventually dug down through some threads to say, “Oh, this is what I'm supposed to learn, and this is the document I need.” 

BP Oh, absolutely. I mean, understanding that and coming into the workplace and somebody says, “Let's get to our first scrum. Let's get to our first standup. We've got a sprint. We're doing Agile.” If you don't know all that stuff you're going to feel completely lost, even if, when it comes down to the individual project as you said, maybe you can write the code. 

JH I wish I had my search history from Stack Overflow because I promise that one of the things I searched was, “What is Scrum?”

BP Yeah, exactly. Exactly. 

JH Which is crazy to think back on now, because at this point the project has been running for over a year. I've come home and the second developer came home, we work on the outside. We ended up forming a nonprofit, Unlocked Labs, around this work, and not just around the dev shop and the training program, but taking this product and actually applying it in the field. So at this point we've deployed it in several prisons in Missouri and we're poised to deploy it in a prison in New York in the next 60 days. The scale conversation is a longer conversation too, but the point is, this product that was developed by coders that were trained on the inside, most of them without tech experience whatsoever, is now being used in the field to solve a real societal problem. And the first version was made for offline use, but we've adapted it and now we have an online version. So this product being developed in prison by people who still don't have access to the internet is being deployed as a cloud offering and offered through internet access into a prison here in Missouri. So it's just fascinating to look back and really kind of reflect on, “How did we get here?” And at the end of the day, it's really that what you can do is based on the resources that you have available, and my resources consisted of some textbooks and Stack Overflow. And that’s how, even before I came home, I started to have some kind of understanding of what it was to manage a cloud deployment.

BP Right, right. For folks who are listening to this and want to get involved, can you talk a little bit about ways they could support your organization?

JH Ways to get involved. Well, a couple things I'll flag there. One, what we're trying to build is what we think should be public infrastructure. And what we mean by that is, look, we're not for-profit and we don't think anybody should profit off education in prison, so we're just trying to build something that we think should exist in society. If we do it really well, we'll go out of business. One of the first things is just simply talking. I mean, we're in Missouri and New York and we're looking at a couple of other states that we're having conversations with, but at the end of the day, people don't really talk about how big of a problem it is that there's no education in prison. There's this thought that when we send people in that they come home fixed, and it's just not the case. And so the first thing is just simply to talk to people about, “Hey, this is a huge problem. What are we doing about it?” Whether you're involved with a content provider or university, or just simply talking to legislators. They have to fund this kind of work at some point. So that's really our first one. Just talk about the problem. Get educated, and if you don't know what's going on then reach out to us. Unlockedlabs.org has a contact form on it, and it goes straight to me and one of my other co-founders, and we look at every one of those emails and we answer questions and point people in directions of resources. The next thing is, if you're tech involved, we have a nebulous group of about 11 people on this project right now. And I say nebulous because two of them are volunteers, four full-time employees, and then the five incarcerated developers, and we're trying to build a national solution. So if you're a coder and want to contribute, we recently had students from Stanford who are UX designers contribute to some UX research for us, and we're talking with people trying to get students from Harvard involved in doing some of the the AI or the machine learning we're looking at for the system. So if you're tech involved and you want to contribute to solving this problem, reach out to us. And the last thing I would say is, and I hate to be this person and end on this note but it's necessary. We are a nonprofit, and so one of our biggest challenges is that we spend a great deal of time fundraising to be able to afford the work. A thing that wasn't covered is that our program runs on prison-specific laptops, which cost roughly 500-550 a piece. And so the largest amount of the dollars that we bring in through philanthropy or donations goes to hardware that directly goes into the prisons for offering the education system. So if you're a funder or if you know funders that may be interested, please connect us and we'd be glad to explain in detail what our budget looks like and what our growth plans look like. But those are the three ways that people can probably help. 

BP Terrific. And then just to say, I will include a link in the show notes to Unlocked Labs obviously, as well as links to Kiwix and to our announcement. And I do know that Kiwix is dealing with one particular issue around a memory leak and they're looking for folks who are well-versed in Python to maybe help them out with that. And in fact, it is bountied on GitHub so there's a sizable reward. So if you're listening to this and you think you have the skills, I'll put some links in the show notes and we would appreciate the help.

[music plays]

BP Jessica, I just want to say again, thank you so much for coming on. As I always do at the end of the show, I'm going to see if I can shout out a member of the community; someone who came on and just helped spread a little knowledge that hopefully gets used by lots of folks. Today, a lifeboat badge is awarded to mx0, “Extract the ‘src’ attribute from the ‘img’ tag using Beautiful Soup.” I've never heard of Beautiful Soup, but I really hope that's a tech tool or programming language because it's a great name. All right, everybody. Thanks again for listening. We appreciate it. I am Ben Popper, Director of Content here. You can always find me on Twitter @BenPopper. Email us, podcast@stackoverflow.com, or leave us a rating and a review if you like the show. Jessica, just to say it once more– your full name, your title, and where people can find you on the internet if you want to be found. 

JH Thanks everybody for listening. I'm Jessica Hicklin, I'm the CTO of Unlocked Labs, And you can find me either through the Unlocked Labs site, or if you want to reach out to me directly you can email me at jessica@unlockedlabs.org.

[outro music plays]