NOEL: Hello and welcome to Episode 41 of the Tech Done Right Podcast, Table XI’s podcast about building better software, careers, companies and communities. I'm Noel Rappin. In this episode, we're talking about technical apprenticeships with Megan Tiu of Women Who Code. Meghan and I have both run apprenticeships at our various companies so we're going to tell you how they work. We're also joined by Table XI's current apprentice cohort, Kara Carrell and Alyssa Ramsey, who will tell you a little bit about what it's like to be an apprentice. We'll talk about what an apprenticeship is, why it's not an internship and how your company will benefit from having an apprentice program. Before we start the show, I do have a few quick messages. Table XI is offering training for developer and product teams. Topics include testing, improving your Legacy JavaScript, career development and agile team process. For more information, email us at Workshops@TableXI.com or see the entire list at TableXI.com/Workshops. We also have a free email course and tools for improving your company's career growth and goal strategy, which you can find at StickyNote.game and we actually will talk a little bit about the Sticky Note Game in this very podcast. And I haven't mentioned it at the top of the podcast much recently but if you like the show, a review on Apple Podcasts would be great and it really does help people find the show and so, here's my conversation with Megan, Kara and Alyssa. I would like everybody to introduce themselves. First of all, Megan. MEGAN: Hey, I'm Megan Tiu. I'm an engineer. I'm a manager at Women Who Code and I previously ran an apprenticeship with my former company. I love being able to help grow other developers and that's the one of the best ways to do it. NOEL: In addition, we have Table XI's current apprenticeship cohort. Alyssa, would you like to introduce yourself? ALYSSA: Sure. I'm Alyssa. I am a full stack developer and becoming more and more of a Rails developer during this apprenticeship. I really love being here at Table XI. I'm learning every day. NOEL: And Kara? KARA: Sure. My name is Kara Carrell, a developer here at Table XI. I am in the apprentice program and a career-changer. I'm really excited to be diving more heavily into the world of development. NOEL: Great. Maybe we should start by defining our terms. Megan, do you want to talk about what an apprenticeship is and how it differs from an internship or just an entry level developer? MEGAN: Yeah, absolutely. In my mind, an apprenticeship is an entry level position designed for brand new developers to sustainably grow their knowledge, establish a solid foundation for their craft and learn from more experienced developers that are their peers. It's the type of program that really focuses on more sustainable growth and provides a pathway for folks to truly develop their skills and confidence in those skills. As opposed to internships, which in my opinion, tend to focus on more specific work. Maybe you're doing one type of project versus an apprenticeship where you're getting exposure to lots of different learning opportunities, perhaps, working with multiple different teams even. Internships also tend to be a bit shorter-term programs. When you think about internships, we tend to think about college interns who tend to stay on for about that one semester that they're employed with the company and then after that semester, they're gone. But apprenticeships on the other hand, the program that I ran was four months long and I know many other programs that are longer, even as much as a year or more. Internships also, I think tend to have a bit of a negative connotation. Oftentimes, you'll hear folks joking about relegating more dirty work to interns, the things that they don't want to do, maybe writing documentation or things like that but apprenticeships, in general, I find have a much more positive connotation there. They're about growth and learning, instead of grunt work. NOEL: Yeah. In my experience, an internship is about somebody learning what a workplace is like, whereas in apprenticeship is more about building actual professional skills. That pretty much tracks with how apprenticeship works. Ours happens to be six months. I have heard about one-year programs. I think we just talked to somebody where they do not quite a two-year apprenticeship but a two-year entry level program that is very similar. The apprenticeship is sort of fixed length and often has an option to continue or not to continue at the end of it. NOEL: We can go through the whole process. From your perspective, first of all Megan, where do you look for the people that you hire for your apprenticeships? MEGAN: What I found actually is that there is such a huge demand, especially here in Atlanta, for apprenticeship and other entry level development positions, that sourcing for me hasn't been an issue, honestly. Because there's such a need for these kinds of programs, I tend to reach out on more organic channels. Even social media, tweeting about our program tends to garner lots of attention. There are so many different people out there looking for opportunities. They're excited to get going with engineering but they just haven't found the folks that are willing to theoretically, take a chance on them. I tend to be able to actually go through the community in that respect. Social media, going through community. I formerly organize the Atlanta chapter of Rails Girls and have a pretty large network from doing that and knowing a lot of different folks coming up through boot camps and things, talking to people at meet-ups. Lots of different folks are running around and they're showing up at local meet ups usually. NOEL: Kara and Alyssa, what was the process like in the interview side? I know on the Table XI side, you didn't explicitly interview for an apprenticeship the first time you went through but were you looking at other apprenticeships like what made this kind of program appealing to you in your job hunt? ALYSSA: I would say, just the fact that since I had recently come out of a boot camp and work on teams before but it was never in an actual professional setting where I'm working on a website that's already out there, like working on a very large codebase. Those were things that I hadn't done yet and even though I was looking for entry level positions, I did want to still be in a position where I could learn more. Originally being a full stack JavaScript developer, I was like, "Well, there are a lot of Rails jobs out there and I like learning languages," so getting the opportunity to do something like that was also something I was interested in. NOEL: Kara, what did it feel like from your perspective? KARA: I've graduated from the boot camp I went to a few years behind, like a few years back. I've already had a few varied experiences in the industry but a large amount of them were under the precipices of teaching. Having not been in a 100% development kind of environment in the tech industry specifically, I felt like being able to have an on-ramping kind of experience, where I was able to not only utilize the knowledge that I already had but being able to be in a space where my experience is going to be more curated, that I would be able to have a lot more opportunity to learn, was much more important to me than trying to get a position at a company that was looking to have somebody hit the ground running in a way that wouldn't allow me to better evaluate a good fit in that space. NOEL: One of the things that's really interesting to me about now versus what I was trying to do when I first became associated with apprenticeships about seven or eight years ago is that boot camps were not a thing then, so we mostly had people who were self-taught, career changers or people who had very entry level jobs in one part of the tech industry and were looking to make a lateral change in the tech industry that required a lot of learning. It's interesting to me, the boot camp people come out often very enthusiastic, often having a lot of baseline knowledge but not having team experience, to me it's kind of like the ideal person to bring into an apprenticeship kind of situation. Megan, how do you organize your apprenticeship over time? What does it look like when do people start doing real projects? What’s the arc of it? How does it work over the course of the four months? MEGAN: Ideally, once they get in and start the program, they've got about two weeks that we expect they're going to be on-boarding, so learning our stack, learning what our different applications do, learning more about working with the larger production codebase because we find that the folks that we've had come through the program had never worked with a codebase as large as ours had been, and so sort of figuring out ways to acclimate them to that and then to being a professional developer. Not everything we use to do our jobs in terms of skills and knowledge set is going to be built in there and so, we try to take that on-boarding period and give them what they need to succeed throughout the program. Then after that on-boarding period, we try to start them in "real" development work as soon as possible. We break the program down into two phases. Basically, the first phase, they're working on ramping up. Starting out with a very small projects, maybe a CSS week here or there, fixing a bug, maybe some small internal-facing projects and then moving forward from there into the second phase of the program, being that they're rotating with different development teams. They'll be doing typical product user-facing work, side by side with other developers and in that time that they are in either pair programming or working on the thing solo. But either way, the work is as much typical development work as you would expect. NOEL: Yeah. We've gone back and forth at Table XI over the times we've run the apprentice program about when to put apprentices into direct billable client projects, when to have them do internal projects and that kind of thing. When we feel comfortable with that. One of the things we did this time is that Kara and Alyssa were put immediately onto a decent-sized legacy codebase and we started them on client work. We gave them a short ramp and we had some time where we were doing things that were not necessarily like on the client road map. We're kind of like just making some changes that we weren't directly billing but for the most part, starting directly into client work. I guess, Kara and Alyssa, my question is like, how did that feel? Was that what you were hoping to do? Do you feel like you got the opportunity to ramp up that you wanted? What was it like? KARA: For me, I was very appreciative of that. I think one of the major pitfalls of some programs is that you don't get to a place where you are contributing in a way that you can see the results or there's a lot of stories that folks have where they are building things and they just never see the result come to fruition. I think being able to have that kind of turnaround on our end was really exciting and creates a lot of confidence for what we're able to do, I think. ALYSSA: For me, I really liked the on-ramp period and how it just blended into really digging in and creating new features on an actual website. I know for me, even just the little victories that I saw with small fixes and whatnot, just getting familiar with the codebase. It was really rewarding and really motivating and that made me feel also, less intimidated by the fact that I was suddenly working with such a huge codebase. I would say that experience was pretty great. MEGAN: What we found in the process as well is that with apprentices, yes, they're there to grow and to learn and that's what they're excited to be doing but ultimately, they're just like anyone else. Apprentices want their work to have meaning. We all want, I think our work to have some sort of use or purpose and while a lot of programs that I've heard about or researched tend to have more structured educational time where they're doing abstract work, maybe they're working on Code Katas. I've definitely found that putting folks on real actual work that affects the systems that other folks are working in is more rewarding and more exciting for folks that are in the program. NOEL: From our perspective at Table XI, the apprenticeship is a paid position and we are an hourly billing consulting company for the most part or least a time based billing company for the most part. It helps to offset the cost of the apprenticeship program if a lot of it is going to client billing. That's helpful and we tried to set up a situation where we had a client project where we could set people up to be successful. The apprentice program that I first worked on, asked the apprentice to create their own side project that they would work on exclusively over the first couple of months and then, gradually less and less as they sort of blended into client work but they basically had the ability to pick some kind of web app that they wanted to build and we would treat that like a real project and have a small IPM and planning meetings and things like that and daily stand ups. That was okay. It got people doing something they were interested in and it sort of offset some of the on-boarding cost of starting a new project but I kind of like having people work on real projects when they can. What kinds of things, Megan do you do in your program to help learning? What kind of structured and learning time and opportunity do you give? MEGAN: We tend to give them plenty of built in unstructured time, actually. While we structure in that, we can account for, at least 80% of the time is going to be working on things that are assigned, like what work we've set aside or work that they're working with their teams. We try to, at least know that they're going to have extra time to pursue things that maybe we didn't account for that they're interested in learning or other gaps that there might be in the work that we're doing. We give them access to different video tutorial sites. We give them time to run through different tutorials, watch different videos and things like that and trying that they're properly able to pursue their interests and things like that, in the learning process. NOEL: Kara or Alyssa, what kinds of things do you feel like you've had the opportunity to learn through the project and also, through other things that you had the opportunity to do in other time? ALYSSA: There is a pretty large variety in the ways in which we can learn here at Table XI. We have these regular lunch & learns, which can be tech focused. Sometimes, they can just be about whatever, so those have been great, as well as another weekly event type of thing. It's currently called 'snack and study' I know Noel has wanted to change the name for quite a while now. NOEL: Noel created the name and also wants to change it. ALYSSA: And he wants to change it... but those have been great too because we basically pull in other developers or devops people or QA people and they can just come in and talk about certain things that they think we should know. That has also been really great. I don't know if Kara has anything else to add to that. KARA: Yeah, I would definitely second the snack and study as being one of my favorite things. And our ability to hear what other developers are talking about, both inside of Table XI and outside or watching different conference talks and that kind of thing, I feel like I've been able to spend a lot of time mastering a lot more of my own development environment and really keep an eye on the discussions that people are having. That really gives me a lot of insight to what kind of discussions I want to involve myself with as a developer. I think these are a few of the things that I feel like I've been learning here and I have been excited about. ALYSSA: There's also pairing. We are encouraged to pair and I hope to keep pairing even more but yeah, that's a really cool thing about being here as well, as an apprentice. KARA: Yeah. One of my favorite things that I established was 'pairapalooza,' which is going to happen in July and we're going to be inundating all of our coworkers with invitations to pair with us and just kind of exposing ourselves to so many different ways that people engage in the work that they're doing here and just broaden our understanding of the way that people develop. So I am really excited about doing that as well. ALYSSA: Yeah. That's really fun. MEGAN: I love that idea of pairapalooza. I have to steal that. KARA: Actually, I made a Zine for it. I will definitely send it to you. MEGAN: Yes, please. NOEL: Why don't you tell me a little bit about, Megan first of all, what kind of other support and career growth support that you have for apprentices and then, Kara and Alyssa, you can talk about how you feel like this is contributing to your career growth and understanding with your long term goals are? MEGAN: There are a few different things we try to do with our process to ensure that this program isn't just for them while they're here or for our benefit. It's for them at the beginning of their careers and try to set them up for that long term success. Some of the ways we do this, they get a dedicated mentor, someone that they can go to specifically for any technical questions they might have, any non-technical questions they might have, like what is it like doing this kind of job here or what is it like working on this part of the codebase. Their mentor acts as a gateway to the rest of the company as well. Again, if the apprentice has questions about working in a part of the codebase that they have no experience with and neither does their mentor, their mentor can set up conversations or pairing or whatever it may be with another engineer on the team. In addition to dedicated mentorship, they get a manager as well, to help them on their path and ensure that all the goals of the program are being realized for that specific individual and sort of setting them up for coming on to the company as a full-time software engineer, after being an apprentice. We also give them these role sheets. We basically say, here's what we expect of our Software Engineer 1s or our equivalent of the junior engineer. By the end of the program, we want you to be hitting all of these, if not, most of these things on the list and those are things like ensuring that you performs as intended as you're developing it and leaning on your more experienced peers for knowledge, for assistance. Then there are less structured things we do to ensure that growth. One of my favorites being we do this book club style reading of the book, Apprenticeship Patterns by Dave Hoover and Adewale Oshineye. That's a really fantastic book that was really influential for me as I was coming up as a developer and it gives apprentices a fantastic way to structure their thinking about their career as developers in the long term. We really enjoyed that as well. NOEL: I'm looking over my shoulder, at my copy of that book. I used to work with Dave at Obtiva and with those apprentices and I actually don't think I've shown it to Kara and Alyssa, so I think I'm going to, as soon as this is done, put it in my bag and bring it to work. MEGAN: I definitely recommend it. KARA: I actually have that book. Having worked with Dave Hoover at DevBootCamp or having got through that program was definitely something that we talk about through the program. I would be really excited to read it alongside of some other folks. NOEL: Structurally, at Table XI, the program works similarly. The apprentices have a mentor. Kara and Alyssa unfortunately have me and have a little bit more structured time with the mentor than a regular entry level developer would. We make a little bit more time and give a little bit more space for conversations about that. How do you feel that's working out? This is your chance to say how good or bad I am as a mentor in front of, you know, dozens of people. do you feel like you have the support or when you have questions that they get answered when you have, not just questions about the codebase but questions about what to learn next, where to go? Do you get that kind of support? ALYSSA: Since it isn't just a thing for apprentices here at Table XI, it's for everyone, yeah, having a sponsor and someone who's there, even just to make sure that you're learning as much as you want to and you're connecting with people that you need to connect to has been a really good thing. I don't know if I should talk about the Sticky Note Game yet as part of this -- NOEL: You can talk about it a little bit. We talked about it, I think a little bit on this before and probably will again but yeah, you can go ahead and talk about it. ALYSSA: Okay. Well, one thing that sponsors do periodically, I think, it's every six months as it is, they sit down, the sponsor, sponsee and someone else and you talk about your goals, just in general and you write them all on sticky notes and then, after putting them up on a piece of paper, you try to figure out, group them up and then see which ones you really want to work on for the next six months. Basically, the sponsor and whoever else -- one of your other coworkers - in a room with you, they sort of help you figure out what those goals should be or how they can help you out with one of your goals that you've deemed particularly important. NOEL: Was there something that surfaced in the Sticky Note Game early on that you've been able to pursue as a goal? ALYSSA: For me personally, I know I've wanted get back into working with some React and also maybe getting into mobile development a bit. I have managed to pair with some people on that and also, connecting with more frontend people that are working with React and also, with designers. The fact that other people here at Table XI know that those are my goals is helping me do those things and connect with those people. KARA: Yeah, for me I think that having the knowledge that sponsorship is something that Table XI overall does, the knowing that we have more time and ability to spend conversations to increase our understanding of where we're at, be able to have action plans for what we're doing and really have a safe space, we're able to kind of go through the emotional cycle of what we're doing. As well as an apprentice, we're in some level, being evaluated for that whole time frame. I think it's really valuable that that's something that's really important to everyone and that we have a feeling of being supported and being able to see that people are waiting for us to go and break things and really try and take risks to stretch our learning for the time that we are apprentices. I found that to be really important and comforting to know that that's kind of the mindset that people have for the apprenticeship role here. NOEL: That actually raises a kind of interesting question for Megan. How do you evaluate the apprentices and what is your process for deciding, whether you continue on with them? How do you manage those logistics? MEGAN: The role sheet that we give them at the very beginning saying, we want these things, we want you to be doing these kinds of things by the time the program ends, we keep track of that on a regular basis in one-on-ones through their manager, as well as consulting with their mentor to ensure that not only do we, as the people that are working with them, feel that they're on track to meet those goals but also, that they themselves, feel like they're hitting those goals. The mentor or manager work on one version and the apprentice work on another and we want to make sure that if, for example, the apprentice thinks that they're not doing too well on Goal A, maybe the folks that are working with them think they're doing fantastic on that, so we want to make sure that they're moving forward with that and they feel confident in themselves and then their skills and on the flipside of that in keeping track of this regularly, if we feel that they're not meeting one of the goals as well as they could be at whatever point in time, there's time to correct because we're able to do that regularly and consistently and keeping that same standard and rubric up to date. NOEL: Yeah, I think that kind of feedback is really important. We struggled a little bit with how, at least logistically, to handle the evaluation but one of the things that we really do try to do is make sure that feedback that surfaced in querying people that the apprentices are working with gets back to them so that if there's something that they need to work on or could use a little bit more exposure to, we try to get that in a timely way. But I do feel like it's hard to balance that with not having everybody feel like, one of you said, being evaluated all the time, which is not how I want it to feel. I wonder like, Kara or Alyssa, how you feel about the inherent short term nature of the apprenticeship. ALYSSA: For me personally, because we've had meetings with you and also, just a chance to talk to other people every day here at Table XI, even people that we aren't on the team with, I always get the feeling that I'm valued here, they want me to learn, they like having me here. Just the fact that I get feedback from you as a sponsor on a regular basis, it makes that continual evaluation not feel so stifling, I guess. KARA: I don't know that you can necessarily take away fully the feeling of being evaluated when you're in a program because there is an end date to a program. At the same time, I think that the way that we have been able to interact with everyone else and feel seen as peers and make sure that that is definitely the air that we consistently exemplify throughout the company, that it really reduces that from being an anxiety-inducing type of feeling, of being evaluated to a feeling that I'm being supported and everybody wants me to win kind of environment. I feel like those are two different kinds of feelings but it doesn't negate the fact that that feeling would continue to persist, just for the fact that you're in a program. NOEL: Okay, Megan, here's the bigger picture question. Why would you say that a company should start an apprentice program? What have you and the companies that you worked at and done this at, do they get out of it? Why should people do it? MEGAN: Honestly, it's an amazing experience for so many different reasons. It depends, I guess on what your goals are as a company. A lot of times, in justifying this type of program, you have to talk about the monetary gain. I discussed earlier how it was easy for us to source candidates and you can sort of contrast that with how it can often be very difficult to hire senior engineers, especially considering paying recruiters to source candidates and things like that. But this kind of program also helps with hiring the seniors actually in that long term when you're able to show that this kind of program, you're invested in the growth and the learning of your team and your apprentices, you can sort of say, "This is what we're about as a company. Come learn and grow with us." Of course, I think apprenticeships are so fantastic. When you already have a team of experienced people that are set and ready to go. They have plenty of knowledge to share and to give to others. Apprenticeship are a great way to bring up fantastic folks from the community, folks that are more on the junior side that can learn a lot, even just sitting next to a more experienced engineer. Once you've built up an experienced developer team, there's almost no loss there. It's such a big benefit for the community and for the specific team members in general. Having this kind of program, I've seen, does foster this culture of learning and growth and sharing knowledge within a team. That's definitely something I experienced in running this apprenticeship. Once we had these really excited, eager folks that were just ready to code and ready to go, more of our team members were thinking about what we can do to long term help other people that are coming into our codebase, people that are of different skill levels and things like that. The team just got generally more excited because there's a different energy there. They're excited. To wrap that up, apprenticeship are so fantastic in so many different ways but really help, I think, build up a sustainable, long-term, healthy engineering organization that values learning and growth and things like that. NOEL: Yeah. One specific thing that we've seen at Table XI is it allows developers who are not necessarily senior developers to have a mentoring experience. Even if it's just a pairing experience, it allows people who are also still relatively early in their careers to have an experience on the more senior side of a mentorship, which is a great thing, I think. Also, this is from the talk by Katherine Wu, junior developers superpower is asking questions, apprentices double superpower is asking questions and yeah, the thing about like suddenly on our project, like we redid the Readme for set up because it hadn't been looked at for a while and it made some assumptions about peoples' set-ups and "why do we do things this way?", "why don't we do them this way?" and those questions are great to have the answer. Whatever the resolution of it is, the process of thinking through the answer to that question is a valuable experience for the whole team. It's great and I think also, as a signal of your team's culture of learning, it's also really, really outstanding. Megan, what's one other thing you would want people to know about running apprenticeships and then Kara and Alyssa, what are one thing that you want people to know about being in an apprenticeship? MEGAN: apprenticeship are such a great way to grow other people and like you said, Noel, a great way to gain leadership experience and mentorship experience. At the end of the day, it's also a great exercise in empathy. I find one of the key things I took in crafting our program was constantly thinking about what the apprentices would be experiencing at any given point in the process, whether it was interviewing with us for the position or just getting in and starting and being a little overwhelmed with all the new things that are or later on down in the program where they're looking forward to the next step of their careers and at the company. We're able to be very empathetic and figuring out and always crafting the best program and the best choices through thinking about what they really needed and what they would be feeling at any given time. Apprenticeships provide so much benefit but I think one of the greatest things is this different perspective on what your codebase is like, what it's like to dive in there and going forward, what do we need to document to make this even more of a welcoming place to be. NOEL: What should people know about being an apprentice? KARA: There's just so much value in being an apprentice. I think a lot of times, there's a perspective of the apprentice getting an opportunity to learn, being exposed to new things or to senior developers. But as an apprentice, we also have an amazing amount of value and I think, Noel and Megan, you touched on it a little bit around like being able to ask the right questions, being able to question why things are happening the way they do and also, being able to, as you said Megan, give people an understanding that you're creating a healthier ramp for folks to really be able to take a more balanced load of work that's going on in your company. As an apprentice or if you're thinking about being an apprentice, I think that should be something that's definitely on your mind, that you are also bringing a lot of value, of your fresh perspective, your experiences in the other industries you work in and your ability to break things and take risks in a supportive way. Those are all the things that you're bringing to that company when you are an apprentice. ALYSSA: I think apprenticeships are great for people who like me, maybe did not start off in the tech field, maybe had a very little experience with computer science or maybe none whatsoever and all you've done as sort of fall in love with coding at the age of 30 and say like, "You know what? This seems cool. I'll try it." I know boot camps can be pretty tough and sometimes, even after you come out of it, you're like, "Wow, do I really have what it takes to get into an entry level position? Do I really know everything I need to know," and of course, being a developer, it's like, no you're never going to know everything. But the thing with the apprenticeships is that you have the chance to learn more and really see how everyone else is learning around you. That's why I really encourage anyone coming out of boot camp, if you feel like you're maybe a little bit overwhelmed, apprenticeships could possibly be the thing for you. I really hope there will be more of them in the future. NOEL: Great. Thank you. If people want to be in touch with you and continue discussion about apprenticeships, where can they reach you, Megan? MEGAN: Probably, the best way is on Twitter. I am at @MeganTiu on Twitter. Also, my website is MeganTiu.com. Feel free to shoot me an email through there but Twitter is probably the easiest way to get in touch. NOEL: And Kara? KARA: You can email me at Holla@Kara.codes or Kara@TableXI or you can find me on the internet somewhere. NOEL: Alyssa? ALYSSA: For me, I don't tweet or anything like that but you can email me at Alyssa@TableXI. NOEL: Great. Thank you all. Apprenticeships are really important to me and I'm glad that all of you are part of that movement in the different ways that you are and thanks for being on the show. Tech Done Right is a production of Table XI and is hosted by me, Noel Rappin. I'm at @NoelRap on Twitter and Table XI is at @TableXI. The podcast is edited by Mandy Moore. You can reach her on Twitter at @TheRubyRep. Tech Done Right can be found at TechDoneRight.io or downloaded wherever you get your podcast. You can send us feedback or ideas on Twitter at @Tech_Done_Right. Table XI is a UX design and software development company in Chicago, with a 15-year history of building websites, mobile applications and custom digital experiences for everyone from startups to story brands. Find us at TableXI.com where you can learn more about working with us or working for us. We'll be back in a couple of weeks with the next episode of Tech Done Right.