Will Gallego
Finding the Path to Success Through the Success of Others

12 May 2018



"Taking a step back and realizing I’m not going to be able to know everything and do everything is such a revelation in an engineer’s career … You need other people …"

Listen to this episode on iTunes/Apple Podcasts

Listen to this episode on Android/Google Play

Download .mp3 (69.5M)

Player by Podigee

Show Notes

Topics: Bit Operations, Blogging, Career Advancement, Career Responsibility, Computer Science, Failure and Learning, Interviewing, Learning, Managing Engineers, Mentoring, Sponsoring, Teamwork and Team Leadership, Trust, Web Development, Writing

Companies

Introduction

For years, Will Gallego believed the way to advance as an engineer was to be better than those around him. In interviews, he focused on stumping candidates with arcane technical questions. As a manager, he still saw himself as an individual contributor, and shipped code without communicating. But then he joined Etsy, and realized that the senior engineers around him were helping themselves most of all by making those around them better. The culture of learning and blameless postmortems spearheaded by then-CTO John Allspaw shaped his thinking, and he began to see his past experience in a new light. Will focused on helping his colleagues succeed and was rewarded with a Staff Engineer role. Then he took it further, working with a recruiter friend to counsel younger engineers, and blogging about personal aspects of the engineering journey and how to reimagine the technical interviewing process. Along the way, Will discovered that paying back pays off for everyone.

Guest Bio

Will Gallego is a systems engineer with 15+ years of experience in the web development field, currently as a Staff Engineer at Etsy. Comfortable with several parts of the stack, he focuses now on building scalable, distributed backend systems and tools to help engineers grow. He believes in a free and open internet, blame-aware postmortems, and pronouncing gif with a soft “G”.

Links


Transcript

Host
Hello and welcome to Using Reflection, a podcast about humans engineering, and we’re here today with Will Gallego. Will, why don’t you go ahead and introduce yourself and then we’ll get into the conversation.

Will Gallego
Sure. I’m a staff engineer at Etsy. For about six and a half years now and I’ve been doing professional web development in one capacity or another for 15 years and you know, bouncing around from startup to startup. Landed at Etsy a couple of years ago and been doing back end since.

Host
I know one of the things that you wanted to talk about today that is also very interesting to me and I’ve covered it on three previous episodes is issues around recruiting and hiring of engineers. So why don’t we start a little earlier and your story and we can kind of work our way through some of your experiences that have led you to kind of where you are now, which is blogging about and working on a book about recruiting with the idea that a lot of the recruiting process now is not a complete gauge of a person’s ability maybe and their success. Not a good measure of what they’ll be doing day to day, and maybe not the best avenue in for the most people into the industry.

Will Gallego
Yeah. I feel like when I came to Etsy it was very much a wake up of understanding that being a better engineer isn’t just learning the latest technology or trying to shoehorn some new technology into your stock. It’s trying to understand how you work with teams and how you’re trying to level yourself up by making other engineers around you more understanding, more empathetic. That team collaboration, building that together is what makes great products and therefore makes great engineering organizations. Learning about trying to be a senior engineer at Etsy, I was trying to just catch up with this large scale product that I’ve ever worked with before. I’ve never been with a company as large as Etsy in my professional career. And so trying to understand there’s this big stack to learn all this new stuff. And I spent the first two or three years at Etsy trying to just really deeply understand that and finally had this kind of epiphany I suppose, thinking that looking around at people who had leveled up to, you know, IC4, staff engineering, senior staff engineering, higher IC’s at the company and seeing what they’re doing, and, sure they have experience with these large- scale technologies; they’re knowledgeable about how they work and what goes wrong and how to adapt to those failures, but most of their work wasn’t just I’m sitting front of a terminal and I’m typing things out. It was I’m going to be a lead dev for a team and that means trying to scale up the work that other people are doing, and in that case you need to try to train other engineers and understand what they’re going through and in response try to adapt your understanding of what they need around that.

Will Gallego
I started trying to look at other engineers who were more junior engineers at Etsy and try and help them out, and seeing a lot of them come in and interviewing myself I realized my interview practices were terible. I was giving all the terrible interviews that you kind of hear about in horror stories. I was giving esoteric trivia. I was giving very specifics about languages. I was giving puzzles of like, here’s a graph tell me what this is, and not giving any kind of insight into that, just you know, “Freeform it. Go.” And a while back we had some practice on, okay, our interview isn’t going right. We need to, as a smaller team, kind of take this apart and see where it’s going wrong and kind of tag team this. And I started realizing that, okay, the interviewer side is, it’s not accurate. It’s not reflective of what it means to be in the org. How can we change that? And then following that, I was trying to focus on, well sure, the interview side isn’t good either but do engineers themselves know what they’re getting into when they walk into an interview room?

Will Gallego
I started just typing it out a couple of notes. This is actually from a trip it took to Belgium last summer. I was at a conference for Resilience engineering. I was giving a conference talk to some colleagues about our culture around postmortems at Etsy and how we tried to emphasize adaptability in our failures. Coming home, I had about two hours sleep. I was in a flophouse kind of hotel about 20 minutes outside the airport. Uh, it was like 6:30 morning. I’ve got no sleep and I started writing down some of these notes and ideas. Going through a couple pages of it, I realize this is more than just like a blog post or even a conference talk that could I give to someone. There is more here that I’m trying to dissect and really I understand about what my own feelings were towards pairing someone for an interview process. That’s kind of led me to the last couple months, and I’ve been really inspired by other people on Twitter who have been trying to help junior devs or understand their own interview practices, and I’m just trying to piece from that.

Host
One thing that caught my attention kind of from the start of that narrative was how much your perspective changed on what it meant to be senior when you came to Etsy. Do you think the culture at Etsy in any way taught you things you hadn’t understood before about being part of a team team success, and how much being senior really means helping others on the team succeed?

Will Gallego
Without a doubt. This all stems from the simple idea of having a learning culture and a lot of our learning culture stems from our postmortem process. The idea that you can walk into a room and know that you’re not going to feel the burden of being blamed or no one’s going to point fingers at you if something went wrong and you were involved in the actions. You can openly speak about the events that happened from that. The idea is that if we can all understand what our mindsets we’re going into that, what our thinking was when an incident occurred and why we thought the actions we took were the best actions at the time, then the falsehood of human error being at fault just falls away. And so, stemming from that, the idea of being a senior engineer doesn’t mean knowing everything and being perfect and having an encyclopedic knowledge of every single technology in your stack. It means understanding that tense situations happen. You’re trying to do your best and as a team you need to understand what the needs of your teammates and people you don’t even work with often are, and after the fact when things do go wrong, we can understand those decision making inflection points and learn from that.

Host
So the post mortem was a real revelation to you. I know that blameless postmortems have become more popular. I also, my understanding is at least that partly the prevalence now of that idea was promoted by the former CTO there, John Allsapw, so I know it was a big part of the culture there. Did you have experiences with other people there earlier in your time there who mentored you, who showed you by examplet he value and a expectation around helping others level up?

Will Gallego
Oh, for sure. For the first three years at Etsy I was lucky enough to sit across from Allspaw, and that was just hugely influential. This feels like one of those inflection points for me where I was able to just be in the right place at the right time and learn from people who genuinely cared and they wanted me to get better and for no better reason then seeing others succeed. That is hugely influential when you can see a culture of people who want you to win. It’s not about trying to score points off people or be right or outdo people. It’s trying to build everyone up. It’s unbelievable. And I’m so lucky to have been in that kind of situation.

Host
Not to slag where you were previously, but these were new experiences for you. This kind of thing?

Will Gallego
(Chuckles) I’ve gotten chewed out at previous jobs and that’s unfortunate and you know, it doesn’t do any good. It doesn’t help anyone. You feel good for about 10 seconds and then you feel bad that you yelled at someone. The person feels bad for, I don’t know, months, years, however long it burdens them. And you haven’t solved the problem. You haven’t learned anything.

Host
You all were looking at your interview process and realizing there are aspects of it you thought were inadequate or could be improved. So can you share any particulars there and what actions you took to try to improve that?

Will Gallego
Yeah, so I will speak to my own failures and interviews in particular because I think I got firsthand experience of course back and I’ve got the best ware stories around it. For a long time, I was using this one interview question. It was, “Given an integer, write a function that will tell me if that integer is a power of two or not.” And this was a question I actually got from a Google interview when I interviewed, I don’t know, 12, 11 years ago, something like that. And I completely bombed on it. It was a phone interview, it was just a screener, and the interviewer, gave me that question and I completely flubbed it. And then he asked it on the flip side, he actually told me the answer and said okay, well here’s a function that would do that. Can you tell me what this function does? It was a bitwise operation for figuring it out and I completely flubbed what that was doing. And they said,”Okay, we’ll be in touch” and of course, you know, I didn’t get any kind of a forward movement on that.

Will Gallego
And it stuck with me because I thought, “Well these are the kinds of questions people are asking in interviews. I’m going to use this interview in the future because now I know the answer and I’m feeling like I’m living on my own knowledge.” And I made excuses like, well it was a way of thinking about a problem where they can give multiple answers. And that is good, but really it’s trivia. There’s almost always a standard library or a built-in that’s going to tell you this. And that kind of revelation of like, yeah, this actually isn’t a good question. Asking very esoteric questions about PHP, or things like that. Just general little bits of trivia that you don’t necessarily need to use every day. PHP stuff. Do you know how to read file and do some string manipulation and print out? You’re probably okay. Can you read from a database? Great. But knowing exactly what the function is to do a key sort on an array, like php.net, you look it up, done. And that’s why that question is just a failure as a question.

Will Gallego
So I had to rework completely what it meant for me to interview people. A question I’ll give it to you that I still give interviewees today because there’s no cheating at the question, and you can find it on the Internet too. It’s, “You go to your browser, you type Google.com in the search bar. Tell me what happens.” It’s such a broad and deep question that anyone who’s done any kind of development can tell you something about what’s going on and no one knows the answer to every single part of that. Do you go into DNS work and tell me how DNS look-ups work? You tell me what it means to hit a server and the types of servers it could be?. Do you tell me about caching? Do you tell me about databases? Do you tell me about the front end part of it and what the screen is displaying when a browser renders Javascript or CSS and HTML? Do you tell me about the keyboard inputs when you’re pressing the keys on the keyboard and hit Enter? All these levels are each important to specific tasks in an engineering organization. It’s a good question because you can stump someone so – you know stump is the wrong word. You can understand the boundaries of their knowledge and say, okay, well this is where they’re strong this is where they’re weak, and get a good idea of what they’re doing. It’s also a conversation. It’s not a binary answer where you’re trying to give them, here’s the exact number you’re looking for and if they don’t get it they failed it and you really don’t have too much of an insight what they were thinking and they got it exactly right. It’s like, well, they got it right in a second, does that give you an indication of how they develop, how they problem solve around that? That kind of question is really important because I like interview questions that are conversations, not just specific answers.

Host
I understand the aspect of that. You’re describing where it’s open ended and the value in that, but it sounds like you also like that kind of question because the interviewee is more comfortable, and that leads back to I think the realization you had about the blameless postmortems, right? And the idea is that everyone, they should feel challenged but not under attack maybe you cou think of it as.

Will Gallego
Yeah! There’s so many interviewers who want to prove that they’re smarter than people coming in or making them feel like they have to go through this gauntlet to earn the right to work there. It just, it doesn’t make any sense. It’s self-serving and really it’s self-serving in a very short time. You make your ego a little bigger and you’re passing on good candidates or you’re building that same kind of toxi culture where you’re trying to one-up each other. There’s nothing behind it that I think is worth looking into.

Host
Right. So maybe one more follow up and then maybe we can kind of move toward some of the things you’ve been working on, you know, in regards to this. But so going back to the Google question and just playing devil’s advocate. First of all, it’s funny because as you were saying it, I totally resisted the urge to jump in and be like bitshift operator to show that I knew that. So that’s already hilarious and I’m even telling you now as a way of kind of getting over that, right? Which just shows how beguiling this whole thing is about feeding your ego. Right?

Will Gallego
Exactly

Host
But, but playing devil’s advocate on the question itself, I understand that in almost all domains you would call a library and you wouldn’t necessarily need to know the optimal way to do that manually. But I, I would argue that at Google’s scale, maybe there’s three or four companies where this potentially matters in the world. You know, knowing the absolute most efficient way to do anything is probably a relevant. It’s relevant to them. So I guess my question is, do you think there are some contexts where questions that are much more technical are more relevant. Do you think that at a company like Google where they have such incredible scale, in that situation it might make sense to try to only hire people who are aware of the most efficient way of doing an operation like that. Versus many, many, many other professional situations where as you say, you would rely on, you know, a preexisting solution.

Will Gallego
I would say that’s a poor filter question. It doesn’t indicate that, say I came up with a bunch of other great solutions for power of two, but not exactly using the bitwise operaation. Does that mean I’m knowledgeable enough to do this? Was it a requirement that I have to know I should be using bitwise operations here? Did it indicate that I do know bitwise operations or not? I might’ve thought about bitwise operations in other contexts, but not in this one and still known how to use them and been capable and with the right tools operate at that efficient scale. And even flipped on the reverse on that, I don’t have those skills. How hard would it be to teach someone how to use bitwise operations? I mean a day, two days, you know, that’s not that hard. That’s being pretty generous I think in terms of learning how to do those operations. So it doesn’t show that I can learn on the job. It doesn’t showcase what skills I have. It doesn’t showcase how I’d approach discussion or how a reason around problem. It shows that, did I memorize or did I immediately come up with a solution that someone thought of as this is the most efficient way to do it. I think that we rarely in engineering have the most efficient solution to a problem right away. In web development, game dev, application development, whereever you’re doing it, our most efficient ideas usually come from, okay, I’m proposing this as a solution to the problem. Here are three alternatives to it. Let’s debate them, let’s go through the pros and cons of them and try to fit whichever one is going to work for us the best. That is in my mind the idea of high efficiency for a company, how we can build the best product is going to do he most good for us while doing the least evil I suppose.

Host
Right. So that totally makes sense from a product point of view. And from a purely technical point of view asserting that any one solution is the most efficient along any axis of measurement is irrelevant. What’s relevant is measuring performance, right? That’s the engineering part of this. That’s an engineering part of the job is … right. I mean, you know, let’s say you need to do some division on a webpage. Well, you would measure in different browsers, right, and you would see which is the most efficient way to do it if you needed to be that efficient, you know, and, and I think a lot of the time, again, that’s not as important as it might be in that situation. This is interesting how this really simple question is raising all these issues, right?

Host
I think there are like cultural signifiers attached to these interview questions and in particular this one I happened to know because the first language I learned was C, and for whatever reason those operators, like every intro C book I read, you know, at that time, like they cover those operators. And so it’s like this thing of when they’re asking that question, I think they’re really kind of asking are you a C/C++ person or are you some other kind of person. Different languages in part because of their history and culture and who used them, and in part because their strengths and their, where they way they lead you, the inclinations they lead you toward, and therefore the use cases that are most often used for, you know, have really different domain concerns. Like as someone who’s spent a fair amount of my time professionally in both Python and C++, there are so many things you think about it in C++ that you just don’t bother with in Python around efficient use of memory and most efficient, uh, you know, like everything, every hoop you jump through to avoid allocations in C++, you just write the most readable code you can write in Python.

Host
I think this question is actually an example of the cultural aspects of the interview questions. So does bias come in on questions not just to show how smart you are or emphasize traditional computer science, but also, I don’t know because you sort of favor one approach to software development over another?

Will Gallego
100 percent. I think bias is not necessarily, “I think I’m better than this person,” or “I am trying to prove something.” Sometimes it’s just these are tools that I am very comfortable with and there is the assumption that I’m doing my job, I think I’m good at my job, so if someone else were to be in my shoes in this job, I think they would require these exact same tools to do this job. And we don’t necessarily always favor people with outside information or new experiences that would be good for our job that we don’t possess, and so to try to find that Venn diagram of what I know, what they know and the overlap there and then try to incorporate stuff that they know that I don’t into this position and say, “Oh, that’s really great.” That’s not really part of our typical interview process because we want to go in there and feel like we asked a question, we know the answer to what they’re going to say or we have, you know, the teacher’s book with the answers in the back. So if anything comes up well we’re okay too. We want to feel comfortable in interviews as much as we can and feeling knowledgeable and in control of the interview is part of that.

Host
Maybe another way to approach this question is, then what should be part of the interview process? Like what, you know, this is probably where you landed sometime after kind of having these realizations is okay, so I see all these things that are wrong and you had these conversations that at Etsy around, you know, what should we change. What do you think the right approach to interview content is and what do you think the interview should cover and what do you think it should be evaluating?

Will Gallego
My ideal questions are ones that can understand what a candidate’s abilities are in terms of things they do know and how they can build off of it and how the gap between what they know, what I know and what is necessary for working in this company can all kind of be bridged. When I asked the question about “Type Google.com in a browser, what do you get,” I’m trying to see what they know that I might not know. “Wow. They were really good at understanding TCP connections or the difference between SSL and tls and they have experience with that.” Maybe I ask them “Oh did you upgrade your back-end servers because of that?” And so I started building a conversation around that, and all the times we discuss things in our engineering culture we’re trying to round-table ideas like that. And that’s why I like interviews that can bring that dialogue to the forefront. And so is this person someone that I can share ideas with; are they coming in with ideas that I know and ideas that I don’t know and really bolster what we’re missing from the org. Not just be another cog exact clone of what we already have.

Host
So then you had this realization that you needed to start helping those around you more. What are some things you did to do that? And I guess it’s worked. I see you relatively recently moved into a staff engineer role. So your efforts and shift in emphasis there and so on were recognized. What did you start to do in particular to help those around you and then maybe you could lead into, you know, what you’re doing with your blog and the book you’re working on and how you think you as a person can kind of help a wider range of people.

Will Gallego
Take a step back and realizing I’m not going to be able to know everything and do everything is such a revelation point I think in an engineer’s career, that no matter how smart you are, no matter how good you are with anything, you can’t do everything in a given a fixed amount of time and so you need other people around you. You’re not going to scale a company on one engineer. I don’t care how smart they are, I don’t care how amazing they are. How fast they can debug things, how perfect their code is, no one is going to be able to build and entire product, and entire company on their own. So with that in mind, it’s in your best interest to have a company in which you have engineers who can elevate themselves and do better. So if I can spend an hour of my time too write down a runbook, update a Wiki, give a closed doors talk inside my company to other engineers and impart information to them and then they get better and then as an org we are more successful, it’s in my best interest. So to be purely selfish in that context, but there’s also something to be said about all the times that I’ve been given chances, given my first job coming out of college where I thought, you know, I’ve got a CS degree, I must be good at this. Then walking into interviews and just completely bombing on them. And then I first get a job in a startup and realizing my CTO at the time was taking care of me and trying to help me level up. I need to do the same thing in my career as well. I need to help out those around me.

Will Gallego
And so what does that mean for someone is a senior engineer to help level themselves up in that context. It means understanding when people are having problems before they even know it. When they do have problems and they come to you how to respond to that? It means when you are butting heads with someone to recognize your own failures, when your own you idiosyncracies are getting in your own way and try to move past them as best you can and try to minimize that and and understand when you’re going wrong. So part of that is mentoring other people and sponsoring, which are two really important distinct things at a company. When those other people get that sponsporthip, they feel like they can grow and they pass it on – going back again to elevating conversations and the abilities of everyone around you and scaling up.

Will Gallego
Part of this also was understanding that I can get better at this by helping people who aren’t at Etsy as well. So I started doing mock interviews and I started trying to reach out. We have a mutual friend in Kainne Hansberry who’s a a recruiter, and I reached out to him and said, “Hey, if you have people who are having trouble getting into interviews, getting their foot in the door, talk to me. I’ll set some mock interviews.” And I was giving tips around that trying to understand what problems people were going through. Were they feeling like they don’t know everything and they’re feeling, you know, that burn of imposter syndrome that was just preventing them from getting any kind of traction in landing a job and moving past that. Understanding they’re coming from a previous job and they might be burned out. How do they take care better care of themselves? Little things like that are things that we’re just not educating people on how to approach those problems. And so I got really fired up about tha, and I really wanted to avoid problem of other people falling into these traps. The hurdles that I’ve run into over the years. I can write down and say, “Hey, watch out for these problems,” and somebody else can avoid them and level themselves up faster than I can.

Will Gallego
I have no doubt that people I’m talking to are smarter than me and are going to go further in the industry that I am. They just need the right direction to do it. I’m not going to be the smartest engineer in the world. That’s okay. I want to help people so they can be better engineers. That’s a really great feelings to be, again, a little selfish about it too. That makes me feel like I’m producing, and that’s one of the reasons I got into engineering in the first place. I want it to feel like I was building something and making something more than myself. And it doesn’t always have to be just I wrote down these lines of code.

Host
Right. Then have you ever considered management? What do you think about that contrast where you’re trying to have an impact on all those around you, but still being an individual contributor?

Will Gallego
Yeah, management is tough. We don’t give nearly enough credit to good managers. There’s been the idea that you do a good job being an engineer for a while, you’re an IC and you’re typing code and you’re building stuff and then you hit a point and they say, “Okay, we want to promote you. You’re now a manager.” And you’re doing very different things you’ve been doing in the past and I don’t think managing is for everyone. I think management is a really tough skill to build. I think that senior level IC’s need to have some part of them that is manager-like. You need to lead a team. You need to know how to run an architectural review. You need to understand how to run a postmortem. You need to understand how to people-manage in one-on-ones with people if they’re having tough times, and that’s again part of the senior management or senior engineering I should say. As for myself, I was a manager in my previous job to Etsy and I wasn’t good at it, because was doing engineering stuff. I was lone-wolfing too much. I was just going off in the corner and typing in code and dropping it on the server and being done with it. I wasn’t doing enough collaboration with other engineers and I just didn’t have the skills for managing other people. And that might have scarred me a little bit for management, but I think at some point I’m always going to want to have hands on a keyboard and I’m always going to want to try to problem-solve technical issues, and I think that if you want to really be a manager that you need to dedicate yourself to people around you and just do that. It’s really tough to build in IC time as a manager too. So I really wanted to focus on how I can elevate other people as an IC.

Host
Yeah, I mean I can definitely relate to that. I’ve been in both kinds of roles in my career and I’m kind of back on the individual contributor side the last few years now and there are big trade offs. So you know it’s very rewarding to help other people as you say, but it’s very hard to resist the urge to try to keep your hand in and do each job poorly when you’re a manager. Like keep trying to contribute instead of only focusing on the team, and I think that’s a sign that you’re not ready to do it or it’s not for you if you can’t make your whole work the success of everyone else. Your whole work. So I definitely relate to that.

Will Gallego
I don’t want to discourage people from that too. Like there are people who are junior devs right now who one day want to be CTO’s and they should absolutely focus on the path for them. I just want to make sure there’s an opening for the IC who just wants to be really good at developing or architecting a really slick front end app or etc. etc. That sort of thing too.

Host
Right, and it sounds like Etsy is doing a better than the mean kind of job of with these different levels of IC and these different expectations of having a wider and wider impact while still being considered and expected to be an individual contributor.

Will Gallego
Yeah. We explicitly have two tracks, one for ICs and one for managers, and having that laid out in front of you and saying, “I can still make progress without having to worry, am I going to be locked into this position forever?” You know, that’s really helpful. It’s inspiring and makes you want to do good at your job.

Host
Right. And also it’s interesting how the higher levels, it’s really a lot about types of contributions that are more like what a manager would do. Like in a certain sense, you’re really trying to become more of a force multiplier for those around you. Right? It’s a given that you have a level of skill where you can contribute at a senior level.

Host
So then maybe you want to also talk a little about, you know, moving beyond just the workplace and you’ve started a blog on this stuff and you’re working on a book on this. So if you want to get into some of the specifics of what you’re trying to cover with those efforts.

Will Gallego
So all these ideas I’ve been bouncing around my head and writing notes down. I’m trying to, you know, expand upon them and, I was saying, about six or seven months ago, I finally wrote two or three pages down coming back from a conference. I thought, “Well, okay, this is more than just, you know, a quick blurb.” And the ideas around that were trying to get beyond teaching engineers who want to break into the industry, okay, memorize, merge sort and quicksort and know, you know, how to rebalance our Red Black tree and, you know, these important algorithms and important parts of computer science, but they’re not necessarily what you’re going to be doing on your day to day job, and not going to be, you know, “Wait, you memorize this. Now put it aside and save it for the next time you have to interview.” It’s an exercise in a memorize-and-then-quickly-forget-it so you can actually do what you want to do.

Will Gallego
I would love to approach this as the idea that I don’t want people to just squeak by an interview. I want them to build foundational skills that will allow them to hold strong conversations with their coworkers and to be able to learn fundamental skills in their job that [so that] the interview process itself almost feels like a side effect. That you’re a good engineer and therefore, yeah, you get an interview, but you’re also a good engineer. That should be the focus, not just how do you pass the interview. So many interview books focus on how do you get your foot in the door, how do you just get into the company and ignore being a good engineer. Now, there are solid points that these books bring up. There are algorithms that you should know because, yeah this company is going to ask you about it, or this is the structure of, you know, Amazon, Google, Facebook, YouTube, Twitter, etc. etc., and if you want to work at those companies, it would help to know what the interview is structured is going to be like.

Will Gallego
But there are how many countless jobs that aren’t at those big companies. And how does knowing the structure of the other companies help you with a small startup? How does it help you understand what it’s like to freelance? How does it help to understand should I worry about what kind of benefits this company is givin me? Should I worry about being a remote engineer versus a local engineer who can commute an hour-and-a-half to the office each day? Understanding what it means to be discouraged and try to get in the industry and understand that when you’re learning something, when you’re first trying to be an engineer, that’s going to carry with you for the rest of your career. People who are senior engineer’s people have been 15, 20, 25 years still in the industry, they’re still learning. They’re still struggling. They’re still trying to build up themselves as engineers as well. It doesn’t stop there, so to understand the entire learning process as a memorized and forget defeats the purpose of what it means to be an engineer and how to be someone who can collaborate and work with other engineers to do the best job. It’s not just you have to be this mythical 10 times ninja Jedi engineer. You know all these falsehoods that we kind of throw at people. You have to be, otherwise you’re worthless as an engineer, that’s not the case. You know, I would take three good engineers who can all work together over one amazing engineer who’s – I don’t want to say amazing, you know, I would say good at programming something – who’s impossible to work with, who you know, snaps at people and wants to be left alone. That doesn’t do any good for a company. So focusing on what it means to be empathetic and kind, and as cheesy as that sounds, who wants to care about other people around them to work with them. That goes so much further than knowing an esoteric algorithm.

Host
It sounds like really what you’re trying to work on here is more of a, a distillation of the experience of the senior person to give to the junior people. The thing that this reminds me the most of, I would say is like “The Pragmatic Programmer.” It really has a lot of the point of view you’re talking about. And I think it’s some of the same life lessons, but it’s also maybe a different angle in the sense that it’s more professional and less personal. And certainly less focused on some of the specifics of the interview process and what it means to be working somewhere. It’s more like good engineering values, what are good engineering values. That’s part of what you’re talking about, but it’s also just what does it mean to be like a good person as an engineer, which really I think is an aspect of what you’re talking about that’s relatively unique and hasn’t been covered. And frankly in the current environment, you know, there’s so much talk about toxic aspects of tech culture the last few years, and very public embarrassing stories about that, across some of the largest and most revered companies in the industry. I mean, I think it’s a very relevant topic to pursue. Yeah. So, I mean really I wish you the best and promoting these ideas and, and I’m happy to have been a small part of that.

Host
So is there anything else that you want to cover or you think we missed or you’d like to talk about?

Will Gallego
Sure. I would say first and foremost I want to make sure people, especially if they’re a junior engineers looking to break in, take care of yourself. And that means so many different things. It means don’t let companies push you around. Don’t let companies tell you what you have to know. Understand when you’re working two jobs where you have try to update a Github and do a portfolio and try to do open source work and do blogs and conferences and speaking … like, you get to decide what it means to be an engineer. You don’t have to listen to anyone say you’re not living up to the ideals of what it means because you’re not doing what I’m doing. If you didn’t get a formal education, if you didn’t go to bootcamps, if you learned this on your own, that’s okay. If you did go to a college, that’s good too. There are so many different paths to get into engineering. There’s no single one right way to get in and to understand that you need to build on what it means to be an engineer for yourself, for your own personal goals.


Credits

  • Host: Mark S. Weiss
  • Intro and Outro Music: “Florida Song” Copyright 2016 by Photographs (Mark S. Weiss). All rights reserved.
  • Ad Intro Music: “Woozy” Copyright 2015 by Photographs (Mark S. Weiss). All rights reserved.
  • All Interview content Copyright 2018 by Using Reflection and Mark S. Weiss. All rights reserved.