115. Continuous Learning as a Lead Dev

The focus of today's show is the recent discussion between Sandi Metz and David A. Black about continuously learning as a lead developer. We cycle through the points they discussed and pull out the most important areas of interest. We look at the usefulness of being uncomfortable in helping you to keep learning, varying the things you do and the way you do them in order to stave off boredom and staying humble and open even after acquiring experience. Today's conversation also covers the unnecessary link between lead developing and managing, which should not be presumed as it often is and how the topic and concept of mentorship has become more popular in the last decade to all of our benefit. We also touch on the the feeling of safety that is so vital for people to continue to grow before looking back at our first memories of programming! For all this and a bit more too, join us in the Rabbit Hole.


Key Points From This Episode:


  • Always putting yourself in a position to learn through discomfort.
  • Avoiding boredom through through the range of ways to do tasks.
  • The important and difficult skill of humility.
  • A lead developer is not one step away from being a manager!
  • The idea of mentorship and how it has grown in the last ten years.
  • Tech is easy, people are hard!
  • Psychological safety and the team atmosphere that allows learning.
  • Everyone remembers their first piece of programming, right?
  • And much more!

Transcript for Episode 115. Continuous Learning as a Lead Dev

[0:00:01.9] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast in fantabulous Chelsea Manhattan. I’m your host, Michael Nunez. Our co-host today.

[0:00:09.8] DA: Dave Anderson.

[0:00:11.9] MN: Today, we’ll be talking about continuously learning as a lead developer.

[0:00:16.6] DA: Not to throw you of but you know, 10 out of 10, perfect intro, you haven’t lost it.

[0:00:22.1] MN: Man, I’m really trying, this is a first take, right off the jump. I felt good about that one too.

[0:00:29.6] DA: King of the North.

[0:00:31.0] MN: King of the North, come on, stop it.

[0:00:32.9] DA: What’s wrong? It’s the north.

[0:00:35.8] MN: That is the utmost north borough, the Bronx and I live in the north part, the northeast part. Yeah, I guess I am King of the North. I guess that –

[0:00:44.8] DA: Do they have a motto?

[0:00:47.3] MN: What, in the Bronx?

[0:00:48.6] DA: Yeah, like winter is coming.

[0:00:49.8] MN: Forget about it. Well, my area is probably, forget about it.

[0:00:55.4] DA: Forget about it is coming.

[0:00:56.5] MN: Yeah. It’s coming. Today, we’re talking about continuous learning as a lead developer, recently, there was an NYC tech debate featuring David Black and Sandi Metz.

[0:01:09.0] DA: yeah, two big heroes of ours that we’ve definitely mentioned before in past episodes.

[0:01:15.9] MN: Yeah, we got an opportunity to see the video. I didn’t get a chance to be a part of the experience in the room. I imagine it was electrifying and awesome but – there’s a playback of the video and we got a chance to watch. I was able to see it on the live stream. Shout out to those who were on the live stream.

[0:01:35.1] DA: Yeah, Periscope coming through.

[0:01:35.5] MN: Yeah. There’s a new video, the video is out now, much better, more closer, you can see the heroes more upfront, up close and the audio is better and we got a chance to watch it and we’re just going to have a conversation about it.

[0:01:52.5] DA: Yeah, straight up.

[0:01:53.3] MN: One of the things that first comes up is the idea of always putting yourself in the position to learn. What’s a way to do that? Is by being uncomfortable.

[0:02:07.0] DA: I love this, yeah. This is a great philosophy to live by in general I think. If you’re in your comfort zone, then you’re just staying the same, you're not growing, if you're just getting the same thing for breakfast every day. The same brown flakes every day for breakfast.

[0:02:23.2] MN: The bokashi brown flakes?

[0:02:24.9] DA: Bokashi brown flakes you’re eating for breakfast, you're not growing as a person but if you’re getting a beautiful omelet every day with like different toppings, you're growing as a person.

[0:02:33.9] MN: I get to try all different ranges of flavors in a omelet, the same way you tried different ranges of programming languages.

[0:02:41.1] DA: Exactly, yeah. It’s like you know, if you’ve been a developer for a long time and you’ve really developed some mastery in one thing. David Black had, a great example about how he was really developing mastery in Ruby and then he got out of his comfort zone and was working on Python for a while.

And like that really helped him appreciate Ruby more and you know, eventually he made his way back to Ruby and was very happy about it but you know, much better off for venturing out of his comfort zone.

[0:03:13.0] MN: Right. I imagine that there are like certain paradigms that exist in Python and there are reasons why the exist in python and you have the structure of Ruby that allows you to do your Ruby paradigms and whatnot.

[0:03:25.2] DA: Yeah, all those beautiful Ruby domain specific languages.

[0:03:28.9] MN: Yeah, Sandi Metz also mentioned in the same question like what are some things that one can do and she had mentioned that she is just naturally, easily bored at things.

[0:03:45.9] DA: I super relate to that too. I am always bored.

[0:03:53.5] MN: Need to apply some excitement through programming. I just really like learning new things and learning more about them. If I’m doing the same problem over and over again then it’s really not that exciting. It’s more fun to be able to like dig into something new and it doesn’t have to be a new technology but a new feature, a new way of implementing something.

There are million ways that you can do something new in technology and I think that’s something that we’re blessed with.

[0:04:23.5] DA: Yeah, programming allows you to do that. I don’t know, I mean, I don’t know if I’ve put a lot of thought into it but what are some things that allows you to do a new way of doing things is like, is there a way to perform brain surgery? I imagine the type that it is. For doctors who need to remove tonsils for example, I don’t know why this is coming out. Probably because I have kids and this is things that I – think about it in the future.

[0:04:51.9] MN: Nightmares. Yeah. You have to remove tonsils, it’s probably one way to do it and that’s the way everyone does it and that’s it.

[0:04:58.2] DA: You really couldn’t go off script on that one.

[0:05:01.5] MN: Oops, accidentally cut something else out. No, it’s just tonsils and that’s it. I imagine like for surgery, there are ways that are just like, straight path forward but programming allows you to do, get many different ways of getting the very same thing. You can remove tonsils millions of different ways essentially in programming.

[0:05:22.5] DA: I guess you could grow tonsils in so many different ways but there’s consequences that are a little bit lower with most programming.

[0:05:30.3] MN: Yeah, but you got ice cream at the end, that’s what I heard, when you get your tonsils removed.

[0:05:34.8] DA: Ice cream at the end when I program too.

[0:05:37.9] MN: Don’t tell them how to live your life Dave, you do what you want.

[0:05:41.3] DA: Yeah, one of the points that I really like that both David and Sandi made was that like, when you’re being a developer or when you’re growing as a developer, you’re getting more skills and you’re getting more established and you’re becoming an expert lead developer.

Humility is a hard skill to work at but it’s really important, it’s like one of the most important things to have as a lead developer.

[0:06:09.4] MN: Right, because you have all this experience that you’ve gained, programming for X amount of time and you know, if you have peers who have less experience than you kind of remember those times that you were once just a young boy or a young girl learning how to program. Can definitely guide people in the right way.

I think that it’s very difficult if to lead a team and not have that attribute. I would think that there’s a lot of clashing that may happen within the team itself and it’s not something that you learn through – it’s something you learn through programming but like, it’s not programming, right? You’re not going to learn that in the React course or by writing JavaScript tests. That way.

[0:06:55.6] DA: Yeah. It’s like, empathy for people in that position of learning. Figuring things out for themselves. I think it’s also really valuable from the position of like learning for yourself, continuing to learn because like you mentioned, you’ve been a developer for a while, you learn through experience, different ways to do a solution and maybe like, you know, you’ve seen this problem before. You already have that solution in the back of your pocket.

Easy, I know that this is going to work for me, I don’t need to look any further but then you know, some new kid comes on the block and he’s like, "Okay, what about like React Hooks?" "Get out of here." Class components.

[0:07:42.9] MN: Get out of here or you’re hooked in your new things, off with you.

[0:07:47.0] DA: Stop writing features. Blog posts. Then you know, if you keep humble about it and you know, open to new experiences, okay, maybe I don’t know everything, let me look at this from an experience perspective and you know, I can bring something different to the table than this new person who is only knows this way.

I know the other older ways too and I can tell them what’s the best of both or what have you.

[0:08:17.3] MN: Yeah, I think you definitely learn the humility aspect when you are out of your comfort zone. Just going back to like that first bullet that we mentioned earlier. You can be this React wizard and be amazing in React. But then, you go to, I guess, my situation and you go to a Java project and you’re like, boom, you got to learn new things again and this is how it works in Java.

Nothing like React but you got to learn. Then you kind of remember, at some point in time, my React skills were here too. Elementary like type knowledge. Sure, I can be a master at React by learning, by going to something like Java, it’s like okay, I have to humble myself because I need to start from the beginning. I need to learn new patterns and identify problems and then fix them in this new space that I’m in that is Java.

[0:09:17.6] DA: Even though you don’t have the Java experience and then people have more experience with you in that. It’s not like you’re not able to add something new to that conversation and like still get a value feedback about just how to write a good program.

[0:09:32.1] MN: Right. I mean, you learn things in one space and you can use that in other spaces. Something that the power of a lead developer is that they may have been in many spaces that allows them to be more agile in the current space, even if it’s uncomfortable and they can still come out on top if that’s a phrase to use here.

I think one thing that was mentioned in the conversation as well, a lead developer can be many things and a lead developer’s next step is not being a manager. Just because you’re a lead developer means that the next step in your life is a manager is not the correct move unless you want to be a manager.

I think that was kind of like emphasized in the conversation. We’ve had many discussions in the podcast where if you want to be a manager, that’s the next step, then by all means, definitely go down that route.

[0:10:29.4] DA: Yeah, Episode 69, Kyle Rush.

[0:10:30.7] MN: There you go.

[0:10:31.7] DA: Manager.

[0:10:32.6] MN: There you go. If you feel like hey, management is not for you and you want to be an individual contributor, you could always be a lead developer and you don’t need to be forced to move into that direction.

[0:10:42.7] DA: Right, even saying that, when you are manager or lead developer, it’s like kind of a continuum. There’s not really like something saying that this is how you should spend all the time that you have. You really have to adapt to whatever the problem is that’s at hand and you know make sure you are doing right by the people that you are working with. Like that becomes more of your priority.

[0:11:07.7] MN: Right, as a lead developer you have tons of opportunity to be a design architect and mentor individuals and allows you to keep things moving while still being a contributor to the codebase.

[0:11:22.6] DA: Yeah, absolutely.

[0:11:24.5] MN: One thing I found interesting too that Sandi mentioned was the idea like the idea where mentoring wasn’t really mentioned 10 years ago or didn’t exists 15 years ago. And even when I was coming up, I was a young boy learning software engineering I didn’t have managers who really put that in the forefront of things or any lead engineers that were doing that and I think that there was more emphasis to be a mentor for someone else now more than ever, which I find really interesting.

[0:12:01.5] DA: Yeah that is true like the common thread of like it being more democratic for people to become programmers but it is easier for people to access like materials to teach themselves and go to bootcamps and what not but it is more likely that you can be working with people who are coming from a completely different background to really don’t have much context and will need to be pointed in the right direction, which doesn’t take that much energy because there is so many resources out there.

You just have to have someone, you know your developer who is working on themselves and growing they just need to want to grow and you just need someone who wants to point them in the right direction.

[0:12:47.1] MN: Yeah and I think that it is so easy to point at things that leads to the right direction because there is so much resources, as you mentioned.

[0:12:54.6] DA: As a contrary point, I guess if you’re just going at it by yourself there is so many things out there that is hard to say what the heck you should be looking at.

[0:13:03.4] MN: Right and I think that is a really good point that you mentioned Dave, the idea that many different people are coming from different backgrounds leads to people wanting to help those individuals in the right direction. And I think that at some point in time, maybe 10 years ago the path to being a lead engineer or the lead software developer was you went to college, you got a computer science degree and you knew the same stuff that I did.

So there is no reason for me to mentor you and we know the same thing. I’ve just been programming long. If I had more years than you, I just program longer. I’ve been in the work force longer but now with boot camps and things where you are allowed to gain a skill in three to four months, it allows individuals who may have been there longer to say, “Hey, I know you know the skill and I’ll be more than happy to help if needed because I have been in the workforce longer,” kind of thing.

I am not 100% sure. But it feels like there’s just opportunity for mentorship because of the bootcamps and the self-resources that now exists rather than the college route where you’ve got a diploma and we all learn a baseline of the very same thing.

[0:14:17.9] DA: Right, more homogenous. I mean I think that is just better for the industry in general for having more diverse perspectives when you are building a product. Yeah and I think mentorship really ties into this idea that Sandi and David kind of dug into, which is an adage that I think we mentioned previously on the show that tech is easy but people are hard.

[0:14:47.4] MN: Yes because you can go and learn the tech necessarily and get the job done but humans are something else.

[0:14:56.1] DA: Right, we have all of these different needs and emotions and feelings and beliefs that may not be correct. You can all be super technically competent and write a bunch of code but then if you didn’t build the right thing then it just doesn’t matter or like if you were fighting the whole time and hate your lives together and then maybe it doesn’t really matter.

[0:15:26.2] MN: Yeah, Sandi brought up the idea of psychological safety, I heard that word I was like, “Yes, we have it up this little to do oh my god.” But the idea that like the right people for the team.

[0:15:37.1] DA: Oh yeah, that is Episode 31.

[0:15:38.4] MN: There you go.

[0:15:39.1] DA: On the tattoos.

[0:15:40.1] MN: Dave is reading over. He has a mirror and he just looks at his back whenever necessary. So the idea that the fact that people feel safe around one another to handle a task at hand is really, really important and everyone can learn the skill, everyone at some point learn React if they really, really need it too but people need to feel safe within the team that allows them to be better.

[0:16:11.5] DA: Right, yeah so give them the ability to feel like they can stretch and try something out that might fail or they might not be so good at like really you just stay in their corner where they know they are going to be successful or it’s like low risk where they can be like, “Oh, I don’t feel safe to say that we are building the wrong thing or we are going to not reach out deadline."

[0:16:37.8] MN: Yeah, I think that is really important for a team to have that. There was something that was brought up and Sandi had the question and she asked the crowd. She asked, "Everyone remembers their first piece of program, right?" So Dave, I’ll ask you do you remember your first piece of program?

[0:16:58.0] DA: Oh man yeah. This is the origin story, right?

[0:17:01.7] MN: The origin story of Dave Anderson.

[0:17:06.9] DA: Yeah, I remember it was like some dorky computer club in middle school and we made webpages using Front Page.

[0:17:18.3] MN: Oh that sounds old. Front Page?

[0:17:22.6] DA: Front Page, yeah. It was like what you see is what you get and there man, the HTML that thing made was just trash. It was so gross.

[0:17:32.9] MN: Oh man.

[0:17:34.2] DA: But you know that was the first thing I had experience with and then I messed around with Visual Basic and building forms and trying to make games out of things that didn’t wannabe games, like enterprise software.

[0:17:50.1] MN: You making games out of them.

[0:17:51.7] DA: Yeah, making games out of them like animated buttons.

[0:17:55.9] MN: Nice, so I have two. I don’t know if people may not think HTML is a language although the word language is in HTML. So I am going to take that as you are but I was really big on making websites as well.

[0:18:10.1] DA: Did you do it from hand?

[0:18:11.1] MN: Well, yeah it was just like on notepad even before I found out what Notepad++ was. It was just like, “I am going to make HTML and I am going to set up my MySpace page to look a certain way.” And had to learn that.

That’s part of the reason why I became a developer in general because then I was that person who knew how to hook up with MySpace page and it was like, “Oh yeah, Mike knows how to do it. Tell him to do it for you.” And then the greatest thing that ever happened was like dynamic HTML, which is like some Javascript like thing.

And your mouse moves and then there is a shadow on the page and all sorts of cool stuff. Yeah, it was pretty amazing.

[0:18:54.4] DA: Blink tags.

[0:18:54.9] MN: Yeah, the blink tags. Yeah if you go to yobobby.com that was pretty much what MySpace user looks like. It’s like marque really big tags, I have no idea what I am doing but marques are great. My first OOP though I actually did in college, did like a banking app where it is like you created a cut like you are laughing over yobobby, aren’t you?

[0:19:15.8] DA: I opened yobobby right now and it says "Hello."

[0:19:20.4] MN: Hello that is pretty much that is my professional website guys for you.

[0:19:25.6] DA: Yeah, do you have the email and bobby@yobobby.com?

[0:19:28.7] MN: You know what? No I don’t think I have, I never set up the email.

[0:19:31.8] DA: Oh no, we are going to do that after the podcast.

[0:19:34.9] MN: me@yobobby.com. I think that OOP-wise, I created for a class project. What was it? It allowed you to open up a bank account and like a text, not a text it was command line like one, two, three, four, create a checking account, data savings account, look up your checking account, look up your savings account or exit and they’re kinda like doing that. It was like, “Oh,” when I built that I realized this is what I want to be when I grow up. I knew from then that’s what I wanted to do.

[0:20:10.5] DA: That is awesome.

[0:20:11.2] MN: Yeah, I mean, hey, if you find something you enjoy doing and you found different ways of doing it as the beginning of the path to being the lead developer.

[0:20:24.2] DA: Right and I think that ties it back together to what we were talking about before like humility and whatever, that one question just resonated so deeply with me and I forgot that this was the beginning of this really long path to becoming a developer.

[0:20:40.5] MN: Right, like the curiosity of then using Front Page for you for example, led you down the road that of where you are now. Which is like really cool and like me opening up HTML on notepad or building an OOP software for college is a final, like those things were the starting building blocks.

[0:21:01.6] DA: I’ve used this point where now you have yobobby.com.

[0:21:04.2] MN: Yes.

[0:21:06.4] DA: It is the pinnacle.

[0:21:08.1] MN: The pinnacle of my software engineering skills. But yeah, I think the path to being a lead developer it never ends. Always be curious, get easily bored, get out of your comfort zone that way you can continue to learn, grow and become awesome.


[0:21:26.7] MN: Follow us now on Twitter @radiofreerabbit so we can keep the conversation going. Like what you hear? Give us a five star review and help developers just like you find their way into The Rabbit Hole and never miss an episode. Subscribe now however you listen to your favorite podcast.

On behalf of our producer extraordinaire, William Jeffries and my amazing co-host, Dave Anderson and me, your host, Michael Nunez, thanks for listening to The Rabbit Hole.


Links and Resources:

The Rabbit Hole on Twitter

David A. Black

Sandi Metz

Continuous Learning as a Lead Developer