DEV Community

Michael Herold
Michael Herold

Posted on

Senior developers: Can you recommend your path?

Five dice arranged to spell T-E-A-C-H.

One of the duties I have at work is to mentor some of the Rails developers on our team. I enjoy this immensely, yet struggle with at the same time. In a previous life, I wanted to be a professor and help people learn computer science and programming. I became jaded with academia, so left it and have been working in the software industry ever since. However, I still have that urge to teach, which is why I enjoy mentoring so much. My struggles with mentoring come from my long background in software development. I have been programming in some form since I was nine years old and have been paid for programming since I was eighteen. As such, I have somewhere between 13-22 years of experience across myriad different computer-related backgrounds. I spent the majority of my waking hours from the age of fourteen to the present building my skillset. Can I really ask more junior developers to do the same? How on Earth do I reconcile that when suggesting ways to improve to my colleagues?

Others ask this too

I've been thinking about this for two years, ever since I started at Flywheel and joined a team with a range of skill level. Prior to that, I worked at small companies where I was the only engineer or where all of the engineers were senior. I long thought this was something that only I struggled with (hah, hubris!) and didn't really know where to look for advice. Then, in the span of a single week1, two Twitter threads popped up discussing this exact issue!

Charity Majors asked herself why she deliberately tells people to focus on things other than work instead of her own path of spending many hours working on computers. Charity struggles with this throughout the thread and wrestles with the impulse to tell people that they need to put the time in to get better. While some part of her feels that way, another part wants to nurture a life outside of work for her colleagues. I empathize with Charity because I have the same internal struggle.

Similarly, Alice Goldfuss shared how she worked herself ragged in overtime just so she felt that she was doing well enough to avoid being fired. This is, obviously, not a good place in which to find yourself. Feeling like you are running on an advancement treadmill just to maintain your current position is an indicator that something failed somewhere in the chain. This, specifically, is what I would like to avoid in my mentoring.

Work-life balance

I fundamentally believe that a work-life balance is important to have. You're more effective in your work when you unplug for a while and do something else. But, to this day, I don't practice this. Through numerous side projects, open source contributions, and endless reading about my craft, I am, in Charity's words, not a "moderate creature." Software design and construction is and has always been what I enjoy doing. I love to figure out how to build something that communicates its purpose and solves a real problem for people. That must be my manifestation of the "maker gene" that you hear people talk about.

But I can't -- and won't -- for my immoderation on those who I mentor. It's unreasonable to pressure others to follow this path. My near-obsession with my craft has not been without cost through my life. To this day, I find myself getting grumpy when I don't spend enough time designing and building. This affects both my wife and my coworkers, albeit in different ways. I can't really recommend this path to anyone, but I also struggle to see another solution.


How can I reconcile my two halves? I know that I wouldn't be where I am in my profession without my immoderation. I also know that I want to help my colleagues grow in a balanced way. These two sides are the balancing act that I, myself, have to play. Each time I find myself starting to recommend a path that I would enjoy due to my craft being a large part of my identity, I check what I'm going to say. Usually, I find a better way to approach it, but it's difficult work.

Do you struggle with this problem? Have you come up with ways to manage the temptation to disrupt your colleagues' work-life balance in the interest of advancement? If so, please leave a comment and share your story!

The post Senior developers: Can you recommend your path? appeared first on Michael Herold.

  1. This was two months ago and I'm just now writing this. Crack reporter, I am not. ↩︎

Top comments (7)

remotesynth profile image
Brian Rinaldi • Edited

You can only share what you know and the experiences you have had. Just because you are and have been obsessive about learning technologies, doesn't mean you can't be a good mentor. Actually, the fact that you are imperfect helps make you a perfect mentor. Being a mentor means sharing your experience and knowledge but there is no obligation on the mentee to follow your path directly.

There are many ways to succeed in this industry - one of them is by obsessively learning and working as you and the others you mention do. You clearly recognize the trade offs this approach requires - so that is additional knowledge that you can share. There are other paths to success and you may be able to point to them even if you don't model them. Either way, it is up to the mentee to take what you share and create their own path - perhaps they are as obsessive about programming as you are or perhaps they aren't and succeed in other ways or perhaps they are fine not climbing the corporate ladder and see programming as just what pays the bills...who knows? It's their path and they are free to choose it.

The point is: share what you know as your experience. You are not telling them what they should do, just sharing what you have done and your reflections on that experience. Then step back and let them make their choices.

codevault profile image
Sergiu Mureşan

I am always improving as I work while also having time outside work, it might not be easy but it is possible. Therefore I expect my mentees to do the same.

You either fully commit to your job or don't commit at all (in the working hours). Work is also part of your life.

jtn7 profile image
Josiah Nieves

I have begun my development career as of late and have yet to acquire any mentoring in this field. All I've done and learned has been a result of reading, reading, and reading some more. I consider my obsession with my craft too healthy and wish to go more than the extra mile. Where would one find a repository of mentors?

michaelherold profile image
Michael Herold

It looks like has some new functionality that allows you to say you'd like a mentor. I haven't used it yet, but it sounds neat.

Also, your local meetups might help you meet people who would be willing to mentor you. Have you tried attending meetups?

Lastly, I know there was a push on Twitter a while ago for people to post that they are willing to accept mentees. I can't remember when that was or what the hashtag was, but you could probably find it!

Good luck!

kspeakman profile image
Kasey Speakman • Edited

No, I can't really recommend my path and I do not try to propagate it to mentees. I basically had no choice because there was no one around to teach me. So I had to learn most tech-related things by putting in the extra time to learn the hard way. Sometimes it was a fun exploration, but many times it was banging the head against the wall b/c it was not working and blocking users from work. I would have much preferred someone to apprentice me and teach me good practices to skip a lot of wasted effort. So that's what I try to do with co-workers when they ask. It is entirely possible that I just have a negative survivor bias.

By now I already have established an obsessive pattern of getting super interested in something, then researching it to death and turning it over in my mind endlessly. So it's too late for me, but I hope to save others who desire balance. ;) However, really driven people are going to put in extra time regardless. It is just in their nature.

gruberb profile image
Bastian Gruber

If you really mentor, then you don't destroy, you also don't tell them how you did it. As a mentor you should be knowledgeable enough and social-skilled enough to figure out who is sitting in front of you. Try to read and understand them. And then, have the experience to figure out how to help them reaching THEIR next step.

So if you raise a child and the child is getting interested in music, you would help it to get some classes, maybe even a cheap guitar right? All with the knowledge it can fade away and that's totally fine.

All you do is guide, make suggestions and "force" them to step a bit out of their comfort zone and give them safety to do so. Encourage them to go their path.

Who says the person you mentor can't be "better" at what you do in much less time? So suggestion over-hours just means you expect they are as slow (or fast) as you in reaching your goals.

Generally, my approach is always to spark an interest. Not in programming but in figuring out how things work. Figuring out how things are connected. Finance, economy, biology etc. down to the programming language you use.

So get people interested in what they could build and do with the knowledge they are about to learn and get better at. Show them how they are connected. EXPECT that they figure out that most time spend in front of a computer or on an open source project might be wasted if they either a) are not as into it or b) figure out the grand scheme of life.

In the end, we forgot what good mentoring looks like, since it came mostly (at least in Europe) from senior people about the age of 60 or older. Those people looked back and figured out that human interaction and love are more valuable than a side project. But they see you struggle and try to help you reach the next step.

In my opinion, most "mentors" in the software engineering field are too young and too bound to their experience and think it's great just because of a few followers on GitHub or twitter.

In my opinion, if we talk about mentoring in a software engineering field, that's not mentoring but a senior developer helping a junior with their skills. Mentoring means guidance and empowerment, and this doesn't need to be in the same field as you are in.

epogrebnyak profile image
Evgeny Pogrebnyak

Must be a Rails issue. )