 My name is Melanie Gilman, and I'm giving a talk entitled You Graduated Now What, and I think actually on the schedule it says you graduated from boot camp now what, but that didn't quite fit on my slide, so I left it out. But before I actually get started, I just want to show you this tweet. So I gave this talk a couple of weeks ago at the local Austin Rails Meetup, and I tweeted that it was almost time for my talk, and this is my grandma who responded to me. And so I tweeted that this talk was happening, and I was really hoping that she would respond to that one, too, and I'd be able to show you a fresh tweet from my grandmother, but alas, all I have is this one from two weeks ago. But anyway, my grandma's on Twitter, and I know she's cheering me on right now, so that's my incentive for this talk. So anyway, I will get actually started now. You graduated now what, why am I giving this talk? So I am myself a boot camp graduate, but I graduated from boot camp over four years ago in 2012, and so I thought that as someone who has one of the longest post-boot camp careers out there, that I might have something to offer more recent boot camp grads about what your career looks like a little bit farther down the line, and once you're past your very first job out of boot camp. So I'm going to spend a lot of time talking about myself. I hope it's not too boring. I hope that there is something to be gained from my experience. So yeah, without further ado, let's get started. So before I started boot camp, I was working at a law firm. And I was a little bit lost because I joined this law firm thinking that I wanted to be a lawyer, but then I realized that everyone I worked with was miserable and hated their lives, and I didn't want anything to do with it. But I had no idea what I wanted to do instead. And I had this idea that I might be interested in tech, but I had never done any sort of programming or anything relating to that. And so I ended up switching jobs at the law firm from being a paralegal to a position called litigation support, where my life was basically dealing with this software called Lexis-Concordance. And so what litigation support is is basically managing the evidence, electronic evidence in litigations. And so I was basically importing documents into the software, exporting it out, manipulating things. And I was doing a lot of stuff manually that I knew could be automated in some way. And so the software allowed the use of some scripts that would automate some of those things that I was spending hours doing manually. And so I looked it up. I looked up the documentation and it said this is a proprietary language. It's a mix of C and C++. And I was like, I don't know what that is, but I'm gonna learn. And so I signed up for a course, a continuing education course in C. And I fell in love with it, which is kind of unbelievable to me now, having done Ruby for four and a half years. But it's true. And so I took this course in C. And then it was only actually just a week or two after I finished the course that I heard about Hungry Academy. So Hungry Academy was a program that was run at Living Social in the, it started in March of 2012, where 24 of us were actually hired by Living Social to be trained in Ruby on Rails for five months in order to join the engineering team at Living Social. So I'm not gonna go into a lot of detail on the actual boot camp, because I imagine a lot of you have been through that. I will just go so far as to quote my friend who is in the program with me, who said, it's the most fun I never wanna have again. And yeah, and I will move on. So from Hungry Academy, I got a job at Living Social, which is no longer Living Social. My gosh, it's weird that I did that. Sorry, it's not Living Social anymore. It's Groupon, which is its biggest competitor. So that's just a funny thing that's happened in the last couple of weeks since I first gave this talk. So I joined the team. I joined the internal tools team. And the application that I was working on was for customer service. And the app was a Rails app with a backbone front end. I had never done any JavaScript before. So it was an interesting learning experience for me, sort of trial by fire. I started out doing really very tiny tasks, fixing little bugs, like one line diffs, and eventually worked my way up to working on bigger features and having more responsibilities. But it definitely took me at least six months to start to feel comfortable and productive in that code base. So the transition from boot camp to real job is definitely a difficult one. But I did it, and you all can do it. So some of the really good things about working at Living Social, it was a really big and really talented team. I think at the peak there were about 120 engineers on the Living Social Engineering team. So there was a really diverse talent, Ernie Miller, who's talking probably right next door to here somewhere. Over in that direction was one of my teammates. And Evan Phoenix, who's one of the organizers of this conference, was one of my teammates. A lot of really smart people, if you got to work with them, you could learn a lot from them. And there were a lot of interesting problems to solve. We were working at a pretty big scale, a lot of requests per minute, and we were working on making legacy code bases usable and performant. We were working on sending millions of emails a day. We were building new applications to support new business ideas that came up from higher up in the company. There was something for everyone to work on. So that was a really great opportunity. So one of the things that I witnessed as a brand new developer at Living Social was we ran a deal, which ended up being actually in the Guinness Book of World Records for the biggest daily deal ever, where we sold one and a half million vouchers for Starbucks. So you spend $5, you get $10 at Starbucks. And so I didn't have a lot to do with this deal myself, but just watching the team work and just sitting at my desk and watching campfire and seeing how all of these really talented engineers were keeping the site up when they were getting all of these requests and making all these sales all at once was a really valuable experience. It definitely set a very positive tone for my entire experience on the Living Social engineering team. So another aspect of working at Living Social was the camaraderie. So I mentioned that there were 24 of us in Hungry Academy and we all got jobs on the Living Social engineering team. And so it was great because the 24 of us all worked together. We didn't necessarily all work on the same team or in the same office, but we kept in touch and we had that shared experience. And even now today, we still keep in touch and help each other. So that was a really great part of my experience there. So not everything was perfect at Living Social. So there were some aspects of structure and support that we felt like could have been a little bit better at Living Social. Our instructors from the program stuck around for a few months after the program ended, but after they left, we felt like we maybe didn't have the support and help that we needed. This is not entirely Living Social's fault. They were the first company to hire so many junior developers all at once. It was a pretty big percentage of their entire engineering team. And I think they didn't realize exactly how much work it was going to be to support all 24 of us. Another thing that was missing for me was feedback and constructive criticism. We didn't have any, at least I didn't have a lot of code reviews. I didn't have one-on-ones with my manager. And it's really hard to improve and get better if you don't have feedback. A lot of the time, I was pushing code straight to production without anyone else looking at it. And obviously that doesn't go very well for junior developers. So there are a lot of pretty tense moments and stressful moments. Also team stability was pretty difficult for us. Shortly after I joined the engineering team at Living Social, there was kind of a mass exodus of developers where a lot of people left all at once. There was a lot of reshuffling of teams. And I had formed relationships with my teammates. And then all of a sudden, the team was different. And it's really difficult to get your bearings when the people you're working with are changing all the time. So there were a few things that I did to try to make the experience that I was having a little bit better. One thing I did was I found something new to work on. So an example of this was as someone on the customer service team, there were a lot of things that I did that required actually SSHing into a production console and manipulating data for customers and for other employees in the company. And so I decided that that was silly. It was sort of like my old job. Why am I doing this thing manually when I could automate it? And so I ended up taking some initiative and building out an application that took care of the stuff that I was spending a lot of my time just doing manually. And it was a really good experience for me because I actually felt like what I was doing was important. And I was motivated to work on it because I was the only one working on it. And I was motivated to make it good because that was my thing. That I was like my little baby. And so that was really good motivation for me when I was starting to feel like the other stuff I was working on was getting a little bit tedious. I also was fortunate that the team at Living Social was so big because I was able to when I was starting to get a little bit not as into what I was working on, I was able to change teams and work on a different set of problems with a different set of engineers. So another thing is I kept learning from my mistakes. As I said, I was pushing straight to production. I pushed a lot of bad code. It was not uncommon for someone to ping me a moment after a deploy and tell me that everything's broken. But to my credit, I never made the same mistake twice. And so learning from those mistakes was a really actually positive part of my experience at Living Social. So another thing is that I was lucky enough to have a mentor who actually had been a co-worker of mine at Living Social, but he had left by the time I was getting ready to leave. And so it was so valuable to have a mentor who was outside of the company who could offer me career advice that was a little bit more objective. It's not awkward to say that you're unhappy with your job. And he was actually able to put me in touch with someone at the next company I worked at and actually facilitate me getting a new job. So ultimately, I ended up leaving Living Social because I felt like I was stagnating. I had worked on the same project and the same code base for almost the entire time I was there. So I had this idea that I wanted to work at a consultancy for my next job. And so my mentor was able to put me in touch with someone at Thoughtbot, and I ended up getting a job there. And so the reason that I decided that I wanted to work at a consultancy next was I wanted exposure to a lot of different projects. Being still a relatively new developer who had only actually seen one code base, there was a lot of appeal to me in being able to sort of go from project to project and see how a lot of different things were done and a lot of different problems were solved. And I was also really attracted to the culture and values that Thoughtbot is famous for. Their open source work, their commitment to clean well-factored code and TDD and the blog, which is always the first hit when I Google anything about programming. And so I ended up joining Thoughtbot as an apprentice. I realized that sometimes you need to take a step back in order to move forward. So I'm aware that not everyone is in a financial position to take a low salary or pay cut. I think that as an apprentice, I made $500 a week. So it was definitely a step down from what I had been making at Living Social. But in the long run, the best-paying job isn't always the best one for your career in the long term. Ultimately, higher pay often means that the expectations for you are higher. And so as an apprentice, you have the freedom and the flexibility to take things a little bit slower, to spend some time reading documentation and reading source code and fully understand what you're doing. So for me, starting as an apprentice was a great experience. And it was immediately fulfilling my desires for what I wanted in my next job. I had three different mentors in the first three months that I worked there. I was immediately exposed to three different code bases, a whole set of different problems and perspectives on programming. So some of the good parts of my time at Thoughtbot I was there for two and a half years was exposure. So some of the things that I got to do, where I worked on Greenfield apps, it's pretty rare to actually type Rails new for a production application. I got to do that a few times. That's pretty cool. I've worked in some legacy code bases. I've seen some things. They're scary. They've scarred me. I can give you examples later if you're interested. I've worked on Rails upgrades. I took a couple of apps from Rails 3 to 4.2 over the course of a few weeks, all by myself. And it was definitely frustrating at times, but ultimately so satisfying when you saw the build finally go green again. And worked on some developer tools. I spent a couple of months working on Code Climate. So it was really fun to actually work on a tool that I used myself and to actually go to the website and see it in action. And I saw some bespoke JavaScript frameworks where frameworks that were written by employees of the company that I was consulting with, which is, as if there aren't enough JavaScript frameworks in the world, they needed their own. So that was fun. So Thoughtbot has investment days. They do client work Monday to Thursday and then Fridays are reserved for doing kind of anything that you want within Reason. And so that was great for me. I got to explore different technologies. I learned a little bit of Haskell. I worked on Open Source. I paired with Sean a little bit on Active Record, which was pretty scary, but also pretty cool to see your name on the Rails commit list. And it was really helpful for me in terms of figuring out the things that I really like to do. So it was great to have that experience. Personal growth. I was lucky that Thoughtbot gave me the opportunity to go to conferences and give talks and just build a network in the community. That has been immensely helpful for me. There is also the aspect of mentorship and one-on-ones. I didn't actually have an official mentor at Thoughtbot, but I did have regular one-on-ones with my manager who helped me figure out what I liked and didn't like and could support me when things weren't going as well as I would have liked on a project. And code reviews. So Thoughtbot has a really strong code review culture where you basically never put anything onto master without someone else having eyes on it. So this is a real tweet from just over a month after I started at Thoughtbot. In the end, the 26 comments actually probably went up a fair amount on that 75-line diff. And it's so useful when you write code to get actual feedback and other opinions on ways to do things differently. Even if you don't actually take that advice, just to consider other ways of doing things is one of the best ways that you can grow as a developer. So some of the harder things about working at Thoughtbot, the pressure of consulting is real. You're aware that clients are paying for your time and it makes you feel like you aren't working quickly or efficiently enough and you can't spend time doing the things that you would really like to do that I actually got to do as an apprentice. You can't spend time exploring code or reading documentation and then you feel extra bad when you introduce a bug and you have to spend time fixing it so that can add a lot of stress. Ramp up time. You have to be able to get into a new code base and start being productive in it very quickly. And it turns out that the more senior you are, the more you're expected to be able to solve a given problem and ramp up quickly regardless of how familiar you are with the technologies. And so that can be pretty hard when you're still a pretty junior developer. And for me, information overload was a pretty big problem. In addition to bespoke JavaScript frameworks, in the last six months that I was at Thoughtbot, I worked on an Ember app, a React app, a vanilla JavaScript app and the bespoke JavaScript framework app. And so I learned all of those things a little bit and none of them will. And so I think that for more junior developers and probably for anyone, it's a lot, it's very helpful to be able to focus on one or two technologies rather than jumping from one to the other in quick succession. So some of the things that I did to improve the time I was having at Thoughtbot was I was always asking for help. When you're feeling overwhelmed, you need to ask for help. There's no shame in asking questions, but the longer you wait to ask, the more awkward it's gonna be. So just get over it. I know it's sometimes really hard and it's really embarrassing, but no one's judging you for it. So also remember that you're there for a reason. This company has hired you and they've given you a vote of confidence and you are capable of doing what's being asked of you. No one knows everything and you're as capable as your more senior teammates to figure things out. It might take you a little bit more time. You might need to ask a few more questions, but you can do it. So ultimately I ended up leaving Thoughtbot because the rate of, my rate of learning has started to slow down and I wasn't as interested in jumping from project to project anymore. I missed the aspect of product ownership and actually caring about the product that I was working on and I also, after two and a half years of consulting, had a much better idea of the things that I liked or didn't like. And so just a few months ago, I saw this tweet. This tweet is actually from my new manager, Nick, who's sitting here. So he was looking to build out his team in Austin and Denver and this was right around the time that I was starting to think about leaving Thoughtbot and so I was lucky enough to have met Nick a couple of times at conferences and so I reached out to him and we had lunch and I ended up joining him and his team at Move Health. And so some of the reasons that Move was appealing to me were I was interested in working in healthcare technology. I have had a little bit of exposure to it and I knew that it would be really an interesting challenge to work on modern technology in an industry where the technology is often kind of backwards and I know that Nick was going to be building a really strong team, that there were gonna be opportunities for pair programming and the product and the company are all very interesting to me. But I wouldn't have known that that was what I actually wanted to do without having the previous experience that I had at Thoughtbot. So anyway, enough about me. I've been talking about myself for a pretty long while already. I thought that I would highlight the experiences of a few of my fellow Hungry Academy graduates who have gone down slightly different paths than me. So I'm gonna start with Mary who's actually sitting here in the front row. So Mary was an employee of Living Social before Hungry Academy. She actually worked on the customer service team and then after Hungry Academy joined the same team as I did working on the tool that the customer service representatives were using. So during Hungry Academy, Mary quickly realized that she really liked the kind of like ops and very technical aspects of programming. She ended up building her own email server and then eventually after working on the customer service team for a bit worked on the email team at Living Social. From Living Social she ended up going to Paperless Post. She wanted to work on a smaller team with more responsibility. She wanted to work on a new set of problems and a different product but she was still really interested in email and Paperless Post's business is sending emails. So in the end, Mary actually left Paperless Post a few months ago. She ended up working on their payments system instead of email which she acknowledges is very important but it wasn't what she wanted to be focusing on. She felt like she had stopped growing and she didn't have the mentorship that she needed to be successful. During this low point in her career at Paperless Post, she got involved with mentorship at the Turing School in Denver which reignited her enthusiasm for programming. She wanted to provide the mentorship experience that she had received at Living Social that had been so integral to her growth and success. So she got so involved in the end that she ended up taking a part-time job as the mentorship coordinator there which she's still doing. A couple of years ago, Mary met a Hashi Corp engineer at a conference and learned about what they were doing in the DevOps space and she knew that she wanted to work there someday but she knew that she wasn't ready. At that point, she made it a goal to get to that point and one and a half years later, she got a job working there. So another one of my Hungry Academy friends is Andy. So Andy also like Mary worked at Living Social before Hungry Academy and he spent about two years on the engineering team until he decided to leave and pursue independent contracting. So he loves independent contracting. He loves being able to work his own hours and to choose the projects and clients that he supports and to have the flexibility to work on side projects and learn new skills. But there are also some downsides to it. It's hard to collaborate with other people and you need to actually dedicate time to independent learning so that you can then justify billing your clients to work on things that you might not be very familiar with. And so finally is Jonan who actually gave a talk here yesterday. So Jonan moved from Portland to Washington D.C. for Hungry Academy and then shortly after the program ended, he moved back to Portland. He felt like he wasn't getting the mentorship and support he needed especially because he was working remote. And so he ended up joining New Relic which had an office in Portland and also had a dedicated mentorship plan. He wanted to work on developer tools because he felt like he could understand the user being a programmer himself and he also wanted to learn metaprogramming and improve his technical skills. So while he was at New Relic, he was interested in moving from an engineering role to developer advocacy but with that he actually didn't end up working out. He changed jobs to work at Heroku as an engineer and then just a short time after joining Heroku became a developer advocate there. So just a few different career paths of bootcamp grads. I guess we've all had three or more jobs already in four and a half years but I guess that's the way this industry goes. So now what? So just a few closing thoughts. My experience tells me that there is no perfect job. What you really need to do is figure out what's most important to you and find a job that matches your highest priority. So you're not gonna find a job that is perfect in every single way, it just doesn't exist. Another thing is that my perfect job is not your perfect job. The perfect job looks different for everyone and it changes for you over time. What I needed two and a half years ago is not what I need today. And finally that every job has its good parts. There's a lot of value in doing things that you don't like because that helps you figure out what you do like. And so if you find yourself in a job that you don't think is great, stick with it to try to get everything you can out of it. Don't rush to get a job if your current job isn't perfect. There's something to learn in every job. And thank you. I just wanted to give a couple of thanks first to my Hungry Academy friends who gave me some input on this talk and told me their stories. And thank you so much to Living Social, Thoughtbot and Move Health for giving me the opportunities that have brought me here to the stage today. Thanks.