 Next up, I'd like to welcome two folks from an organization called The Last Mile, Jason Jones, Senior Manager of Partnerships and Matthew Wilson, Senior Manager of Classroom Operations. The Last Mile is an inspiring organization focused on changing lives through technology. They are tackling the daunting problem of mass incarceration in the United States by providing education and career training opportunities to incarcerated individuals, preparing them for successful re-entry. Jason and Matt use GitLab as part of their DevOps training course, and they're here to share with you how it works and how you can get involved. Hi everyone, and thank you for joining our presentation on how The Last Mile is changing lives through DevOps education. Today, we're very excited to talk about how The Last Mile leverages the GitLab platform to incorporate DevOps skills into our courses for incarcerated students, providing them with exposure and practice with real world development workflows. Additionally, we'll describe how GitLab has enabled The Last Mile to facilitate collaboration between incarcerated students and our remote staff. In this way, it serves not only as a valuable educational tool, but a means for overcoming the unique physical and logistical barriers inherent in teaching students in an incarcerated setting. But first, we'd like to provide some background about ourselves and our organization. My name is Matt Nelson, and I'm the senior manager of classroom operations at The Last Mile. I have a background in education as a classroom teacher and teacher trainer. I joined The Last Mile in 2019 as a classroom facilitator at San Quentin State Prison in California. Today, I work closely with internal and partner staff to ensure that our students and facilitators have the information and resources they need to foster a productive and supportive learning environment. And my name is Jason Jones. I was introduced to The Last Mile in 2014 after spending about a decade incarcerated. Just like many of our learners today, Tianlium was my first exposure to technology in the form of building it. I came home to September 25th, 2018, and three weeks before coming home, I signed a work agreement with a tech company in San Francisco. However, a big reason why I came back to The Last Mile was to provide a level of insight of what to expect as a software engineer that was missing when I came home. Today, as senior manager of partnerships, I lead our conversations with existing and potential partners for Tianlium's future with a focus on creating mutually beneficial partnerships that impact our learners on a high scale. Tianlium was founded in 2010 by Chris Redlitz and Beverly Perente to help incarcerated individuals learn how to be entrepreneurs. However, in 2014, they pivoted to a coding program, so this program is a highly marketable skill and teachable skill. Today, we've expanded from a single classroom in California to 22 classrooms in facilities spanning a total of six states. We've had 300 people go through our program and be released, and have served over 600 students since our inception. Along the way, we've had a number of significant accomplishments, whether it's delivering live instruction via video call into prisons, having staff on parole lead remote instruction and run our helpdesk support or broadcasting live from inside a facility to a conference where students presented work. We're continually looking for ways to push the envelope in order to provide our students with the best, most authentic education possible. The last mile employs over 25 staff who support our students and classrooms and come from a diverse range of professional backgrounds, including tech, education and nonprofit management. Our staff includes 13 full-time employees who are alumni of our program, and much of our success is built on the knowledge and expertise of staff who have lived experience of incarceration, ensuring that our methods and course offerings are relevant and meet the needs of our student body and the constraints of the classroom environments. Well, what does that look like? Matt, give us a rundown of what students learn in our program. So our curriculum consists of a one-year program separated into two six-month courses for full-time students. We teach full-stack web development, including industry standard technologies such as HTML, CSS, JavaScript and React on the front end and Node, Express and Mongo on the back end. Students build a portfolio of work using these technologies while developing valuable professional skills through explicit soft skills training and by working and collaborating with others in a professional environment. And we're also expanding our offering into other content areas. Later this year, we'll begin teaching audio engineering via our music and video production program, which we'll be launching in California and Indiana. And after returning home, all of our program participants are connected with our reentry team who provides wraparound services. Alumni of our program graduate with an array of projects that highlight their skillset and have gone on to work as software developers at companies such as Slack, Square, Chan Zuckerberg Initiative, Checker and more. All of the work we do is driven by our mission, to provide opportunities for personal and professional growth for just as involved individuals through education and technology training. But just like every mission, it's not without challenges. Matt, let's talk limitations. Yeah, so as you might expect, teaching in a prison setting presents a number of logistical hurdles and limitations, many of which are particularly challenging for teaching software development skills and technologies. So for example, our students do not have internet access. All of our content and platforms are hosted on internal networks within each facility, and students are limited to accessing the resources on those networks. For this reason, when a student faces a difficult problem, they're not able to simply Google the answer. And if a student wants to incorporate some specific type of functionality in a project, they can't simply install a third-party library or plug-in that does it for them. In addition, our students are only able to access computers during class hours, limiting the amount of time they have to study and learn. And finally, due to security concerns, all communication between students has to be observable, meaning that there are no means for students to have direct written communication or to share files with one another. Now, in order to overcome these limitations, we've created a robust software suite in our classrooms to best replicate a developer's experience on the outside. All of the platforms that we use, such as our learning management system, file storage, and GitLab, are self-hosted and managed by the last mile and provided to the students via TLM hardware. Student credentials for all these services are centrally managed by our engineering department using Auth0. Now, let's look at a couple of these in more detail. Most of our curriculum is delivered to students via our internally self-hosted version of the Canvas learning management system. While students complete the course as a cohort with set deadlines for major projects, much of the learning is completed independently and asynchronously via Canvas. In addition, we also offer remote instruction sessions to support our students' learning and understanding. Our instructors call into classrooms on a weekly cadence to deliver lessons, address student questions, and perform live assessments. All of our current instructors are former program participants, so they are able to provide contextually relevant guidance to students that not only supports their understanding of the content, but is also designed with an understanding of our students' environment. Now, although remote instruction is typically only once per week, the rest of the time, our students also have access to our help desk platform where they can ask curricular or project-related questions that are addressed asynchronously by a TLM staff member. Our help desk is run by our team of apprentices who are themselves all former program participants, paying forward what they learned in the classroom to new students, while also jump-starting their careers with continued professional experience, development, and mentorship. One of the more recent additions to our suite of platforms is GitLab, which since 2020 has been available to students via self-hosted cloud-based instances for each facility. The decision to integrate GitLab into our program and curriculum was an easy one. Fluency in Git-based workflows and professional DevOps tools is a hugely important skill for anyone hoping to gain employment as a software engineer. It is commonly taught at the coding boot camps that TLM has modeled its own curriculum on, and it's continually identified by potential employers as a necessary skill for our graduates. So how do students actually use GitLab? Jason, can you walk us through some of the use cases? Sure. Currently, there are three primary ways in which GitLab is integrated into our web development program. These three uses of the platform are scaffolded, such as students begin interacting with Git and GitLab in a simplified yet meaningful way from the very beginning of the program with opportunities to utilize a more robust set of features as they progress through the program. Each of the supported uses of GitLab by TLM students serve not only an educational purpose, but are also a means to overcome logistical barriers of working with students in a highly restrictive environment. Now, the first way that TLM students interact with GitLab is through remote instruction repos. These repos provide a means for TLM's remote instructors to provide students, teacher assistants, and classroom facilitators with lesson plans and additional resources, such as starter and solution code to accompany each lesson. There are also an excellent way to introduce students to their first Git concepts and commands by cloning a remote repo and pulling down weekly updates. Each facility has, in addition to private groups for each student, a public remote instruction group. And this public group in the sense that each student within that classroom can view the contents of the projects and the repositories and long into that group. Within the remote instruction group, two projects are created, one for each course that make up our program, Web Development Fundamentals and MIRN Development. Prior to each remote instruction session, the instructor pushes up the student facing lesson plan along with all necessary starter and solution code to their appropriate repo. Students and student TAs then pull the updated changes to the local clone of the repository. Students are encouraged to review the lesson plans ahead of time, while TAs are tasked with familiarizing themselves with the lesson contents in order to support students during and after the lesson. Students learn how to access the lesson plans during their first week in the program. In this way, the use of Git and GitLab are integrated into students' learning experience from the very beginning, emphasizing for them the foundational importance of these technologies and version control concepts to their future success as a software engineer. Now, the second way that TLM students interact with GitLab is through individual repositories for each of their major student projects. TLM creates GitLab projects for each student associated with a limited set of formative and summative projects from our curriculum. These projects are created within each student's private group, meaning that no other students are able to access them. Only the student themselves can push to or pull from these repos. Similar to the other cases of use cases of GitLab within our program, the student project repos serve both educational and practical purposes. On the educational side, these repos provide students an opportunity to dive deeper into the version control workflow. Students are taught how to add and commit their local files, and then push them to the remote repositories. Students are then taught how to branch and merge code to safely work on new features. Students are encouraged to integrate version control into their work on all major projects, regularly pushing updates to their code as they go. On a practical level, the student project repos help to solve a longstanding issue for TLM, how to provide program alumni with their code post-release. Today, whenever any student graduates from our program and is released from prison, they can request exports of the GitLab repositories for their student projects and immediately have their professional portfolio online and ready to share with potential employers. The final way in which GitLab is integrated into our program is in the development of supplementary materials by teaching assistants, who are all graduates of the program that remain in the class to support current students. One of the responsibilities of teaching assistants is to develop additional educational resources for the students in their classroom. However, given the restrictions of the in-prison classroom environment, there's no means by which TAs can share materials that they develop with other students. However, utilizing GitLab, we've developed an innovative way for TAs to collaborate with remote TLM staff on developing the materials and then have them hosted in a GitLab repository that is accessible to all students in the facility. The process begins when a TA submits a proposal for a supplementary resource. In their proposal, they are required to provide additional details about the resource, including a justification for the need and specific learning objectives for the students. The TA is then provided with a private repo in which to develop their code. The TA develops the code, commits their code to the development branch and submits a merge request to master, which is assigned to a member of TLM's academic support team. The TLM staff then starts a review and leaves comments on the submitted code. Feedback is provided with an eye towards the concepts and skills taught in our curriculum. The TA is expected to implement changes, recommit, and then comment in the appropriate thread in the merge request. We remind TAs that this process is meant to be iterative and encourage this as training in career-relevant communication skills. TAs are also encouraged to ask questions along the way about merge requests, the review process, and various GitLab features. For most, this will be the first time they see and use basic GitLab features such as assigning, tagging, cross-linking, et cetera. In the example here, the TA asks and then answers a question about how GitLab allows reviewers to comment on specific lines of code and then tracks changes to those lines of code in the comment thread. Once all of the comment threads are resolved, the TLM staff will then merge the code to the master branch. And then when all materials are finalized, TLM creates a new public repo in the facility and pushes the code to it, which then allows all students in the facility to access that code. Now, while this might seem like a relatively simple use of GitLab, for our work with incarcerated students, it's a fairly significant breakthrough. Knowing how to work collaboratively on a code base with other developers is an important skill for any student of software development. However, given the limitations and security restrictions of the prison environment, hands-on experience with these tools and concepts is not something that has been available to our students in the past. Now, however, by leveraging the GitLab platform, we're able to create opportunities for our students to collaborate on code remotely with other developers, providing them with valuable experience and marketable skills to complement their coding education. Now, much like the other breakthroughs that we've accomplished during the past 10 years, our use of GitLab with students is just another way that we are attempting to revolutionize the in-prison education programs. With the goal of providing students with tangible marketable skills, our program tries as much as possible to mimic a professional development environment. And integrating GitLab into our curriculum and platform offerings has gotten us closer to that goal. But the three use cases presented above are just the beginning of what we hope to do with GitLab in our program. In the future, we hope to broaden our use of the platform to allow for students to collaborate with one another on projects, which in the past has been a significant barrier for our students. We also hope to provide students with opportunities to collaborate on projects with outside developers who are not TLM staff, as well as contribute to open source projects. And finally, we would even like to eventually add an entire DevOps course to our offerings so that students can return home with an advanced proficiency in DevOps and agile development. I know when I started my career as a developer outside of prison, version control and the different interfaces such as GitLab was a learning curve for me, especially since I was starting essentially with little exposure to it before getting out. It made so many things complicated and oftentimes got in the way of me really focusing on the stack of the company I was working for. From properly documenting tickets to making merge requests, it was all new to me. And I can honestly say that today for TLM learners, they are a lot more prepared to hit the ground running than I was. But for us, it doesn't stop there. We wanna keep innovating and finding new creative ways to make an impact. And we invite all of you watching here today to join us. So here are some ways that you can get involved. First, contact us. Visit our website and see how you and your organization can participate. We're always looking to expand our network, broaden our reach and bring more people into our community. Another way to educate yourself and others about the use of rehumanizing language and help us control the narrative for our learners and all justice impacted people. For example, instead of saying inmate or felon, we invite you to use student, developer, engineer, instead of saying parolee, adopt returned citizen or just as involved person. And most importantly, if you are in a position to make hiring decisions, be explicit about implementing fair chance hiring practices in your company. There are talented, motivated and highly qualified folks returning home from prison every day. Don't let their potential go to waste. And if you're unsure about how to do any of these things, again, please feel free to reach out to us. Thank you so much, everyone, for your time and your attention. And we hope that you'll get in touch with us and help us continue to change lives through DevOps education. Thank you.