07 Apr 2018
A few years ago if you asked me if I would ever go into management I would have probably laughed in your face. In fact, I can clearly recall a conversation I had with one of my former managers on the topic.
Daniel: “You have leadership qualities and you’re strong technically. Do you have an idea of which path you’d like to take? Management or Technical?”
Me: “Daniel, I honestly don’t know how you put up with people’s bull sh*t all day long.”
Daniel: “So… technical.”
Man how times change!
A few years ago I started having what I’d like to call the “career mid-life crisis”. This started while I was a Lead Software Developer at USAA. I was currently leading the Innovation development department, RevDev, and transitioning back to the Application Infrastructure area to lead the OAuth 2.0 development and migration. I had plateaued in the technical track with the only advancement opportunity being architect. The vision of the Chief Technical Office (CTO) and the expectations of its architects was not something I was aligned with. I was willing to give it a shot and “make it my own” but the opportunity didn’t present itself…. What, I wondered, would be my next challenge?
This lasted for about 2–3 years before I finally took action and left USAA. I was 34 at the time, had an amazing offer in front of me with the potential for career advancement, and a chance to learn a different business model. If I didn’t do it then, I was never going to do it. So I left.
Despite my research and connections it didn’t take long for me to realize that Rackspace and I were not copasetic (maybe I’ll write about that) but I was committed to giving them my all for at least a year minimum.
Around the 13 month mark my manager left to find greener pastures and I was offered her position. Leadership is something I’ve always been comfortable with and good at but I’ve generally preferred the technical arena over the political one. Still looking for that “next challenge” I took the position. Surprisingly it was a good transition to management with very little hiccups. I had a great repore with my team and established a strong network within the department which helped. All that said, I was still putting out feelers and looking for other forms of employment.
Thank the Lord for good friends! I had been in conversation with a few USAA buddies about a possible comeback and what that might look like. After a lot of discussion with my boss (wife) and prayer I accepted the position as an Engineering Manager in the Auto Experience department. It’s been a great few months, not without it’s challenges and rewards, but overall it feels good to be back. The struggle of not doing the “fun technical” things as much as I’d like to is real but I do get my hands into code every now and then. Thankfully I’m surrounded by great friends and mentors that have been down this road before. Time will tell if this is the right path for me or not but until then, full steam ahead!
21 Feb 2017
One question I inevitably get no matter what team I’m on is “What is your job as a tech lead?”
My default answer is, “I burp the manager” which is usually followed by either a smile or a puzzled look. When one of my junior developers recently
asked me this it got me thinking, how would I describe my job? Well, I figured why not break it down.
What is a tech lead?
The answer varies depending on who you ask but I like to think that a tech lead can be loosely defined as
Tech Lead = Leader + Developer + Architect
As a leader you must… lead your team. Leading a team is a very broad statement and can be difficult to pin down what exactly that means but that’s
leadership. As a leader you manage conflict, build relationships, work with and guide the business, and keep the train running. And that’s just the
tip of the iceberg.
As a developer you need to be hands on, aware of best practices, set the technical approaches, and help answer questions. It’s your job to help build
the product/project and tell the stupid computer what it needs to do. There’s also the less glamorous side of coding like documentation, dependency
management, and CICD pipelines.
As an architect you have to be aware of the big picture and think about non-technical requirements. How does the product/project fit in the long term
journey? What are the integration touch points? How can the product be deployed and maintained? What are the technical, legal, and business risks
involved? Like leadership this is but the tip of the iceberg.
Do you code as a tech lead?
As much as possible! However you need to put the team’s need first. As a tech lead it’s your responsibility to mend relationships with other teams,
prepare upcoming work, and do the “non-technical” stuff that keeps the team running. The challenge is to be up to date with the technical challenges
that your team is facing and keep your skill sharp.
Is it meeting hell?
It ebbs and flows but you must make it a priority to code and be with your team! Some days (weeks?) are nothing but meetings, others are nothing but
hands on keyboard. You need to assess your team and determine how long you can be away and who you can delegate to.
What leadership style is the best?
This is probably the hardest question to answer because it really just depends on you and your team. A strong overbearing leader on a team that has
been beaten down will destroy what moral the team has. In contrast, a happy go lucky leader will quickly run into cowboy and sprawl problems and lose
any perceived influence if not careful. TLDR, it’s a lot like parenting; give your team just enough rope to mature and make the right decisions but
be firm and put the guardrails back up when needed.
Do you tailor your style to the person you’re working with?
Absolutely yes. As a tech lead you need to know how to reach your team. Some people just need you to coach them and be supportive. Others need a lot
of hand holding and clear/concise direction.
Do you have to be the “best” developer to be a tech lead?
No. There’s always someone better than you, deal with it. You do need to know when things are being over engineered and when good enough is all you need.
What do you mean “burp the manager”?
As a tech lead you play many roles. You’re the voice of reason that talks business of the ledge. You’re the one that stay positive when things are down.
“Burping the manager” is just a sarcastic way to say “it will be ok”.
I’m only scratching the surface of what being a tech lead is like. You wear many hats and it’s not the most glamorous of jobs at times but it can be a
very rewarding position. Be the rock your team needs.
30 Mar 2016
I’ve read the announcement and I’ve seen the announcement on Channel 9 and I still can hardly believe it. Bash running natively on Windows 10?! Wow. Just…wow! I’m still loving the new Microsoft.
08 Nov 2015
I’ve come to the realization that it may be time to see what other options are out there for me in terms of employment. I’ve been at USAA for 8.5 years now (which is crazy when you say it out loud) however, at this point in my career I’m not sure this is where I should stay. The way I see it if I were to stay I have three options;
- Stay where I am
- Go into management
- Go into CTO (Architect).
Stay a Lead - At 34 years I don’t feel that I’ve capped out so staying a lead developer is not something I’m comfortable with. Plus there are some cultural/political issues that need to be resolved.
Management - This is an easy decision for me at this point in my life since I really don’t want to manage people. I have no doubt that I could do it but I don’t feel now’s the time.
Architect - This is the one that makes the most sense. It’s the next step in the "technical track" and where I see myself going if I stay and someone either retires or a slot magically opens up.
Lets take a 10,000 foot view at what USAA Architects do.
- Solve problems - This is the fun part. It’s fun to solve problems, design the solution, and save the day. It’s even more fun when you get to role up your sleeves and actually implement. Its where we get our kicks!
- Set technical direction - OK, not as fun as solving problems or writing code but still fun. You’re setting the direction for the company in your domain which is a lot of responsibilities. You get to do some research, maybe go to a conference or two, and set the stage for the company’s future.
- Go to meetings - So yeah… well, this is part of our trade. You have to explain problems/solutions, meet with the customers and guide them, and those projects teams just sometimes have a ton of questions….
- Find funding and people - This is the part that blows my mind. It’s one thing to go find funds and people to do research or try cool things that may or may not be in the alignment with the business. It’s another thing to have to do all that just to do your job. This is largely in part to some of the cultural and political concerns that I have with just staying a lead but still….
So why the thoughts of employment elsewhere? The TLDR answer is I’m not sure I’d enjoy CTO or staying put.
On paper CTO looks good however when reality eventually sets in its not as glamorous as it sounds. I’ve seen first hand my colleagues and friends who have gone into CTO struggle with their own job satisfaction. Going to meetings and finding funds/people seem to be all that they do. When they do have enough free time to finally do the fun parts of the job they are usually burned out. I have no doubt in my mind that I could do it but I’m not sure I’d enjoy it.
I love USAA, it’s a good company to work with the best benefits I’ve seen hands down. Some of the industry’s best and brightest work there and I never feel like the smartest guy in the room, there’s always something to learn. With all the nice things I can say about the company there are political and cultural issues that need to be addressed; process for process sake and design by committee to name a few. Every company has skeletons in the closet, some just grow more annoying than others.
The next step for me is to start putting feelers out and testing the waters. We’ll see what the good Lord has in store, I just hope that I’m smart enough to listen.
27 Jun 2015
It’s a little hard for me to believe that I’ve been at USAA for eight years this July. Since I started there in 2007 I’ve worked in just about every type of team you can find at such a large organization; maintenance and support, operations, infrastructure, and delivery. Two of those eight years have been on the Revolutionary Development (RevDev) Team where we’ve implemented various disruptive and innovative features for our members. I’d love to say more about the other projects but…yeah…NDA.