Hey everybody, and welcome back to the Ruby Rochs podcast. Man, I'm missdoing this, it's been a little while. I'll give you all a rundown in a minute about what's going on. But yeah, today on our panel we have Dave Kamura, everyone and John Efferson and yeah, I'm Charles Maxwood. So essentially what happened was the COVID situation with the schools. My older two kids go to school that's like KA through nine, and then my younger
kids go to the other school that's K through six. They've been going to since my oldest started school, and the school that they go to they decided to go half days. Every school did something different is probably not surprising to anybody who has kids, but anyway, so they scheduled the carpool right during this call, and then my wife wound up volunteering to help get lunches out at the other school at the same time. So I haven't been on because
I have been in my car. So we finally got around to rescheduling this. I'm going to have to do the same thing with Javascrit Jabber incidentally, but they asked her to continue with lunches through the end of the year, and so yeah, we picked a new time for Ruby. Roagues is what's going on? So probably more than you wanted to know, but that's where
I've been. I've been in the car anyway. I kind of set this one up this week just because I've been thinking about a lot of stuff and we didn't have a guest scheduled for this week, so I thought I would just jump in and talk a little bit about this stuff and just to give a little bit of background. So I started talking to folks and trying to figure out what they wanted from the different podcasts and what they were looking for
and what they were struggling with. And one of the recurring things that keeps coming up is how to keep current, right, how to stay on top of all the things that are changing. And I think we're a little bit lucky with Ruby in that we're not frantically trying to keep up with what's going on in Rails or Ruby or anything else. Of course, we're going to have a big Ruby release here on Christmas, I think, is the rumor anyway. But yeah, so people keep asking me that, and then I
ask them, why, right, you know, what's the outcome? You're looking for right as far as keeping current, and people also have like JavaScript stuff to keep up on and stuff like that, right, because most of us are doing webdev. And so it was, well, I want job security or I want to get a better job. Usually it came down to something like that, and so I started looking at, Okay, how does
that work? You know, how does that come together for people? And a lot of the junior folks also kept asking me, you know, how do I become a senior developer? Right? How do I get to that level? And so all these things started playing together in my head and I realized that over the last several years, either as a contractor or as an
employee. In fact, for the last probably ten plus years, the last couple of full time jobs I got before I went freelance, most of my freelance clients and then the job that I recently got to pay the bills, the interviews went something like, we like your content, do you want to
work for us? Right, even if I applied for them, And so I realized that essentially, then what a lot of this boils down to is it's not it's not getting the senior developer title per se, but it's really you know, are you contributing to your team at kind of a most valuable player level? And so I bought most Valuable dot dev as a domain and I was looking at putting some stuff together and somebody asked me, well, what's the most valuable dev? And that's what I want to talk about.
So long winded, sorry, but that's what I want to talk about, is what that looks like. And when somebody asked me, I essentially kind of rambled for like ten minutes that I'm not going to do for you guys, and then I said something about, well, they should be in the top five percent of developers available for whatever company they're working for. And that really helped me narrow it down because it's like, Okay, what are the
top five percent doing that everybody else is not doing? And so I'm curious as we get started. I have some ideas here, but as we get started, So for those top five percent, right, the kind of the top end developers that you work with or maybe people tell you that you're a top five percenter and you know the things that they look to you for, what is it? What? What are the top five percent of developers the ones that are kind of the can't live without experts that are on your teams.
What are they doing that everybody else is in't doing. I think the one one of the biggest traps that a mid level developer gets into is that it's the way they've always done it. They never explore outside of what are other options. It's just they've always used carrier wave and the sorcery gym, and so that's what this a new application needs to use as well, you know, just for the sake of the developer and familiarity, instead of what's
best for the product, what's going to be most maintainable long term. I think a lot of traps that we get into as developers is we think about
right now and we don't think about the maintainability far in. And so I think that's one big thing that kind of separates a developer from a higher level is that a higher level developer is thinking about what's going to be the best tool to solve our issue right now, and one that three years from now we're not going to look back on and say, why did we do it
this way. It's going to be something where they don't even think about and those are the good decisions that we make in that application are the ones that
we take for granted, the ones that we don't even think about. And so I think that a lot of issues where you have this professional junior developer or a lifelong junior developer and I say junior in the sense of they never really step up to the next level so they could be the lifelong normal titled developer or the lifelong senior developer, is that they never stick around long enough to actually see these changes that they and decisions that they are making today,
how they play out and affect the future. Yeah, I like that. I like where you're going with that, John, Do you have anything to add? So, I think one thing that I would say, So the first thing that I wanted to say is I definitely want to concur with Dave.
Though I've always described it a little bit differently to people. I always like to tell people that for me, you move sort of from being a junior to a mid level when you sort of like in your bag of tricks you have like a one tool for just about every job there is, right, and then sort of for me, the demarcation between like the senior and the mid level DOV is kind of more like as a senior, we understand that there's a lot of different tools that I could be using for a job,
and we understand and we've mastered the trade offs between using those different tools. And so I mean this is this is total concurrence to what Dave is saying, right, Like, as a senior, you kind of move as you begin to understand why I would use one of these tools and why I
wouldn't. So so for me, that's kind of like how I've always explained it, and that that helps me also to better recognize people that are for me, That helps me to recognize people that are moving from that mid level to that senior and the junior to the mid level thing because you can more
proactively see that kind of effort going on by somebody. But yeah, there are But separately, there's like a ton of different hang ups that you can have, right, there are so many like flaws For me, I think it's more interesting to look at for me in particular, I think it's like more interesting to look at like as far as like what makes you a senior
DEV sort of like those positive aspects. So there's a lot of things that we associate with being a senior DEV, like maybe you mentor people, or maybe you output a lot of code, But I don't think any one of those things makes you senior in and of themselves. I think it's you need some sort of mixture. I guess I never really thought about it from like most valuable dev standpoint, and and I over the course of this conversation,
like that's been kind of polluting my thought space. So my apologies for all that, guys, because I think it's an interesting take because it kind of
fits. It kind of fits like how I've associated with, which is like I want I always want to see before I like look at somebody as being a junior, somebody sort of creating like an identity for themselves, like they're gonna be good at these things, and and typically they also know what their weaknesses are and they're okay with that, and then they like find a way to solve for that. So, for example, I'm perfectly capable of doing front end work, but I don't really like front end work, so I
just don't. So typically when I go to a place, like one of the first things that I always try to do is find a buddy that kind of likes that stuff, and then I'm like hey, I'll take some of this back and work from you. Right, And you could say, oh, that makes your back end dev. But I've literally never been worked anywhere
where we've had that demarcation, you know. So I think one of the things that's really important is learning what your weaknesses are, learning how to cover them up, learning what your strengths are, being willing to put those forward, Like I feel like, creating a package around yourself, an identity for yourself, and learning all of those soft skills. Like I think the most
important aspects of being the senior developer are all the soft skills. You're just a strong From my perspective, I feel like you're just really a strong mid level dev when when you're like, look, I put up tons of code, but that's like all I do. Great, that's fine, like that. We need people that contribute a lot of stuff. But I feel like it's all of the soft skills that like turn you that like kind of push you over the edge into senior most of the time. That's just where I
come from, And I know that that's also not the definition. I mean, the definitions are different in different places. Yeah, so well, that's that's why I have a problem with senior DEV. And so when people start talking to me about wanting to be a senior DEV, I immediately pivot to you know, top five percent or most valuable DEV, because yeah, everybody kind of sets that a little differently. Some companies have like different development tiers.
I know, the place I'm working, they have you know, levels, you know, so I'm a level whatever DEV and things like that, and you know, ultimately I'm trying to kind of consolidate the definition a little bit so that it's, hey, look, you know this is this is
how you kind of stack out and where I see it. You I'm like, I should have gone first, because you guys said two thirds of what I was going to talk about with this, And the first one is you know your your technical capabilities, and I think Dave, both Dave and John both of you put out, you know, a really great way of explaining, Yeah, the kind of the technical level that we expect people to operate at for this right where they they understand the technology, they understand the technical
choices, they can quickly evaluate different options if they're not familiar with them, they can make the calls. A lot of times those calls are instinctive you know, because they you know, they have spent the time and put in the work to understand the systems that they're working in, you know, be
at rails or something else, and so I see that definitely. I also agree with John that for the most part, anymore, since we're working on teams, that level of expertise needs to be able to be communicated and it needs to be able to be shared throughout the team. And so if you aren't capable of working in a team anymore, the first part, it's I don't want to say that it's completely wasted, but it doesn't have the amplify effect that it does if you are a capable leader or a capable mentor and
things like that. So I definitely agree with you guys on both of those counts, because yeah, I mean they're critical, right, yeah. And I think it's also important to note a couple of distinctions that a senior developer is not necessarily the subject matter expert, so they may not know the entire domain. They're just really good at understanding requirements, building out architecture, understanding
how their decisions will affect things in the long run. So you could have a junior person come on board and provide so much insight, valuable insight into requirements and direction if they are the subject matter expert in that particular area. And I think that also a thing that will really distinguish a good developer versus a more is that it's a quote from Martin Faller, any fol can write code that a computer can understand. Good programmers write code that humans can understand.
Right, So if the code that you're writing is just all tangled and just kind of pushed together to just get that code to work, but it's not maintainable, then it's not really good code because humans are going to have to come back and understand it to maintain them. Yep. Absolutely, I want to throw out the third thing. So there are three things for me that make kind of this most valuable dev or top five percent dev and that
that's involvement in the community. And I know that not everybody wants to write open SOCE source code, or write blog posts or do a podcast or do videos or things like that, but I mean even just showing up to conferences and having conversations with people, and you know, just being out there is a huge step that a lot of people don't take, right be it at local conferences or you know more I guess not local conferences, so the big
conferences, but you know, they're the ones that are getting out there and speaking. They're the ones that are getting out there and putting content out. And the reason that I have a focus on this at all is because people do talk about that level of job security, being able to level up, being able to go get the job that they want, and things like that, And that's ultimately the outcome I want is I want to lead people to the place where they are in a position that they want to be in working
for a company or themselves. But you know, whoever they want to work for, they're working for and they are contributing at a level they want to contribute to, and then that is feeding back into the rest of their life so that they have the freedom to go do whatever whatever else it is that
they want to do. Right, So if it's you know, raising kids and you know, being there for all of their kids' stuff, or if they want to go surf on the weekends, or they want to travel the world or whatever or else, right, I want people to be able to kind of find their dream job, but their dream jobs that supports and sustains the lifestyle they want and so, and I find that it makes it a whole lot easier to be able to do that if you've got some form of
content out there, and so that that's kind of the final piece that I'm putting to this. Yeah, I've seen a lot of developers who are by no means senior even still just push out so much content. They're putting out blog articles, they are getting on podcasts or other places, just really getting their name out there. And it's surprising how much just that social engineering aspect of it can really raise the bar where people view you at just that name
recognition. So these developers, they're putting out some good stuff, you know, because I think one of the best ways to grow as a developer is to get feedback. I know, when I was doing development completely solo, where no one was viewing my work, I made a lot of compromises, and because no one was looking at my code, then there was no one
to criticize it or to help guide me. And I think that was one of the biggest mistakes that I made early on, was to not seek counsel, to not have a mentor to not have others even at the same level, because iron will sharpen iron, and as you are working with someone else, they're going to have a different set of eyes, a different insight,
and that's going to be really important to your own development growth. So I actually want to take this on slight tangement too, because I think so we're talking about content here being like one way right that you sort of connect with people, get your name out there, things like this. I'm probably the least prolific content wise of the three of us, but there are other ways to do this too. So you noted, hey, iron sharpens iron,
right. So one of the things that I used to do a while back before Charlotte Doves existed, even is I used to go to like all these meetups and people in my town knew who I was and gave me respect despite the fact that at the time I had basically no content to my name. I wasn't you know, there wasn't the Charlotte Doves organization. I had literally nothing behind my name. But I was going to these meetups all the time, and I talked to people and people heard me say things, and over
time that built up respect too. So I literally just showed up to stuff right, and that also garnered respect as well. Obviously as time we're on you know, started Charlotte Doves, you know, which is an organization. That's another tech I think that you can take too, right, is create a space for people. But but yeah, I mean literally, it's a It can just be as simple as just chatting with people. And I was also going to mention one of the things like I have found as I've mentored
other people is that I develop respect for my mentees over time. So I wonder how much of that happens as well, that finding a mentor can create some of that. I was trying to think as we were talking along about other ways that you could do similar types of things without necessarily because not everybody's a content creator. Those are just ones that popped up to the top of
my head. Yeah, definitely, I mean, and I'm glad you brought up the meetups as an example, because we need people at the local level just as much as we need people at kind of the global level, and a lot of times those are going to be the people that are Yeah, they're mentoring people there, they're getting to know people, They're solving problems for people because a lot of the people at kind of the higher level, they
feel like they're out of reach a lot of times. And so I'm much more comfortable after the meetup walking up to somebody and saying, Hey, I'm struggling with this, how do I learn it? Or Hey, that was a great talk. I want to use this at work. How do I do it? As opposed to some of the other things in their workshops. Like I said, local conferences, there are code camps that all tend to
happen locally. And then you brought up organizations and a lot of these organizations will have a Slack channel or a forum or an email list or something like that, or you can participate there. And again, you know, you
can become well known and prolific locally by participating in some of those. And so as you help more people out, as you make more of a contribution or just ask good questions, a lot of times that will lead you down the path of getting a little further along within the community than you would have
otherwise. And I do want to circle back to the topic that we were discussing before with the junior kind of vers senior is that one stranging that found is that not always will a senior developer or the best developer on the team be the person leading the team, and that can be a real struggle because there's going to be tension if you don't have the best person for the job
leading the team. And sometimes that's actually a good thing. If the better developer is not a good leader, then they're going to just kind of take that software into the garbage. But when you do have someone who just happens to be the team lead, but then you hire a teams that team of people where there are better people suited for the job, then you're going to have some issues in the dynamics of that team, and more specifically between the
senior developer and that team lead. You're going to have a lot of issues in those dynamics. And I hate playing any kind of corporate politics. I think it's just a waste of time. I think it's horrible and it just should never happen. But unfortunately that's kind of what you have to do in
a corporate world. But I think trying to keep your focus on the code, what's best for the business, what's best for the team, is always going to not only protect you, but it's also going to be better in the long run, because one, you were backing your thoughts with intelligent and factual things that can be shown as this is the way we should be doing it, versus what this team lead who's not as good of a developer is saying that we need to bring this in because we did this at my last
job, and my last job, you know turned out fine. Well, you're kind of not at your last job anymore, are you like working on the same app? Yeah, yeah, so yeah, that's just kind of one thought that I have around there. And it's a difficult situation. And I think as we start working with other people, we are going to experience these difficult situations either sooner or later. And I think one suggestion or advice
is don't be so easily offended by a difference of opinion. You know, having a difference of opinion, you can use it even if you are completely in the right, you can use it to grow because it's a there could be a chance that you're hearing a different perspective, and there's always some good
things to be taken out of a different perspective. Yeah. Absolutely, But ja I was gonna say, I think it's it's also probably an opportunity for you to level op those communication skills as you're trying to navigate right, especially when when egos are involved. It's just it's difficult and it really sucks to where through. But yeah, communication skills matter. You can say literally the same thing. You can have two people saying basically the exact same thing,
and how they say it, you know, will make a difference. One person will piss off somebody and the other person will will not. You know, so I know that I have had plenty of cases where I'm like, trying to deal with somebody that's stopborn, maybe it would be a good way to put it right, or you know, just not really like you said, not everybody on your team one hundred percent of the time is always thinking
about the business. Sometimes they're like, well this will make me look good or whatever it is, or they just like a thing, they love a technology or whatever. Lots of personal reasons why somebody might not be thinking to go to the business. And if you're able to make the argument, you know, that'll often help you to win the argument, which might be important.
But if you also think about you know, hey, do I care about this person, the relationship with this person you know, for example, maybe it can be a selfish thing of do I really want this person to be pissed off at me next week? Right? You know, maybe that will evolve your conversation such that you might decide not to make them angry, or you might you know, talk about the stuff in a better way.
And that's opportunity for you to work on those soft skills that and I do believe that people that are kind of better at navigating those scenarios over time, like they tend to garner respect as a senior developer. I think that is
one of the markers of that. Yeah. Well, and what we're speaking to, and I think you've both alluded to this, is that leaderships and leadership skills and technical skills are not necessarily the same skill set, right, and so your ability to manage up, manage laterally, and manage downward. There's a terrific book, by the way, called The three hundred and sixty Degree Leader that talks about all of this stuff and walks you through a lot
of this stuff. I'm trying to remember who the author is, and I'll probably just look it up and tell you in a minute, But I mean,
that's the deal. Right. And so you may be a great team lead and may not be the most technically qualified person on your team, right, But then you've got to be willing to accept the responsibilities that come with your leadership role and at the same time defer in the areas that you don't have the expertise in or don't have as much expertise in, and not necessarily defer in the sense of just let them have their way, but again,
lead the conversation and keep things focused on how do we succeed to what we're doing. And if you can do that, then that's a big part of being this kind of a developer. Yeah, in a team game, right, yep, it doesn't really matter if you are literally the best, you know, the best developer that has ever existed, if you can't get the
project across the finish line. And when you're playing a team game, it's typically because it's something that's much bigger than a single person can get done themselves. So if you're really amazing coder, but but you like kind of you know, stomp on everybody else around you, right, Like, that's going to get in the way of your team. So one of the things that like it's really important in a team game is are you sort of enabling the people around you as well as yourself? Yeah, I just to make a
sports analogy. There are two things that I want to point out. One is it that in most sports they count assists as much as they count scores. Right, So I'm a big soccer fan. Whoever passed the ball into the middle of the mess, they get a stat, and then the person
who puts it in the back of the net also gets a stat. The other thing is is that if you're playing the role of the coach, you're not going to score any goals, right, but your job is to make sure that the team is winning the game sports, all right, Yeah, I'm gonna push us a little bit to a little bit different place. And this is kind of the throat of the focus that I'm going to be pushing all of the shows at devchat dot tv toward as well as I'm working on
a course. And I have kind of a soft announcement at the end of this episode, but I want to talk about how we get there, right, because it's one thing to kind of you know, we've kind of set this definition out there, right, top five percent developer needs to be able to do these things or have these skills or you know, and I don't even know that they necessarily have to have all of them, but they're going to exhibit a lot of them. Right, But how do you get there?
Right? So, let's say that I am this mid level person or I don't even know how to evaluate where I'm at, or maybe I'm a junior person and I'm stuck at this job and I don't know where the opportunities are to even grow, learn or move up. I mean, how do I get from there? From here to there? Right? What kinds of things should I be doing to move myself along this path so that I can be that top five percent developer. I feel good about the contrby I'm making
to the team. I feel good about the contributions I make to the community. And I have this job that is working for me as much as I'm working for it. I mean, watch any kind of movie where the main actor is, you know, just been discovered and then by the end of the movie they are the cong Fu master. So you know, I think
Karate Kid. So yeah, Daniel Huusso you know, if you like the old ones where he's just this little kid getting beaten up all the time, and at the end of the movie, you know he's taking down the kids that were beating him up. It didn't just get from start to finish. There's a journey, so don't miss out on the journey. And I think
that's one of the biggest things. It's important to keep focus on the end result, what the outcome is supposed to be, but don't miss each step in between, because you lose a lot of valuable lessons if you try to jump ahead. And one of the very first things that happened on Daniel Hurrusso's path to growth is a mentor. He had a trainer, someone who wanted
to help him, and someone who wanted to see this person grow. So I think having some kind of mentor that you can ask questions and get feedback, and even when the feedback might hurt your feelings, to know that this person is trying to help you grow into a next level developer or Ninja Ninja
montage. Well, that's funny that you say that, though, because I think a lot of times we kind of envision that montage right instead of all of the work right, So we see Danielson waxing the car but we're not sitting there for hours watching him wax every car, right, We're not there every time when he's you know, going to the beach with mister Miyagi and
you know, doing whatever work. We just kind of see outtakes, and I think a lot of times we get this idea in our heads that we're going to have a montage growth trajectory instead of realizing that he was out there on the beach every day he was, you know, he spent hours and hours and hours painting the fence. Anyway, John, what were you going to say? No? I mean at first I wanted to make my joke, but sorry, I killed the joke. No, No, I said
the montage thing that was? That was it? Oh? Now, I get request from people all the time randomly, right, and they kind of go a little bit like this. They're like, well, hey, I want to how do you do this thing right? Or how does this thing work? And I say, well, here's a basic understanding, you know,
and that'll get you pretty far. And so maybe there they immediately sense there's more to it, and they were like, well, is there a five minute video that I can watch that explains everything so that I can just consume that and understand it right, and and then I'm like, no, it's just it doesn't like you. You often get like an incomplete understanding, and that is the thing that you work with for a while, right,
and then you sort of grow this better understanding over time. I think there's I don't I don't know if it's caused by something, but I definitely feel like a lot of people just want to come in, watch a quick video, reach a blog article, whatever it is, and then they're immediately a master of the thing, and you can get You can get pretty far with a lot of these blog articles, right, You can get a lot of knowledge things like that. But I think that people are definitely asking to get
way more out of these things. Then then you can get that way. You just have to practice, Like I think that's really Dave's point here, like literally a practice. Yeah. And one thing you know to kind of go alongside that is, you know, if you do have someone that's helping you out a mental or and stuff, a mentor is not there for you
to just go and ask questions all the time. One of the best ways, and this is just for me personally, others are like this, but not everyone is I do really well just banging my head against the keyboard, you know, to just struggle and struggle to try to figure something out and always get it figured out. So it's not like that it is an impossible
situation to resolve. But having that time of going through the ninety nine ways to find out how not to screw in a light bulb to then finally figure out the one right way to do it, you know, it's a learning experience that now you know ninety nine ways not to do something. And I think that if you just go to a person who is giving you the answer, like, oh, you just need to like this, they don't go too far into here's the ninety nine ways that you don't want to do it.
Number one, you probably tune out because you don't want to hear the ninety nine ways. You just want to know this one answer. So having that time on yourself to struggle and to really you know, get your rubber duck out and explain it to the duck. You know, here's what I'm doing. Here's it's not working. You're not going to just sit there and
tell the duck my code's not working. It's not working, like well, you know, you have to explain to the duck, like what's going on, Like what approach if you tried, what are what are the things that you're trying to do, what are you thinking about, what's going on in
your head? You know, explain it, read it out. And I think that's the issue I see with a lot of more junior developers right now is that they want that montage, as you were saying, Chuck and John, that they don't want to go through all of the effort that it takes to really learn the stuff. They just want the answer and then they will move on. The problem with only getting the answer for that particular issue is
that you're not getting any of the theory. You're not getting any of the in depth background knowledge around it in order to then be able to adapt it to the next problem. That's very similar, but it's just tweaked a bit differently, because then you're just gonna be going back to that mentor or to that person you're asking questions to and asking them the question again, and to that person, they're gonna hear the exact same question. It's like, well
we just talked about this last week. You know, you're asking me the same thing it's just a little bit different. You know, just do make the necessary adjustments, and you're gonna start wearing out that mentor to where they don't want to help you anymore because you're not helping yourself. So that's it.
That's what I had to say. Yeah, well, and it's interesting too because I'm going through this right now with project at work, and essentially what we're doing is the rest of the company has this set of React components that are styled in a particular way that you know, they've built these other websites with, and they want us to start using them and incorporate them into our rails app. Well, they're not really in a convenient format for us
to use because they're not in an NPM package. They're yeah, they're not really in a GEM or anything else. And so we've been building this GEM to make it easier for people to use these these React components and then to actually, you know, we created a form builder so that you can just kind of rails weigh it and not really care that you're React under the hood. But I mean, we've had this big long learning curve with Webpacker,
right and it's like, oh, that didn't work. We're getting this air and then we kind of move on to Okay, now we're getting this other error. And so by the time we're done, we're sitting here going, Okay, we have a much better understanding of how the react rails gem works. We have a much better idea of how webpacker works, and we have a much better idea of how to include these pieces of things into our rails
engine and how the rails engines work. And so yeah, if somebody had just given us the answer, I mean, we could have copied it all, but yeah, we wouldn't have picked up this knowledge that surrounds all this stuff so that we can make the right call later. Yeah, and that all becomes part of your big blob of the knowledge that you have. You know, that's different from person to person, and it's super cool. I
don't know. I I definitely I have experienced this kind of frustration before as well with Minte's, and I've also I don't know, but I actually feel
I actually have like sort of a different problem with Mente's in general. So and maybe it's just the kind of mentees that I've run across, but I've also experienced the kind of situation where the mente sort of they they're trying so hard to not ask you questions, right that they literally never come back for help, and so they're off on these wild goose change chases for long periods
of time, and you sort of so the rhythm becomes different. Instead of instead of them constantly asking me questions, I find myself with this type of mentee chasing after them and being like, hey, what's up, and they're like, oh, hey, I had this problem, so I went here and then you know, instead of off down some deep rabbit hole and you're like, well, hey, you know, you could have bailed out up
here or something like that. But I often find that, like time boxing works for that kind I mean, different people have different sort of like personal things that they do or in habits, and you kind of have to deal with different people differently in my experience, but for that kind of mentee, right you, I often find that, like you timebox, you're just like, hey, you know, if you spend two, three, four days, I mean I usually don't let them go past one or two, but
you know, if you're spending multiple days on something, you should bail go talk to somebody. At that point. There's different kinds of problems I guess is what I'm trying to get at, and you find different solutions to help
with those different mente problems. Yeah, absolutely, I agree. I think that we do find that trap where someone's afraid to ask questions, whether because if they ask a question, then that means that they are not as good as what they thought they were, imposter syndrome, sits in and whatever. And I think that's something that we need to get over. I get into that trap myself where I have an issue I just I can't figure it out, and you know, being able to humble your self enough to ask a
question or say I need guidance. No, I don't want the answer, I just need guidance. And that's something that you can't read in a book. It's something that you have to, you know, learn how to do. And when you do go to ask questions, make sure that you know what you were wanting, what the outcome is, you know, don't just say something's not working. Know the issue well enough to be able to explain it clearly. Speaking of rabbit holing, I feel like we're kind of rabbit
holing on this mentoring thing. Great discussion, Yeah, I love it, of course, But I think the point is that mentoring others as well as being mentored by others is a good way to level up. I think both aspects give you some stuff. I know, I, for one, as somebody who spent most of their career, especially the early part of it, with no me ers whatsoever, and I have only gotten mentoring late in my career. I really wish that I had gotten mentoring earlier in my career.
It's been super helpful in these past few years, and I really wish I had done it sooner. So I definitely always highly recommend that to people. And it's good to find a mentor outside your organization, but you should be able to find one inside your organization. If your boss or the manager you report to is not technical enough to mentor you, they still have probably some valuable information to share, but you should look for someone else to help guide
you, to help build you up. Because a lot of times, as we're working on code for a company, you can't really share that code outside the company, so you need to find someone internal that can help shape and mold you. Yep. Yeah, and it doesn't have to be the same person either, and it's funny because you know, especially for my early your career, listeners to this show have met my mentors. Right. My first job, I was working with Nate Hopkins and got to be really good friends
with Eric Berry. And then after I worked with Nate for a while, I wound up working with David Brady and I worked with him for a year and then we've actually you know, collaborated on some other stuff off and on, and so yeah, it's interesting just from that standpoint of, Okay, you know, I kind of was put in a position where I worked with Nate and so I got to be mentored by him, and then you know, as things moved on, you know, I was mentored by other people.
And I've also found that the podcast and going back to the community idea the podcast early in my career, Ruby Rogues will be ten years old in May, Right, I got mentored by James and Josh and Ovdy and David and anybody else we had on the show, right, and so I could
go and find those mentors. Before that, I was doing the Rails Coach podcast and I talked to James, talked to Greg Pollock, who actually mentored me on podcasting, and so you you know, and maybe it was just one offs with some of these folks right where we did an interview and that was it. But I had the opportunity to kind of learn some of these
things from some of the best people at them at the time. So it doesn't have to be all at once, it doesn't have to be the same person, doesn't have to be somebody you work with, And you can create
these opportunities too by doing different things. You know, whether it's contributing to open source project that somebody you want to be mentored by works at, right, or whether it's doing a podcast and you just talk to them, or I mean, any of these things work, and so it's just a matter of figuring out how to get in front of them and make it worth it to them. Yeah. Right, So we're all senior developers now, right,
mostly consider our hosts that way, right. I mean, even the ones that are like, well, I've only been doing this for a year too. I just I see them leveling up so quickly because they are They're talking to a lot of times the best people in the field and learning in those ways. So, yeah, it was a joke, but you know, I found my biggest struggle is that I am my own worst endime, whether it was me trying to figure something out, or my lack of attention
to something, or my lack of focus on the task at hand. Now, I'm not saying that you have to work day and night in order to become a good developer. You just have to have good focus and to not
stray off. You'll still get there, they'll just take you longer. Yeah, Yeah, I think there's a balancing act, right, So you have to do some amounts of demonstrating of your skills for the purpose of getting a good job and things like that, right, But really, at the end of the day, to be a good developer, you need a touch of, if not a lot of right humility and the ability to to understand what
you're not good at. And so I don't I mean, that's just a struggle that like we all work with separating the the resume and interview self, right sort of from the person that shows up to collaborate with other people. Yeah, because you don't want to be thinking that you're the best. You also, at the same time don't want false humility, because that's that's how you end up in the place where you have you know, imposter center and
all that kind of stuff. So it's it's a dance, and it's really hard, and I think that most people struggle with some aspect of it or another, and that's normal. And I would also say don't be intimidated by others because number one, if they are above you in a development level perspective, they've been where you were. But also, you know, just as an example, all of the Drift and Ruby videos that have put out, these are not just a oh, I want to record this episode, so
I just go in and do it. I do a lot of research for every single episode on what is going to be the best information to share with the listener. So it's not something that I just whip up and do. And same thing for blog articles. They don't just start typing away and then the issue. You know, the blog articles done with all this code that they just hand wrote right there on the spot. A lot of research went
into it. So all of these people who you may look up to and stuff are putting in a lot of effort and time in their research to then show you the final draft. No, it's that you know, Daniel Russo at the beginning of the movie and the Ninja Daniel Russo at the end. Now, that's the process that we go through when we publish out content. It's not just a quick take and we're done. Yeah. Well, the other thing is is, you know, he went to the tournament and he
didn't win the tournament in one bout right. He had to go fight each round. And that's I like what you're saying, Dave, because yeah, I mean each stage takes some work, Each stage takes some prep, each stage takes some research, and at the end of the day, I mean you you kind of pick some battles and you go and you fight one and then you fight the next one, and you know, you learn and you overcome and you level up. And yeah, it doesn't it doesn't all happen
at once. And so yeah, if you're looking at being the next dahh, that's fairly intimidating. But at THEHH level up one stage at a time, just like everybody else. One other thing I want to talk about though here just before we wrap up, is we've kind of focused on leveling up on the technical skills, but what about those soft skills, you know, the teamwork skills, the communication skills, the leadership skills, you know,
there's not really technical documentation for that. There are great books out there, I will say, and that's kind of where I've learned a lot of this. But do you guys have other recommendations for learning thees, practicing thees, leveling up the knees, that kind of thing. I would say, First, get your resume up to date, you know, work on your resume, because you can learn a lot about the soft skills in communication by updating
your resume. And specifically, I'm talking about being able to clearly communicate and concisely communicate, because your resume is going to be the epitome of clear and concise communication. When I was hiring, I was reviewing a lot of resumes. Some resumes would be three pages long, and I got one that was over ten pages long, and wow, that right there. My very first impression of this resume was this person has a real problem with clear and concise
communication. So what you'll find is as you go to review and edit your resume is that it's not a one time you sit down in then you're done. You read through it. You missed the semi colin, you missed the period, you miss whatever you need to reword this it's not clear, you give it to someone else to review, and after several weeks then you have something that is clear and concise. And that's how you should really tackle a
lot of these soft skill things. When you're asking questions, when you're giving in answer, is are you conveying the point that needs to be conveyed clearly and concisely, because then people will listen. If it's easy to listen to you, then people will listen. If you make it to where people's heads are spinning, they might be listening to you, but they're not hearing you. It's going in one ear and out the other, and they're just tuning
out thinking about what they're going to do after that meeting or whatever. Speaking of resumes. Speaking of resumes, actually ran across a sweet article on stack over flow of blog. It was Thanksgiving weekend. I think that I'll add to the show notes I was gonna After you said, I was like,
I'm totally recommending that thing. It was probably I don't know. I've always struggled to give people a resume guide that I think will actually help them, because I think most resume guides are full of like either vaguees that you know, people really can't wade through. If they're asking me questions about how to improve the resume, they already didn't understand these vagaries, right, or or it's like stuff that doesn't really apply to developers in particular, things like that,
and this particular one is geared towards developers. It gives a lot of really useful tips to both seniors and juniors. It was just really really well done and I literally have never seen an actual applicable guide, So I'll definitely recommend that. But yeah, resume point nice one. Did you have any
more? Dave? Before I know, go for him? Man. So I was I was thinking one of the things that I personally found helpful for me was to and I do this for a lot of things in life, right, I am like, hm, I want to improve this aspect of my life. I go find somebody that I think does a good job at it and probably stalk them a little bit too much, not really, but like I I literally think about what it is that that makes them work, and I try and mimic a lot of that stuff, and you know,
just incorporated into myself. And I'm sure a lot of people do this kind of thing, but I definitely consciously do that. It is definitely a process that I recommend when you're like recognizing something is not you know where you want it to be. Right. So, if you want to be like a senior developer, I mean, invite them to beers. Talk with them all the time, you know, get one of them to be your mentor like do do the things that give you the opportunity to watch them and or just
like hear them talk a bunch, learn more from them. Yeah. One other thing that I'm going to throw in on that, John is a lot of folks what they wind up struggling with. And the reason that I started by talking about, you know what is kind of a top five percent developer, what's a most valuable developer is that they don't have a clear idea what they want right. They don't have a clear idea where they want to end
up. And so what winds up happening is is they start just thinking, Okay, well, I just want a better position than I have now. And the reality is is that you know, in a few years, yeah, what do you want to be? Where do you want to be? Do you want to be a CTO of a startup? Do you want to be working for a really big company. Do you want to be contributing and speaking at conferences? I mean, you know, sit down and just just kind of figure that out, right. Do you want to be a team
lead? Do you want to be kind of a level up from a team lead a mid level manager. Maybe you figure out that your passion is for project management, but you want to write some code. I mean, all of this stuff kind of plays, right, And so by knowing that, then you can pick your mentors. Right. Then you can turn around and say, okay, that person, you know, that developer is doing what
I want to do. Right, So if you want to make videos like what Dave does, right, get to no date, right, and then go copy him and you know, figure out what he's doing and figure out how he does it and talk to him and email him and you know, get get to know him and things like that. Right. That that's where that magic is going to happen. But I'll say, thinking I'm about to have a fourth child, I don't have time. I have no time anymore, right, Yeah, but you know I am always on Slack and stuff
to help people out. Yeah, But the thing is is as far as
Slack goes or things like that. I mean, ultimately, you know, I could reach out to you and say, Okay, you know I want to do kind of the drifting Rubie, or if somebody reached out to me, right, hey, I want to do a podcast, and I can give you enough advice to get you rolling for a few weeks, right, And so I may not hold your hand for the whole process, but I can say, look, you need this, you need this, you need this, And then maybe you come back and you're like, Okay, you
said I need album artwork, but I don't have a lot of budget for that, So how do I do that? And then maybe I tell you to go use fiber right, use fiber Here's here's the you know, here's what I tell people when I want artwork done on fiber right, And I can kind of hand you something that takes me about two minutes to look up, and you know that that's kind of the situation, right, And so
it doesn't have to be this long drawn out thing. Or maybe I just I do let you know, hey, look, you know I'm trying to launch these other things. I'm in the middle of this stuff. I'll answer anything that I can answer in less than a couple of minutes. But don't be offended if I tell you, hey, that's a ten minute answer and I don't have it, right, or an hour long answer and I don't have it and and you know, so then you can set expectations or things
like that. Also, the other thing I've seen with a lot of folks is don't be shocked if they don't get back to you because they are busy, right, So yeah, don't figure yeah, because there's somebody else too that might be able to help you with that person it's busy or something. Yeah, so yeah, that's definitely something. But you know, pick your mentor for where they can get you, right. So, Okay, I want to be here in three years, So the next logical step is either
this thing or that thing. Okay, I can find I can find somebody that I can associate with that can help me that with that and be deliberate about it. Yeah, I definitely that's a really good point because I tend to just operate from the assumption that people have goals, right, But but yeah, you do have to find your goal first, then all the rest of this stuff can follow. Yep. So yeah, I think we've been going for about an hour. Is there anything else you want you guys wanted
to put in. I mean, I have tons more stuff that I'm pulling together for this, but I don't think we have time to cover it here. No, I do have a book that I planned to recommend too, which was useful for me, right, So I've totally recommended on the show before. I recommend it again, but never split the difference negotiating like your life depends upon it. There's tons of awesome books out there, right that
can give you that can help you like level up like various aspects. But for me, like, one of the things that I struggled with is, you know, yes, I've never really struggled with like the ability to win an argument right, which I don't think is an uncommon struggle. The issue is I wanted to win an argument. I didn't necessarily want to win an argument. What I wanted to do was I wanted to come to the right answer, and I didn't want to piss off my co workers right or mess
with our relationships right. And so a lot of that is about, well, how do I negotiate right, because that's really what you're doing a lot of the times is we're negotiating what we think what trade offs we think are the most important. So for me, that was a particular thing that I needed to learn, and this book happened to hit the spot or whatever.
But you know, there's tons of other books out there. If you can figure out what aspect it is that you're struggling with, right, you can address it if you I'm sure there's a book for that thing, basically is my point. YEP, I agree. I really like Audible as well. You'll find links to Audible on dev chat dot tv. That's an affiliate link, so I get a kick back if you use it. But audio books, especially when I'm like going for a run or something, it's such a
great way to go. All right, well let's go ahead do some picks, John, Do you want to start us with picks? Yeah? I mean you do already know my first two, so never split the difference. Like I said, I'll put it. I'll put the Amazon link just because you don't have to buy it from Amazon. But but yeah, like I said, it's a good book. It helps with like negotiating thing negotiating type tactics, which comes up way more in life than you really think it does
right, Especially as developers. One of the things that you're doing that requires negotiation all the time is when you're trying to decide between you know, maybe two gems or something like that. Right you're having an argument about architecture.
You're negotiating with your developer, your fellow developer there, right And depending on what your goal is, whether you want to win the argument if that's the most important to you, or whether you want to walk away with both parties being happy, there's there's probably a tack thick in this book for you. So it was helpful for me and it just it changed how I thought about
negotiations in general. I would also say that, you know, if you're a freelancer too, that's actually why I got into this book originally before discovering that I had applications to other aspects of my life. So it's also useful there. So that's pick number one. Second one is the resume guide that I mentioned earlier. It was fantastically awesome, so definitely if you want to brush up on your resume, go check it out. And then lastly, so I haven't had Scotch Pick in a while, but I recently got a
hold of Nika Yuichi. So if you're somewhat familiar with Japanese whiskey, you may be aware that, like, if you don't live in Washington State, you basically can't get Japanese whiskey in the US. It's not exactly that bad, but it's just hard and Nika in particular has kind of been out of stuff for a while. I'm probably butchering the name, so you know, if you guys have suggestions, let me know. But yeah, anyway,
I picked it up. It is there's a reason why it's out. It's not the best whiskey I've ever had in my entire life by any means, but it's different. It's very unique. It is, like anyway, it's a lot like other Japanese whiskey's flowery, it's got some citrus stuff in it. But it's very unique from what you're getting from Scotland. It's obviously very nique from American whiskeys. Cool, those are my picks. I was going to say, I don't think Japanese are really too well known for whiskey.
They that is a new ish thing. It's a couple of decades, a couple of decades now, I think but yeah, ever since, I want to say it was five to ten years ago that they basically landed like best whiskey in the world over Scotch, right, and then all of a sudden everybody wanted it, So it's been crazy for the past five years. Yeah, among people that drink whiskey, I guess I assume. Yeah, cool,
Dave, Do you have some picks? Yeah? Sure, So, in the spirit of working with others, mentoring and all that could stuff, my first pick is going to be the Ruby on Rail slack channel. It is a group of over fourteen thousand developers, so Ruby developers, and it's
one of the most friendly Ruby communities that I've seen. So I'm like going to Reddit for Ruby stuff, you know, which I think Reddit will just crap all over you, so you know, I really don't care for Reddit, but whatever, but this community is very well mannered and if you have issues, everyone there is always really wanting to help and help guide you along. So I'll put a link to that. And the second pick is something
that recently discovered it at home depot and it is track lighting. So up above behind my desk, I have some track lighting that installed that put the Phillips who bulbs in And I had no idea that track lighting worked the way it did. You essentially have a rail that you just install and it carries the conduit, so it has conduit in it that you can then just twist and snap in compatible light bulbs or the light fixtures and then screw in your
light bulb. Coolest thing ever. So I had no idea they work like that. I thought I was going to have to do a whole love get very specific things, and it was just a one evening wanted to do it. Went to home depot, grab the stuff, did it. It was a very enjoyable experience. But you know, for those who don't know any kind of electrical stuff, a conduit is basically carrying the electricity. So if you're not careful and you stick your hands in there while that thing is hot,
then you will shock the crap out of yourself. So just wear gloves higher professional. This is not a diiy advice, but if you're comfortable with electricity, then go for it. Awesome, very cool. I'm going to throw in a few picks on my own, so I mentioned. One of them is a three hundred and sixty degree leader that's by John C. Maxwell. He has a whole bunch of leadership books and I've read like two or three of them and they are all excellent, the ones that I've read.
So I love that book. And then Dave actually started talking about and then we I think we kind of derailed onto something else. But there's another book out there called The Hero's Journey, and trying to remember who the author is on that, I'm going to open up Audible and have a look while we're talking. But it's basically kind of the three act structure that you're used to in movies, and it basically walks you through that. And yeah, people
are very familiar with that. In fact, I have a few people in my life who understand it to the degree that they like spoil every movie that you watch with them. But yeah, it's okay. It's The Hero with a Thousand Faces by Joseph Campbell, and yeah, I mean it basically just
breaks it down. And this is like the three act flavor that you get out of like the Divine Comedy. I mean, it's been around forever, all the way up to our current you know movies and things like that, and yeah, you know, if you kind of look at yourself as the unknown person that gets pulled out of the shire or you know whatever. Right, you definitely get some idea of this is a journey that we all understand
well. And yeah, you kind of have to go walk down the road or down the trail before you wind up getting all the way to the mountain where the dragon is hoarding his gold. So I'm just going to throw that out there as well. But yeah, I've really really enjoyed that as well,
just kind of getting an idea of how people work through that. Another book that I read recently that I've really liked is Story Brand by Donald Miller, and it's kind of got a lot of the same elements, except it's much more focused around how you help people perceive you or your business that in his case, because he's talking about business and branding. But yeah, I
really really enjoyed that one as well. So if uh, oh, what I do I bump something on my phone because I'm holding it while I'm talking, because I look stuff up on audible, But yeah, so he walks you through how you want to approach it, how you want to set up your website and things like that, and so if you're kind of on the end of Okay, I want to put together some content or I want to
build my reputation one way or the other. It's a terrific way to kind of figure out how to frame what you've done and who you are so that people can connect with that, if that makes sense. So anyway, those are my picks, and yeah, we'll wrap up here. Thanks guys. This has been a really, really great discussion. Hey didn't you say he had a sneak peek or something? Oh, yes, I did. So I am working on and I have a few weeks to put this together,
but I plan on releasing around Christmas. I'm releasing so to back up, I did a podcast growth summit, and by did, I mean next week it's going live. Incidentally, it starts on my birthday, so go figure. But yeah, I wound up talking to a guy named Jamie Atkinson and he does a bunch of podcast coaching and stuff like that, and he introduced
me to the idea of a pop up podcast. And so essentially what it is is you go to the web page you put in your email address, and I will send you a private link to a podcast that's exclusive to people who put in their email addresses, and I am going to it's going to be a five part series. The episodes are probably going to be forty five minutes to an hour, and I'm just going to talk through the different pieces of being a top five percent developer and what you could do to make that
journey. So, if you're kind of stuck, you're not happy with your job for whatever reason, you don't feel like you're growing, you're not sure how to get to the end of the road that you want to be on, if you're just kind of lost as far as what to do, what to do in your career next, or maybe you feel like you've gotten to
the top of your career. Right, So you are that senior developer that the people kind of already go to at your job, and you're looking at, Okay, well, how do I go from here to the level of people that are speaking at rails comp for ruby kov, who are presenting on a regular basis on the internet, maybe doing a podcast. That's what this is going to be. So if you're at the senior level, some of this stuff is going to be stuff you're probably already doing. But I really
do intend to hit the content piece of it. Rather hard and talk about how to kind of get from the five percent to the one percent in the last episode. So if you're looking for that kind of content, Yeah, it's going to be free at least through the end of the year, through the end of twenty twenty, and it'll come out. I think I'm just going to set it up so that you can go sign up and it'll come out on Christmas, so you'll get it on Christmas, you'll get the episodes,
and yeah, that's what I'm putting together. So that's the sneak peak. I guess the other sneak peak is I'm also working on a podcast called the dev rev where I talk about this for ten to fifteen minutes every day or five days a week and just hit one aspect like one and it's not like this, oh, here's the idea of what you can do. No, it's going to be hey it, go do this. It's going to be an actionable called action that something that you can do relatively quickly to get
you a little bit further down that road. So I mean, for a week, I might do something like, okay, you need to launch your podcast. Here's day one, and here's how you do it in five to ten minutes. Here's day two, right, and so it all builds on each other. Some of it's just going to be stuff where it's like, hey, go figure out what your next project is in this area, right, and then we just give you an actionable Okay, go set up get the gethub repository, go set up to read me, go do this right.
Or on leadership stuff, it's you know, go talk to the people that work under you and get their feedback on how you can do better, and here's here's one actionable thing that you can do. That's that's what I want to do, is I want to give people a homework that they can
go do that they can go level up on every day. And I fully expect a lot of this stuff to be cumulative in the sense that as you do a lot of this stuff, not all of it's going to relate to each other, but eventually it'll all play into leading you into that place where you're getting to be that top five percent developer. So there you go. Two sneak previews. Cool, and then of course there's going to be courses
and stuff on the other end of it. But for right now, I just want to get that out there because so many people are struggling with this, and for heaven's sake, let's get you there. So yeah, that's it, that's what I'm working on. All right, Well, let's go ahead and wrap this up. And yeah, thanks again guys for all of your input, because yeah, it help clarify some stuff for me too. Yeah, max out everything
