Taylor Milliman
You Don't Have to Wait to be a Software Engineer

08 Apr 2019



"My favorite thing about some of the other models [of programming education] is that you really do get immersion learning ... it gives you the confidence that your skills are real ... and the world just kind of opens up after that. It gives you the confidence that you don't have to wait to be a software engineer. You can start right now."

Listen to this episode on iTunes/Apple Podcasts

Listen to this episode on Android/Google Play

Download .mp3 (87.3M)

Player by Podigee

Show Notes

Topics: Career Advancement, Code Schools, Computer Science, Education, Internships, Interviewing/Interview Questions, Onboarding, Personal Branding, Recruiting, Recursion, Software Engineering, Web Development

Companies and Organizations

Introduction

If you are thinking of going into a career in software engineering in the late 2010s, you have to navigate an abundance of choices and answer a lot of questions. Traditional Computer Science education or code school? Big company, medium or small? Startup on a cloud stack or mature company on an enterprise stack? Should you favor employers based on salary, learning opportunity, perceived caliber of colleagues, or fast growth? How to build up a portfolio? Taylor Milliman has just gone through this process and started his career. In this special two-part episode, we talk to Taylor first just before he starts at Thumbtack as a software engineer, and then get an update from him six months into his time there. What did Taylor expect from his first software engineering job, and how has it actually turned out so far? Find out in this episode of “Using Reflection.”

Guest Bio

Taylor Milliman is a recent graduate of Bucknell University where he double majored in Chemical Engineering and Computer Science. Before starting college, Taylor had no idea what he wanted to do with his life. He ended up falling in love with the tech industry, learned to code, and eventually landed an internship at Braintree. He wrote about the whole story here, which was later republished in The Observer. Now, Taylor works as a software engineer at Thumbtack on the marketplace team. Outside of work, he enjoys hiking, snowboarding, cooking, reading, writing, mushroom hunting, coding, coffee, and so much more.

Links


Transcript

Taylor Milliman
It’s kind of just a means to an end. Whereas like now there, there is like if you put in the effort it’s, it’s pretty easy to to quickly like upgrade that and get stuff that your interested in. I think like “What kind of things do you think you can get that, that weren’t available? Sort of pre social media?” I would say I like, I mean it’s, it’s still hard, but like you, I mean it’s still true that if you just cold email like 10 people that even if they’re pretty busy people almost certainly one of them will respond and then you just don’t know what that will lead to that’s interesting.

Host
So I had one boss who told me, “You should also take any conversation you’re offered because you just don’t know what could come of it.” And it took me, I think many more years of working than you’ve been done so far to kind of realize that. That makes a lot of sense. So you’re basically just talking about it’s always worth trying to network, right?

Taylor Milliman
Yeah. Or even just, just like, I think of it more as just like making friends with people, but because like the truth is I mean like when I reached out to you, I didn’t want anything from you, you know, I’m not looking to get anything probably. I’m just looking to meet interesting people more so. But I think, yeah, it’s always worth trying to meet interesting people and then if you’re not like looking to get anything per se, it’s more just to learn what you can learn from that person. And I think it’s just like fun talking to people who, who like to think. That’s, that’s really honestly mostly what it is.

Host
Oh, and communicate too though, right? One thing I think that’s interesting about this way things are now where it puts people who are less adept or comfortable at communicating probably even a more of a disadvantage. I mean this, this used to be a profession where to some degree you could hide out if that wasn’t your thing, you know what I mean?

Taylor Miliman
Yeah. I mean maybe, but at the same time I also feel like in some ways it doesn’t. Because you can, if you are doing interesting stuff and you just put it out there, people will reach out to you. Which is just crazy. I mean, there’s really no downside as well because I think even if no one reads it right, you almost certainly kind of clarified your thoughts on that subject in order to do that.

Host
That’s definitely true. Like having to explain it to someone else. Right. Interesting. So anyway, thanks for reaching out at and here we are. Right. So that’s what came out of that, that that’s how it was. Interesting. I was the one out of the 10 that did answer. I guess at this point welcome to the show. Hello and welcome to “Using Reflection”, a podcast about humans engineering, and we’re here today with Taylor Milliman. Taylor, why don’t you introduce yourself and then we’ll get into the conversation.

Taylor Milliman
Yeah, sure. I’m Taylor. I just graduated from college. Last summer I interned at a company called Braintree and in a few days actually I’ll be starting at Thumbtack to work as a software engineer.

Host
Awesome. Maybe for folks out there who haven’t heard of Thumbtack, you could just explain a little bit what they do.

Taylor Milliman
Thumbtack is a two-sided marketplace for in-person services. So if you’re looking to hire a plumber or a piano teacher or any, any number of in-person services basically they’ll match you with a local professional, and you’ll get a few quotes on how much it will cost and then eventually you get to go with one of them.

Host
And did you have any idea what kind of role you’re going to have as you start there?

Taylor Milliman
Yes. So they do team matching, uh, in the first few weeks while you’re there. So I don’t really know what our work, what I’m working on. I think generally there’s a lot more web roles, so it’ll probably be something on the website and that’s also where my experience lies. But the truth is I really don’t know. Yeah.

Host
So I definitely wanted to talk to you a little bit about this since you just went through this first job search and that’s a unique perspective that I haven’t had the opportunity to talk about with any guests before in the past, you know? So as a new grad at this time, I’m curious sort of what were some of the things you were evaluating prospective employers on? Like what aspects of the company or the people you met or the opportunity, anything along those lines. What was your framework for deciding who you wanted to work for?

Taylor Milliman
Yeah, absolutely. So I would say really the three things that I was looking for were is this a company that’s growing and a place where all have a lot of opportunities for growth? Am I going to work with smart people? And am I going to be compensated fairly for that work? I would say. And the last one is really right now, I mean, it’s important, but I think it’s probably not what I prioritized. So like Thumbtack was not the highest offer that I received, but I did really feel like I was going to work with smart people and potentially have some huge opportunities for growth.

Host
Right. So those first two, why were those important to you? As a reasons to join a company.

Taylor Milliman
Yeah, I mean, I’d say the first is like growth is just fun, right? You’re learning new stuff every day. The product is working if you’re growing, so you’re reaching new people, you’re providing value. And kind of the same thing is true for working with smart people. It’s just, it’s really fun to have people that push you further, that know way more than you and that are also just excited and energized. That energy is super-contagious and I think absolutely essential for, you know, having fun at work.

Host
I suppose then that during the interview process that was something you felt like you were picking up from the people who were you were meeting with?

Taylor Milliman
Yeah, for sure. Like I would say one really small thing that connected, that definitely made a difference, you know, I got home from my interview and I had just short nice emails from a bunch of the people that I had interviewed with. So for sure it’s almost more about the personal connection. Like sure, you get a sense of their technical knowledge, but I think if they go out of their way to really try to sell you on the company, that speaks volumes.

Host
Interesting. So, and I, and I guess that energy you’re alluding to, so there’s something about the culture too, although that’s hard to pin down maybe and define, but it sounds like there’s something about that idea of being part of something where everyone’s energized to both help each other and the product is working, so there’s just a lot of positive energy that you’re making a difference and that things are working. That was a good feeling you were getting.

Taylor Milliman
Yeah, for sure. I mean, if nothing else, I learned just how important it really is. Like on the interview side too, to come with that enthusiasm. You know, there’s definitely interviews that I’ve had where you kind of feel like you’re just getting in the way of their daily workflow. I would say like another thing, it’s a little bit superficial but I think it does make sense to, you know, look for a pedigree. Right? So where, where have they worked in the past? Things like that. I think, you know, it is definitely superficial but I think you can see trends there as well.

Host
It is. But on the other hand, some aspects of the the technical opportunity can directly relate to that. For example, if you’re interested in working on a high scale platform in the cloud, it’s just kind of a lot of startup type jobs these days. People who’ve worked at the handful of very, very high scale Internet companies have experience that’s relatively unique, right? They wouldn’t really have gotten that experience almost anywhere else.

Taylor Milliman
I think there’s also something to be said [that] if you can convince some engineers to leave Google and companies like that, that speaks good things to your ability to sell your company.

Host
Did anything about your Braintree internship help you better evaluate companies? Like, what do you think you learned from the internship process that helped you both understand more what it would mean to be a professional engineer and to evaluate different opportunities when you went to look for your first position?

Taylor Milliman
Yeah, so I’ll start off by saying I think I definitely could have done a better job evaluating companies, right? Especially when, you know, I was mostly interviewing a private companies. And so you don’t know the financial details. I think it really would have been smart to ask more questions related to that. So you actually have somewhat of an internal picture. They might not tell you, some companies might not tell you, but I think some would as well. So let’s say I still have quite a bit to learn about evaluating companies.

Host
Well, I mean, you’re just starting out. You just did it once, but I mean, but also that’s why we’re talking about it. It’s like whoever’s listening to this who’s just one step behind, one step earlier than you, maybe now they already can learn from that too.

Taylor Milliman
So I learned from Braintree basically in the sense of what am I looking for in general, because everyone does value things differently. And so I think I started to realize, “OK, what are the things that I uniquely value and maybe overweight compared to other people?” And then kind of filter companies based on that.

Host
So what were some of the things that you realize and maybe like how did you start to realize. What are some experiences you had that were illuminating?

Taylor Milliman
Yeah, so I think one was at Braintree we, we had a very heavily pair programming culture, which I liked parts of it, but I think ultimately it was a little, just a little bit too much for me. So I would say it would maybe be 70% pair programming. And maybe what I was looking for was like occasional pairing. So that’s something that some tech does. It was actually great for the internship to have that much pairing and you’re just learning really quickly. But I’m not sure how sustainable it would be for me in the long term.

Host
What didn’t you like about it?

Taylor Milliman
It’s quite draining. Just being connected to someone for that part of the day, I would say there’s certain times where it just feels like the incorrect use of resources if you’re working on a really hard problem and some times it makes sense I think. But if you’re just kinda going through the motions and banging some stuff out it just doesn’t feel quite right to me.

Host
I do think though … did they have a lot of, did they have a heavy code review there as well?

Taylor Milliman
They did. Which I think was a fantastic introduction for me, especially as an internship.

Host
Do you think that when you got to the code review stage there was more clarity because there’d been more collaboration prior to that?

Taylor Milliman
Yeah, definitely. It is this weird thing where I think I definitely had to make an adjustment when I went into your internship and I think at all companies. Basically you just, you can’t move, it seems obvious now, but you can’t move as fast as you can on a personal project. And especially in a financial company like Braintree, you cannot move fast and break things.

Host
So do you think then that another aspect of the pairing was, you know, you mentioned it was good for you as an intern, so you’re implying it was effective for knowledge transfer?

Taylor Milliman
I would, I would absolutely say that. I mean, you just pick up so much from people that are working there. I have no idea what the onboarding process is like at other companies, but I would say here it was really fantastic. I never felt like I was just floundering or, and at the same time it also didn’t feel like too much handholding. Because like I said, so it, it was, it was definitely a good balance there. And it’s like engineer to engineer, so it’s much more … it probably just feels more natural. You know, you just kind of have this person just talking about how they do things there and so on.

Host
Yeah, it’s almost like a natural mentorship program as well. Like certain people that you pair with you might not connect as well with, but it’s almost certain that, you know, eventually you’ll pair with someone that, um, you really look up to and learn a lot from and they can kind of serve a little bit in that mentor role, which is nice. And then you got to know them through this kind of actually working on something together. So a little bit sort of a more around a project or something. And yet that’s also that kind of thing you’re describing is also kind of happening organically because of how you’re working together. Right. Yeah, absolutely. So you had said a moment ago, not to dwell too much on this, but you also had said a moment ago, you feel like you could’ve done a better job of evaluating companies. I want it to return to that and ask you maybe, what are some things you think you, you realize after the fact or that you would do differently?

Taylor Milliman
Yeah. So I think one thing is that, so I mentioned like the financials and the truth is from the people inside the company that I’ve talked to I get the feeling that Thumbtack is growing very quickly, but I don’t have any hard numbers and I actually really do think Thumbtack would have given me some hard numbers if I asked for them, just seeing what are the growth metrics that they’re using. So I think that is valuable for a private company trying to evaluate that because it’s super important if the company’s doing really well, they’re going to continue to attract smarter people and it’s just a flywheel and you’re going to continue to move up. So I think it is quite important to kind of see like, OK, how many employees does the company have and that it’s growing.

Host
So you’re really looking at that growth attribute again and then you’re wishing you had drilled down on that and got more evidence of that.

Taylor Milliman
I personally do. Yeah, I think for sure.

Host
You know there’s an kind of implicit assumption that what you’re talking about, that you’re looking more at startups, in other words, high-growth companies, right? And that you’re talking about a situation where a lot of the opportunity comes from the growth. In other words, that it’s dynamic. It will be changing all the time and therefore a lot of the technical opportunity will come from novelty, right? Like new things are happening and new projects are happening and new technologies are being introduced and so on. Did you ever consider more mature companies, more mature businesses, and if not, why not? And do you think those businesses can do anything to compete for engineers like you who are interested in that, you know, more than startups?

Taylor Milliman
Yeah, it’s a good question. So I mean, to be clear, I think calling Thumbtack a startup is a little bit of a stretch at this point. And I would say mostly what I was targeting was kind of that 150 to 500 employee range. So kind of mid stage, I would say.

Host
But a more modern Internet era kind of company …

Taylor Milliman
For sure. Uh huh.

Host
So what’s appealing about that? Is it just the tech stack? Is it the culture?

Taylor Milliman
Yeah, I think what’s appealing is they’re already, they already clearly have product market fit there. You know, doing pretty well and you’re not going to, you’re going to have people, a lot of people above you that know a lot more than you, yet at the same time there are opportunities for growth. Whereas I would say I think I would caution people a little bit to join less than 50 employees, startups straight out of school. Part of the reason being that if these companies are considering hiring you it could say something about their ability to recruit talent. Like personally I don’t have that much of a network, so I’m just not going to be able to get into the hardest new startups I guess.

Host
Yeah. And also for your first job, maybe you were thinking about a company that, like you said, they had product market fit, so it’s a little more clear what needs to be done and therefore probably you’re going to get to focus more on how to, how to be an engineer. Which is a little less maybe chaotic, a little more structured for your first role.

Taylor Milliman
Right. And to your point about about big companies, I don’t think there’s anything wrong about working for a big company. I think this also goes back to what did I learn that I was looking for from Braintree? So Braintree got bought out by PayPal a few years ago and I would say there are probably universals that go along with the size of the company. But I would say in general, companies get a little more risk-averse the further along and the larger they grow. And so I was looking to go somewhere that is still more, trying to take risks, trying to really make big product changes that will move the needle, rather than satisfy existing customers.

Host
Got It. That you could still be part of and learn from. Yeah. Right. So you’re just, it’s not so rote that you’re kind of tinkering or maintaining only, that there’s some new opportunities there.

Taylor Milliman
Yeah, I mean to be clear like big companies are launching new products all the time, so you can, you can definitely find that, but I think it could be easier to find it at a slightly smaller company,

Host
At a company at that scale you can still kind of have an idea of how the whole business works and what the whole business is doing. Which is the kind of context that I think, it seems like you’re going to drink up lot. Like you probably picked up a lot of that at Braintree. You’re probably very excited to pick that kind of context up here at Thumbtack as well.

Taylor Milliman
Yeah. There’s this great website called Breakout List. We can put it in the show notes, but I would definitely recommend anyone earlier in their career to check out that. Basically it kind of walks you through some of the reasons why, the good reasons behind that size company. And then also has a list for 2018 of those size companies that are, doing well and growing fast. So I’ll definitely recommend that. I used that last year and that’s part of how I found Thumbtack.

Host
So maybe we’ll shift gears a little bit. You wanted to talk to me a little bit about work life balance expectations and I wanted to talk to you a little bit about career expectations. So maybe we can kind of get into that area. So more specifically some of the things you’re expecting just before you start this job. And then, you know, maybe we’ll do a follow-up at some point a few months or so on down the road and sort of see what, you know, how things have lined up with your expectations. You know, it might be an interesting way to look at this. So going into this job, what are you expecting to learn for yourself kind of as a first step in your career? Like, do you have a place you want to get to from here? And then also maybe you could get into the work life and other kind of aspects of the job because you’re going from being a student to working full time. So how are you, how are you looking at that impact it’s gonna have on your life?

Taylor Milliman
Hmm. Yeah. So I would say, honestly, I try not to think too far in advance. I’d like to believe like if you just come into work excited about what you’re working on and do good work then that’s enough, you know? And I want to maintain that kind of enthusiasm and just, uh, having fun, learning new things every day rather than … I really have no idea. If I think back like five years ago, I had never written code before, so it’s hard to imagine what I’ll even be interested in in five years. That’s really my biggest focus is just coming into work every day and I’m trying to do good work.

Host
So to the point where we were, we were talking about in the very beginning though about a kind of personal marketing, do you think there’s an aspect of that in the workplace too? You know, we were talking about it more outside, like you’re a social brand, you know, you’re on Github, you have a blog, you know. Not to disillusion you, but I found in my career that sometimes just coming in and doing good work and being excited is not enough and that they’re, you know, let’s put it this way, there are elements of interpersonal communication with other stakeholders and influencers that are important. I mean, do you think about that too?

Taylor Milliman
Yeah, I think, I think that is definitely true. And I think part of that can come from the enthusiasm that you bring, but yeah, I mean it’s definitely important to … if you’re just at your desk with your headphones on the entire day, I think you’re missing out on a great opportunity to connect with some of the people around you. But yeah, the truth is, I am just so early that it’s hard for me to know how to think about these things.

Host
Sure. It’s probably something you’re going to learn a lot about quickly in the beginning because it will be all new and it’s sort of that initial curve, right? I mean, when I start a job, I still kind of have this attitude of sort of land on the ground and look around and listen more in the beginning, you know? And I would say it’s much more so even for the first time, because you don’t have past experience to sort of put it in a context or it’s at least not a lot. Also I was interested in sort of, you had just mentioned that you hadn’t written any code five years ago, so it’d be interesting to kind of get your point of view on how you ended up in this career.

Taylor Milliman
Yeah, absolutely. So prior to college, I would definitely say I kind of had that idea that unless you start programming from a young age and you’re just this prodigy or whatever, then maybe like Computer Science isn’t for you. And I think a lot of people still have this idea that there’s some magic behind being able to program, which is not true. Yeah. But basically I took a class on a whim my freshman year, and I was actually already majoring in Chemical Engineering at the time. And then I took another class and another class. And then I decided I was going to minor in Computer Science. And then the obsession kind of just grew and grew. And then I ended up, so I actually double majored in Chemical Engineering and Computer Science. And ironically I probably spent way more time working on my Chemical Engineering class work than I did on Computer Science, even though I knew I wanted to get into Computer Science. So right there I think this is extremely classic, but I, I definitely fell victim to the sunk cost fallacy. So I felt like I had taken all of these Chemical Engineering classes and so I might as well keep going with the major. Which I think is a tough lesson to learn. But definitely if you are in college, I think just following your interest is definitely a good metric to go based on, rather than, because you’ve taken a certain amount of classes.

Host
Do you think it’s had any impact on how people look at your resume that you have the double major, positive or negative?

Taylor Milliman
So like an interesting conversation starter. But, and I will say … I’ll caveat this by saying I do think especially for Computer Science, you know, your major is a little bit less important. You could easily major in Math or Physics and I don’t think you’d have any trouble getting into the field. So yeah, no I don’t think it really colors my resume very much, but it is kind of a fun conversation starter.

Host
But you found yourself kind of less interested in Chemical engineering and more and more interested in CS? Yeah, I would say especially when it comes to like the job prospects, a lot of Chemical Engineering is like plant maintenance, which was, it was just less attractive to me. So I knew, I knew pretty quickly probably starting like my sophomore year that all I wanted to do was, or at least I thought all I wanted to do is software engineering. Even though I didn’t really know what that was like, but I knew that I liked writing code. It was something that I did for fun and I didn’t do my Chemical Engineering homework for fun. So it was pretty clear, right?

Host
Right. And I guess the number of ways you can apply writing code to so many different kinds of projects and out outputs, you know, it’s obviously much more of a general tool, right? So it’s not just something you’ve learned just to learn the field. It’s kind of a very different field in that regard. Right. Because it’s, it’s a hammer.

Taylor Milliman
I mean it, it came in super useful for chemical engineering for sure.

Host
I’ll bet being able to write better code than some of your peers probably helped to get some of the homework done more quickly too. Right, absolutely. Interesting. So I guess another interesting thing to me about your educational background was that you also did this code camp while you were in school. So I was curious about why you did that, why you thought you needed to do that and then maybe contrasting that to the I guess more traditional CS education you were getting in college.

Taylor Milliman
Yeah, sure. So if you haven’t heard of freeCodeCamp, it’s basically just this website, and honestly most of what it is is it’ll give you a project idea that is about right for your ability level and then you build it and then you move on, and it kind of helps you create a portfolio of projects. And so it’s not, it’s not like a traditional coding bootcamp. It’s totally free and the really cool idea on freeCodeCamp is eventually if you finish, which it’s actually quite hard to finish, but if you … so I haven’t finished all the projects, but eventually if you do finish, you can do work for a nonprofit. And then if you even go past that get paid work or an internship or just free work for a nonprofit. But still basically now you’re getting professional experience on your resume. If you get all the way through freeCodeCamp, it doesn’t matter if you don’t have any degree I can guarantee you you will be employable.

Host
Right. I see. So once you kind of thought, “Wow, this is something I’d like to do,” it was part of your ambition and that this was a way to get a portfolio together and have more of a credential.

Taylor Milliman
Yeah, I think it started out from maybe a couple of things. One of frustration of applying to internships and just not being able to get anything, and to a frustration with the curriculum that we just weren’t building enough stuff in our classes. And that’s really what I was the most interested in was just trying to build stuff.

Host
I see. Right. So do you have an opinion that on how useful or, I guess, how valuable to you you think the traditional CS education was in terms of being a software engineer? Because I’m interested, I’m going to be interested in hearing the answer to that also a little further down the road because I have my own opinions about it. And I know there’s a lot of conversation back and forth about what’s the value of CS versus what software engineers actually do day to day.

Taylor Milliman
Yeah, this is a really tough question and definitely one that I want to be cautious with because I don’t want to make any general [statements].

Host
Right. Without having worked for years. Right, exactly.

Taylor Milliman
Yeah. Not only that, I think it’s also like when you are choosing whether or not to go to college or go to a coding boot camp, you’re at a very impressionable age. So I don’t want to give any like broad recommendations, but I think the …

Host
I’m not asking you to tell everyone else what to do. I’m actually just asking what your impression was since you did both, you know, and then, because you’re in a relatively kind of I think mainstream use case for both of those decisions. Like you weren’t coding since you were a little kid. Right? So you kind of got to college age, were exposed to programming and then found yourself really liking both the CS you’re taking and then thinking, “Oh, I want to do this as a job.” You kind of covered both bases, you know what I mean? There’s probably a lot more people in that position then were coding since they were little kids and they’re going to be more and more of them because it’s been a very strong job market for like a decade now. So I just think from that point of view, it’s generally interesting to a lot of people, but I think you should just speak from your own experience.

Taylor Milliman
So I think my own experience, I’d say that you really don’t need a CS degree. And I think I would even, I would say that I do think a lot of the traditional way that we teach Computer Science right now is a little bit broken. So I think I had a lot of frustrations with that system. I’m not sure if coding bootcamps are necessarily the solution either, but I think … I don’t know if you’ve heard of Lambda Schoo, but it’s a little bit of a longer a coding boot camp and I, you know … models like this are really going to be, just continue to increase in popularity in the coming years because at this point I’ve just seen so many people that had never written code and then can get good enough in six months and get a job at a company. And I think you’ll probably learn more the faster you just get a job at a company and start learning like that. So that would be my like overarching opinion.

Host
And I guess have you seen other friends or colleagues that have gone that route and then they become employable? Right. So that’s, it is a way into the field now that didn’t exist. Certainly not 10 years ago, maybe not five.

Taylor Milliman
It is definitely. I think it depends on what type of person you are. Because I would definitely say it’s harder to break in that way. But yeah, it is possible.

Host
And maybe full circle, coming back to the start of the conversation about the personal marketing and the personal branding and so on. That probably helps as well to get to break in.

Taylor Milliman
For sure. Yeah, I think definitely the personal personal branding is essential, especially if you don’t have a degree in Computer Science.

Host
If you don’t have those other sort of more traditional attributes, it’s a way to, there’s maybe new what new opportunities and new ways to get into the field.

Taylor Milliman
It’s trending in the right direction I think.

Host
So what did you feel was broken about the traditional curriculum or how it was taught to you?

Taylor Milliman
Well, like I said, I think it’s just not enough about building things. So I don’t want to discourage people from getting into the algorithms. I think that’s interesting and potentially useful.

Host
What I think is the missed opportunity here is that a lot of the theory could be brought to life and the value of it could be demonstrated through what you’re talking about, through it being applied, combining what you’re saying with the fundamentals that are in the traditional curriculum, where if you learn these concepts by building things it would bring them … the value would be more apparent and it would also answer kind of the concern you have. Like what is the point of this? And I’m not, am I actually learning to build to be an engineer and build things, you know?

Taylor Milliman
Yeah. No, I think that’s definitely true. I also think I’m naturally maybe like slightly overcritical of, I know I have this tendency to be a little bit over-critical because it’s like you see, you see all the places that it could be better, naturally. Whereas like, I’m guessing that if you go the other route, like you see all the benefits of school.

Host
So, you know, I had this algorithms professors who would cover an entire three chalkboards with the mathematical proof of a perfect hashing algorithm, and I’m not going to need to understand that because I’m going to be using hash tables in standard libraries in any modern language and platform I’m using. But at the same time I felt like it gave me this sort of conceptual framework for thinking about problems where I could see a lot of times that things that used to look very, very different problems to me actually had kind of the same underlying patterns to them. And I found it to be very powerful after I was going to school for a couple of years, I kind of felt myself being able to see things in a different way than some of the people I had been working with already for years.

Taylor Milliman
Yeah, I think, I think that’s definitely true and there is a lot of value and really understanding something at its most basic level. Like one experience that I had that was huge for me was I was a TA. And so I taught, I’ve taught recursion so many times and I swear if I had just learned recursion once … like looking back on that, I thought I knew what recursion was. And then like ears later, I was still learning more things about it. I think my favorite thing about kind of some of the other models is you really do get some immersion learning, which is something I feel like I missed. And parts of college it would be like, you never, you don’t know, you still don’t know what, what does it feel like to write code for four hours a day or something like that. And so I think for me that was the real actual value of it. Not just having a portfolio of things, but it gives you the confidence that your skills are real once you start building big projects. And the world just kind of opens up after that. I think it really, it makes your skills feel real and then that gives you the confidence that you’re you don’t need to wait to become a software engineer. You can start right now.

Host
So we just ended part one of the interview with Taylor recorded about six months before the second part of the interview, just before he started at Thumbtack. Now we pick up the conversation six months later and we get an update from Taylor about whether his actual experiences have met his expectations, confounded his expectations and just get another perspective on what he’s learned in the first leg of his journey as a professional engineer.

Taylor Milliman
Yeah, exactly. I think like kind of the almost the saddest part would just be if those growth curves like do start to slow down. Because I mean I think we’ve all felt that at certain points. You know, it’s like sometimes I look back on periods in my life and you realize how intense that learning curve … I mean I think like, I still am learning so much now, but I do look back on the point where I was like, really starting to get into coding as just like ridiculous growth. Just absolute obsession. And I think those times are definitely special. And when you’re a kid for sure, that’s like every day.

Host
You can think about a depth of knowledge in a different way versus like the rate at which you’re learning and it becomes like a thing of yes, I am not learning new things about programming as fast as I was many years ago, let’s say. But at the same time, the kind of holistic way I can approach a problem and solve a problem and solve the entire problem for a business has improved a lot. And I think you accrue experience and then you can go deeper and more completely into problems, you know, and maybe it’s a different kind of growth and, you know, it doesn’t need to be as rapid.

Taylor Milliman
That’s not necessarily desirable though to always be learning at this really fast rate.

Host
Right. Like it’s, you do need periods where you, you gather and then, you gather knowledge and you then apply it. And in the application you learn a great deal because you’re focused more narrowly on a particular problem and you’re applying all this knowledge to create something that is a solution to a particular problem.

Taylor Milliman
Yeah. That’s, that’s kind of a good analogy to bring it back into, you know, some of the university stuff that we talked about earlier, you know, it is kind of interesting. It’s like, when you, when you are at a company, it’s mostly application. Every … most of your learning is directly related to solving a problem. And I think there is definitely, no one would argue this. But there’s definitely something to be said with long periods of open-ended learning.

Host
Yeah. And so it is definitely a balance. Yeah. That’s a really good way to think about it. As you were saying that, I was thinking “That’s basically the difference between going to college and Stack Overflow,” you know?

Taylor Milliman
Yeah. Stack Overflow is what I like to call “just in time learning.”

Host
It’s like “This is not working. I need this to work for my job today.” Yeah. Like that’s sort of the breadth that you’re going to go seek the answer to. You know, you don’t need all the theory underneath it. You need to understand enough to be certain that it’s solving your problem.

Taylor Milliman
Yeah. I think kind of one thing that I would love to see more of in higher education is more of like a barbell approach. So you take like some amount of things are interesting and important to learn about, but not immediately useful, which I think university does great. But then also kind of on the other side of the barbell are things that actually are immediately useful and then you can go out and apply right there. Which I think internships kind of can help you fill that gap. But I think there’s definitely still kind of that missing piece a little bit. One gap that I see in my own skills is it’s like there are … there is a collection of skills that are both useful and that you will never learn on the job. So one example for me is like really understanding how databases work, right? I use databases every day, most programmers do and you know, I learned how to query those but to really understand performance implications, how they work, query planning. I mean you’re going to have to go out of your day to day if you want to learn that.

Host
Yeah. That’s an interesting example that I’m really close to you personally because I’ve spent a lot in my career in data and I took a really good course in grad school on exactly that. How databases are implemented and basically it was like an operating system’s kind of class, but all of that database implementation, you know, and databases are really … there’s a lot of similarity to operating systems. They basically re-implement a lot of the primitives, at least traditionally did implement a lot of the primitives around IO and scheduling because that’s really the core of where their performance comes from.

You could generalize what you just said to be: we as programmers use black box tools, right? Starting with the program, any programming language which compiles to some executable code, which runs in some runtime environment. You don’t think about any of that when you’re writing the code, you’re writing the code. Like it’s a little story writing about what you want to happen, you know, and that’s a black box. Any external resource you use, the network is a black box to you and the database you use, right? And so on and so on. All the protocols of the Internet. So that’s really what software engineering is, is building these abstraction layers so that you can operate at higher layers. Think about the cloud itself. It’s an incredible advancement of that idea and the amount of power that … what it enables someone to not think about yet have these primitives at their disposal. It’s incredible.

Taylor Milliman
Yeah. I guess that is kind of where a lot of kind of tension between these two groups comes from is basically like, like how deep behind how many layers should we peel this abstraction back? Like in, in my mind, do most people need to learn assembly? Probably not. But do most people really need to understand how database indices are created and how they work? I think probably.

Host
Well you would benefit from it. So again, I come back to this, I’ve said this in a lot of my shows, but my point of view on all this is very specific to the fact that I didn’t study anything technical undergrad. Later after I’d been working for years, I sort of fell in love with programming and I was really motivated to be self-taught. Then I took a certificate, a couple certificate classes in C and C++ and, and it was really interesting actually to start with those languages because they don’t hide a lot of these concerns from you. And then it’s like what you were saying where I was working professionally, but I felt these gaps in my knowledge and I went back to grad school and it filled in tremendous amounts of kind of background understanding of how things are actually working underneath and I felt like it made a really big difference in how I could approach problems and solve problems. And so it’s like you don’t need to know, but knowing is powerful. But let’s just say there’s a whole distribution of work you could do as a programmer. Right?

Taylor Milliman
Huge.

Host
The more you know, the more out of that distribution you can participate in.

Taylor Milliman
Yeah, that’s a great way to put it.

Host
And so like, I think it’s not a either/or or bad or good. Maybe it’s cast too much in terms of status or just really these really strong opinions about “You have to do x, y, z,” rather than it being seen as this continuum that you could just move around and then move across, you know?

Taylor Milliman
Yeah. No, I think that’s definitely true. I actually think that’s why a lot of people don’t end up getting into CS, because a lot of it is just kind of this one track go hyper-technical. And that’s not the way that you have to approach it. Like just kind of building like fun websites, it’s really not, it’s not that technical. Like I don’t want to get into the “Anyone can code” or whatever debate. But yeah I think there’s a huge spectrum and the reason some people think it is just so hard is because they’re thinking about it as this like hyper-technical thing, which is just one route.

Host
And to your point, building a website, it’s a little more than that, but it’s a lot more about learning how to carefully edit these text files to get things right then needing to understand exactly what they do, and you understand what they do through looking at your page in the browser and then you get that back and forth thing. I don’t think you need more than that to get started. And I don’t … I think you’re right, like we should be making this as accessible as possible to get started and then it’s a lifetime of learning that you can engage in. That’s why I enjoy it because it’s so deep and multidisciplinary and there’s so much technical to learn, but then being good at it involves all these other aspects to do that end up in [producing] valuable software.

Taylor Milliman
Yeah, I think it’s really interesting when I kind of bring this back to places that I’ve worked. Last summer when I was working at Braintree, like I didn’t realize it at the time, but the work that I was doing was extremely technical and pretty in-the-weeds and hard and I just thought “This is just what like all professional software engineering is; this is how it works.” It was my first internship and I though OK, like this, it’s just like super technical. And now that I work at Thumbtack, I just realized how different … that it really can vary between companies in kind of the majority of roles. It’s like really thinking about product is as big of an asset to you as your software engineering skills.

Host
For sure. I mean you’re valuable in a context, you know, not in a vacuum, which is like a big other aspect of this [idea that] the only way to be a professional software engineer is to have this technical depth, because that’s only one aspect of being a valuable engineer. Like the other aspect is you’re building the right thing, not just the right way but the right thing.

Taylor Milliman
Yeah, and I think as we kind of build more levels of abstraction, the roles need to be some people that need to really understand and be able to peel back these layers. But I think more and more as there’s higher levels of abstraction, being able to think about product and about other aspects outside of the type of work that you’re doing, it’s just going to be increasingly important.

Host
You know, when we last talked, it was right before you started this first job and now you’ve been been there six months and we’ve kind of already implicitly talked a lot about this, but you know, do you feel like there are any specific things you’ve learned so far or expectations you’ve had that were not met, or things that were surprising?

Taylor Milliman
Yeah. So I would say like one really big surprising thing that I would kind of tell other people is processes, company culture, how companies function varies way more than I expected. And so I would just encourage you early in your career, try at least a few places, because there are lot of differences and because I tried to … companies that on paper are fairly similar, like both fairly small, both have offices in San Francisco, both kind of started within the last like 15 years or so. And I found absolutely huge differences. So to kind of dive into those, one is just like, I do think how often you deploy code just kind of permeates your life as a software engineer. And so last summer we would deploy a once a week. Now it’s like we just click a submit button and your code will start rolling out. So it’s like you can kind of deploy whenever you want to within reason. There’s lots of guidelines here, but I think that makes a huge difference. You know, I wouldn’t say that. I think there’s good reasons why both companies did what they did, the deploy schedules that they have. But I will say if it’s possible to go somewhere with like a really fast deploy, so that just tightens the feedback loop for you. So the quicker that you can get your code reviewed and then get your code into production, the faster your feedback loop, then in my mind, the faster you’re going to be learning.

Host
Interesting. So do you think it affects … there’s this whole Conway’s Law, which is that the organization of the software itself, and maybe we could even argue the process, reflects the organization, the structure of the organization, of the people in the organization?

Taylor Milliman
Yeah, I think so. I’ve also heard kind of a similar quote, which is like, “First we shape our tools, then our tools shape us.” And so it starts out as this just kind of process thing that you’re creating. And then I do really believe it becomes part of just how you, how you plan projects, how you think about how aggressive you can be with your timelines, like all these things. It’s definitely, I mean, it’s changed the way I work, honestly.

Host
It’s like this idea that you can decisively act to change things and fix things, right? Like right before we got on this call, you know, I happen to be on a call for my team and there was an issue and it’s after official release hours on Friday. But I know I just can just ask to do this, make a quick change, push a quick change out, all that’s automated, all that will work, and then we’ll be getting information we need to fully solve this problem on Monday. Like just knowing that you can break problems down like that and solve them by making changes to production. You know, it’s very … it gives you a lot of power to help the business and then you feel good about the work you’re doing, you know?

Taylor Milliman
Yeah, absolutely. Kind of another thing that I think is interesting that really surprised me was I think in the last interview I said something along the lines of being a little bit critical of pair programming basically, and now being somewhere where we don’t pair program, I actually see some of the immense value of it. And so what I would say is just I really think in general, we really undervalue how educational it can be to just observe someone and learn through that. Like we’ve kind of … I think this actually used to be, if you go back in history, this was an extremely popular method of learning. And now we’ve kind of, we’ve kind of stopped using it for the most part. I do think that extreme pair programming is probably not the best fit for some companies. But instituting that, like coming to Thumbtack I just realize how, again with I think I was talking about it before, I’m tightening feedback loops. Pair programming is one of the fastest feedback loops that you can have. You’re writing the code and as you’re writing it, you’re getting feedback on it from someone sitting right next to you. I definitely have some appreciation for that now and I think without that at my internship I would have been pretty lost. And kind of going alongside that, one definite struggle I had was the approach at Thumbtack for onboarding. It’s much more just like throw you into the water and see if you could swim, right? Like I don’t think they think about it like that, but it’s just like, it’s moving very quickly. People have less time to pair with you every day. And so I think, it’s really interesting to see those two approaches and I definitely have a lot more appreciation for pair programming.

Host
That’s really interesting because basically what you’re talking about alluding to this historical model of learning this way, his apprenticeship …

Taylor Milliman
I don’t like it when people portray apprenticeship as this like perfect model that we moved away from for no reason. But similarly, I think that there are places where it could be super valuable. Like another example is, does anyone really know how you learn to be a good manager?

Host
Yeah, I’ve had that conversation on other episodes and I’ve been in that situation myself where I suddenly transitioned from individual contributor to leading a team with no training and no support, you know, and it happened to also be a pretty time-pressured and stressful situation for other external reasons. But yeah, it’s one of the worst aspects of our industry is how we … the lack of support and training for people transitioning into manager roles.

Taylor Milliman
I just have to wonder like, what if you just had this person basically shadow a great manager for a few days? Like I feel super lucky that I’ve had just an excellent manager at Thumbtack and so I always feel I should be taking notes so that if I’m a manager, like I try to remember to do this stuff because otherwise I just don’t know how you pick up those skills.

Host
Do you have any other thoughts about things that have been surprising to you so far or things that have gone really well, better than you expected? Like maybe what were you most worried about going into your first job and then, has that panned out?

Taylor Milliman
Hmm. That’s hard because, I think, when I kind of look back, I did have very little expectations. Like I’d kind of, when we interviewed, I’d just gotten back from this trip and I was almost really like in the mindset of like, “Oh yeah, I’m about to start work in a few days.” But I do think kind of one of the biggest concerns, and I think it is just a really hard part, is like, is the initial ramp up the first one to two months that you’re at the company, you’re working with a stack you’ve never worked with before, people that you’ve ever worked with before and a product that you probably don’t know that well. And I think that’s just like, it’s difficult. And I think you realize that like that’s going to probably be fairly difficult. And most companies you joined, the only difference is you start to get used to that and expect that it will be difficult. I mean that’s a hard part of joining a company I think.

Host
Right. Yeah, that makes sense. And how much of, how much did you feel like you needed skills that you have never had before? Like, in terms of workflow tools, working with teams, all this kinds of stuff, which you kind of haven’t done ‘til you’ve done it.

Taylor Milliman
One thing I will say is there’s a number of times in my first kind of month or two where I just thought, I wonder how I would try to do this if I, without what I know, what I learned from my internship, like I probably would have gone down some really dumb, ridiculous rabbit holes if I didn’t know. Like, this is how people do. It’s like, I don’t, I don’t think I knew what it meant to grep for something before my internship. That might sound wild, but I didn’t really know what that was. And just so many things like that.

Host
Well, like basic code reading skills.

Taylor Milliman
I mean that’s the second one: just how do you navigate around a code base that is at least 10x anything that you’ve ever seen before? Super helpful. But I would say for the most part, it wasn’t necessarily like brand new skills. I think it was pretty similar to the ramp up for my internship. It’s just like you kind of forget that this is pretty hard. You don’t know anyone and you’re in a code base that you don’t know working with tools that you don’t know. So it wasn’t necessarily that it was like super new, it was just that I kind of forgot that all of the different aspects that it takes to ramp up and be productive as an engineer.

Host
Right. So it’s just some of it as a matter of setting reasonable expectations for yourself and keeping perspective. Right.

Taylor Milliman
Yeah, I think it’s definitely something that you can get better at with time. And then also just being patient. I think definitely as a new grad, like most of the time you’re going to be questioning, “Oh look what if I don’t learn this, or what if I can’t learn this?” Or you kind of put unnecessary pressure on yourself, whereas eventually after you’ve done this a few times, you just like, this is how it goes. Like there’s kind of the two weeks where you have no idea what you’re doing. And then it clicks and before you know it, you’re like pretty productive. Another kind of more specific thing that I was not very good at, a kind of skill that I had to pick up was like, when should you ask the question? Like when, when should you reach out? When do you decide that you’re like stuck enough that you should ask someone else a question. I mean I think, I think this is part partially a company culture thing and partially just a matter of like, you PR mo I would say a lot of people early in their career don’t ask enough questions. Um, and one thing that I really liked that my manager told me it was basically it’s, it’s just a very clear guideline which is like do your due diligence, right? Like spend 15 to 20 minutes. Like think about all the things that you would think about if someone asked you this question and if you still can’t figure out. Just ask someone. Um, and I think that that was super helpful for me because I think not asking enough questions can be super detrimental. And you realize once you’ve been here for awhile, like people that have been here for two years, if they know someone will be able to answer that question extremely quickly rather than I’m spending half an hour going down the rabbit hole, they don’t hesitate.

Taylor Milliman
Kind of another thing along those lines that I found out, I was like if you can ask someone for a higher, a high-level over view of a system, you can often dig into the details. So like if you just know like these are the three big things this thing does. Then you have the framework to kind of actually go deep into the code and all of these trunks of code into this framework of higher-level components.

Host
You you have with that amount of context. Then you, if you go and do your job, which is to read the code, you have some context of what you’re looking at and things start to make sense. Much more sense. Yeah, it’s interesting. I’ve just, as I said, like we just added two people on the team I’m on. As I mentioned, I’ve been involved with onboarding the whole lot and I’ve been trying to balance this exact thing. The balance there is that they, that they’re going to have to go write code that like there’s a line somewhere in there between you help them understand what they need to do and then they need to go do it.

Taylor Milliman
Yeah, 100% it’s like you don’t really understand something until you’re actually forced to do it.

Host
Yeah. And then again to explain it to the next person so they can do it. Anything else you want to counsel people who are about to start their journey as professional engineers? Maybe let’s say you’ve gone through your first leg of it.

Taylor Milliman
Oh I’m super happy with my company decision overall. I think where you choose to work matters more than I thought it did and I would also say just optimize for learning early in your career is the best choice that you can make. A big part of having fun as well I think is getting kind of a little bit too much responsibility and having to figure it out. A lot of the really fundamentals are kind of the most important thing. And what I mean by that is, the fundamentals of being good at your job, in my opinion, are one, really caring, to like taking care of yourself. And I think just those things like caring and taking care of yourself will go a long way. Actually, I think a lot of employees don’t have those things. And so those are kind of the fundamentals. And then obviously like your technical skills will be important, but if you care enough, you’ll figure out what you need to get the job done.