It’s career introspection time! I just turned 43 years-old but no, this isn’t a mid-life crisis. I think I will just talk out loud for a bit. Warning: there is no content in this post that is particularly technical nor will you find any Latin or Greek. There may be some rambling.
I have been a programmer/software developer by trade since 2003. It was a career that I didn’t go to school for and didn’t ever conceive of enjoying until I tried it (and I have enjoyed it immensely). Though I have worked very hard, I am thankful and recognize that I have been truly blessed to make it to where I am now. I recognize the blessing of God in this and am hugely thankful for the successes and all the friends I have met along the way. I am extremely grateful for all of them. I’m just a regular dude and could not have done any of this alone.
When I told my campus director that I was going to leave The Iron Yard, I didn’t know where I was going to land or what I was going to do. That was a very different kind of job for me. I did a ton of programming at TIY but it was always simple stuff to teach beginning concepts to beginning developers. Though I loved teaching, I missed owning a system and actually contributing to something. And I was exhausted. It was time to move on, though I wasn’t clear on what I would do when it was over.
From 2003 to 2016 my career path was fairly straightforward (if titles are indicative): Associate developer to developer to senior developer to team lead to manager (oops) and then to senior architect. Next I zagged and became a teacher but then I zigged back and got on the old path, this time as a “principal engineer”.
The thought that I had no career goals entered my head a few months ago and it has stuck. I was actually forced to say that out loud at the last NDDG meeting, which was a little strange for me. I have personal goals and family goals but in terms of career, for the most part I have just been working hard and enjoying myself. A career in software development is actually a pretty sweet one (the pay is great, you are always inside in air-conditioned spaces, people think you are smarter than you actually are, and you get to make stuff) and I could just keep on doing my developer thing. But things change, I change, and I have to revisit things to make sure I am going down the best path for me. I still don’t know what I want to do when I grow up but for now, when I think about work, these are the things I value: flexibility to be what I need to be outside of work, people building, working with good people, and getting to make stuff.
We homeschool our kids. Up to this point, that responsibility has mostly fallen to my wife. However, I’ve started getting more involved and plan to increase that. Whatever I do career-wise must optimize for this. This takes time and energy.
I’m also a perpetual student. I have study goals that aren’t related to technology at all. Right now I’m trying to give myself an education is classical literature, history, and language. That takes time and energy.
Time and energy has a lot to do with time spent working and commuting. For example, I probably worked 60-80 hour weeks pretty consistently when I was at The Iron Yard. It was an incredibly valuable experience but it was unhealthy long term. It killed my study life and I had to tell my kids way too often that I was busy because I needed to work on my lessons for the next day.
But it’s not just raw work hours. Some environments negatively affect your mental well-being and keep you from being your best outside of work. I have spent many nights obsessed with work problems and unable to sleep. I’ve often been upset with work issues and have been too cranky when I come home. Ever have problems just letting things go? I do. This can be unhealthy.
So here’s the deal: my family is more important than my job. My personal goals are more important than my job. I am the “bread winner” of my family so yeah, making enough money to support them is obviously a requirement. Having a good job is hugely important to me (see the values below) but I am not my job title.
In summary, I need a place that allows me to have the time to be with my family, to do my own thing, and that’s functional enough to not drain my energy and allows me to focus when I’m with them.
Being a People Builder
Building software is an incredibly enjoyable part of my life but ultimately I am more of a people builder. This is why I have been involved in technical meetups/user groups for years. This is why I enjoy mentoring developers. This is why I loved teaching at The Iron Yard. This is why I enjoy teaching in my church every Sunday morning. This is why I want to be involved more with the little humans I have at home. This is why I have wanted to be a teacher since college. This is core to my being.
Unfortunately, I don’t tend to work for companies that are in the business of developing people. I tend to think that most software companies’ idea of decent mentorship is having a manager spend a little time goal-setting with his subordinates once a year, or twice if there are mid-year reviews. Maybe it would be good to do a few lunch-and-learns as well.
This is not satisfying to me.
The Iron Yard was really great for me in this regard. That was real teaching/mentoring and I loved it. Sure, the way the company was organized made it function as a burned-out teacher factory but it was still a positive and life-changing career detour. I have learned a ton about teaching and learning over the last two and a half years and have much more to learn. But to do that I need the right environment to practice. Most software development shops won’t understand that (it’s not their primary business). As you can probably see, this creates a problem for me.
Working with Good People
It’s super important to work with people you like and respect. I think we all know this to be true. But I’ve noticed more than once that it’s helpful to make a few distinctions.
First, it’s very helpful to work with people that you like on a personal level. If you think most people around you is a jerkface, then you should probably leave (though if this is the case, there is a chance that the problem is actually you).
Second, it’s very helpful to work with people that you respect on a professional level. Often the personal bleeds into the professional (that’s natural), so professional issues can sometimes affect personal relationships, and the reverse. In the world of software development, this means working with people who want to be good developers and who want to do good work. This does not only mean working with mature, senior, experienced developers; I am a people builder and love working with and helping junior developers. This is about attitude and drive, not ability.
Third, there’s a big difference between having issues with a superior versus your peers. Working with/for people whose leadership you respect is hugely important.
I’ve worked on team that hit on all three. It was a pretty awesome experience and that’s where I know that I can be my best. This is something that I value a great deal.
Okay, yes, I’m a people builder. But I like writing code too. I could give it up professionally (at least for a time) if I could check all the other boxes. I could scratch that itch at home, at least to a certain degree. But I would rather not. I love making stuff! It is a great way to spend your day.
Why I Am At A Loss
So I am a person who wants to work more with his kids, wants to teach/mentor, wants to work with awesome people, and wants to code. I guess that about sums it up.
But with all that being said, I think I can now succinctly state my problem: I am looking for a flexible career path that involves real teaching/mentoring and software development when most companies won’t know what good teaching or mentoring would even look like. Our industry has managers but what I want is not what they are generally looking for. Our industry has architects/leads/principal engineers but that’s not what they are looking for to fill that role.
I don’t know the best path there. I am not sure where there is. I don’t know what to call the thing that I am looking for. And since I don’t know where I’m going, I certainly don’t know how to get there.
In the meantime, I will choose as best as I can. I will try to be that engaged homeschooling dad who gets to do as much teaching and coding at work as he can. I’m not sad. I’m not worried. I am definitely not complaining. I am genuinely thankful for my career and the last fifteen years. Plain old software development jobs are actually great. I guess I just don’t know how to fit all of me into a career. “Where do you see yourself in five years?” I have no idea.
Technology choice would have been one of the top things on my list of priorities ten years ago. It isn’t these days. Sure, if someone came to me and offered me a sweet deal writing Crystal Reports...hard pass. But of course, I do have preferences. I’d love to do iOS development again. I’d love to get paid to do Python/Django work. I would prefer to do something other than .NET just because I’ve been doing it for so long and like variety. But this isn’t a huge deal for me.
And I prefer to work on systems of things instead of just single things. I don’t want to just be a front-end dev. I don’t want to just be a back-end dev. I don’t want to just be an iOS dev. I like to think in terms of architectures, patterns, and the big picture.
Thank you for making it through all my self-reflections. If you happen to be a multi-millionaire who wants to part with his/her cash, please fund me to write materials and software for learning ancient Greek and history, as well as to teach part-time at a school. That would allow me to teach people, stay a technologist, and pursue my studies, so it would be a pretty sweet combo for me. :)