Lessons From A High Growth Startup Dropout

I quit.  After about three years in a high growth tech startup I have decided to move on.  In that timespan I saw the company grow from about 30 employees to almost 200.  While I know this isn’t the fastest growing startup ever, it definitely qualifies as ‘high growth’ in my book.

There are some lessons learned that I would like to impart on other software leaders who are entering this type of environment.  While I had worked in many startups before, I found very different challenges in high growth vs. other operating modes.

Continue reading “Lessons From A High Growth Startup Dropout”

How to stay technical as a software manager

As a manager, it’s very easy to quickly lose your technical edge.  Most of your day will get filled with meetings, planning sessions, strategy sessions, tactical status updates, 1 on 1’s, etc.  On top of a day filled with meetings you will need to figure out how to execute various initiatives, and spend nights catching up on email.

Given the above time and mindshare constraints, how can anyone expect you to have time to keep up with technical skills?

The simple answer is, “it doesn’t matter”, you need to figure out a way to do it regardless!

Continue reading “How to stay technical as a software manager”

10 Reasons to Stay Away From Management

 

In my previous article, Top 5 Reasons to Choose Managing Over Coding, I laid out my top reasons why I choose to be a manager rather than software engineer.  However, the management role may not be the best option for everyone.  In fact, oftentimes I wonder if I even made the right choice myself!  In this article I’m going to lay out the counter-argument of why you should continue coding and stay away from management altogether.

Here are my top 10 reasons why I think you may want to stay on the technical path: Continue reading “10 Reasons to Stay Away From Management”

How to Advance Your Career By Becoming an ‘Idea Machine’

I love James Altucher.  In case you haven’t heard of him, he’s an investor, writer, and entrepreneur.  He has a popular blog, podcast, and a bunch of books.  You can find all his material here:  www.jamesaltucher.com

[Photo: James Altucher, source: www.jamesaltucher.com]

One of James’ most popular books, and my personal favorite, is called “Choose Yourself:  Be Happy, Make Millions, Live the Dream”.  In this book he talks about how the nature of employment is changing, and how we all need to become entrepreneurs.  There are several principles that he advocates that I’ve started to utilize at work and have noticed a huge change.  All software managers, really anyone in a leadership position, can benefit from the advice in this book and put it to immediate use.  I highly recommend you check the book out for yourself.  I also recommend you check out his podcast where he interviews various celebrities (from rappers to venture capitalists to authors).

Continue reading “How to Advance Your Career By Becoming an ‘Idea Machine’”

Top 5 Reasons to Choose Managing Over Coding

 

Many senior developers have faced the classic software career dilemma.  Do I go into management or continue down the technical path?   Some companies offer a ‘dual track’ where you get to choose one path, but provide compensation advancement in both.  Other companies (oftentimes startups) offer a blend, where the managers remain ‘hands on’ and continue to code.

Continue reading “Top 5 Reasons to Choose Managing Over Coding”

How I converted my entire company over to Confluence, and lived happily ever after

 

Note:  I am not endorsing or advertising any specific tool in this article.  It’s merely meant to share my tips from rolling out a new tool across a company.

I couldn’t believe it.

On my first day on the job I asked “so, where’s the wiki?”  The answer was this horribly outdated wiki system which shall remain unnamed.  The most recent article in it was a couple months old.

After just coming from a company that was tool happy (see this article for just a small subset of monitoring tools alone), I was shocked that this promising startup was so clueless when it came to their intranet and communication systems.  I was used to using tools from Atlassian like Confluence, Jira, and HipChat.

Continue reading “How I converted my entire company over to Confluence, and lived happily ever after”

Top 5 New Years Resolution’s for Software Managers

Funny-new-year-resolution-cartoon-500x318One thing I’ve noticed about being a software manager is that it’s a practice, not just a skill that is learned, like a new language or framework.  One of the challenges with the position is that you rarely receive any feedback on your performance.  I’ve reported to various CTO, CEO, and VP of Engineering roles over the years and have definitely noticed the lack of feedback.  It’s up to you to be self aware, recognize your blindspots and weak areas, and constantly work to improve them.  This requires a good deal of emotional intelligence.

The new year provides a chance for reflection, to think about how we can improve as people.  I’m always trying to think of how I can deliver more value in the office, what more can I do to help the team succeed?  I’ve boiled it down to my top 5 areas where I need to improve on in 2016.  Feel free to share yours in the comment section!

1. Be a Better Listener

This one sounds cliche, but being a good listener is probably the most important skill a good manager can have.  I always have to remind myself to be in the present moment when listening to a coworker.  Occasionally my mind will jump into problem solving mode, and I’ll start to zone out of the conversation.  Or sometimes I’ll just get bored with what I’m hearing and start thinking about something more interesting.

This year I want to get better at listening.  What is the other person really trying to say to me?  I’ll try to remember to repeat back what I’m hearing, to make sure the other person is being understood, and to force myself to stay engaged.  Also, I’ll try to see if there is any way I can help with whatever the other person’s problems are.

2. Give more feedback

I just got a new boss and noticed a technique he uses that has made a positive impression on me and I plan on using it more in the coming year.  He gives LOTS of positive feedback, I mean a ton.  He’ll quickly reply to an email with a quick ‘Thank You!’ or ‘Nice job!’.  It only takes him 2 seconds, but I’ve noticed myself now craving to get that positive response.  After receiving these for a couple weeks it finally hit me, I’m not giving my own team enough positive feedback!

As a manager you tend to see everything that is wrong and want to fix it.  There is usually so much bad stuff happening, it’s easy to forget to acknowledge all the good things that are happening as well!  I’ve already started to make a conscious effort to provide the team with more positive feedback, via email, 1×1, or in a group setting.  I’ve noticed that I need to make a conscious effort to do this.

In addition to all the attaboy’s, it’s important to give corrective feedback as well.  Also, it’s good to give this feedback immediately, don’t wait for your next 1×1.   I think it’s fine to give this feedback via email/chat as well as in person.  If your team knows they can get both good and bad feedback from their manager, they will trust you, and will feel more at ease knowing where they stand.

3. Clarify Team Goals

People want to know what the group goals are.  What are the near and long term milestones?  Luckily I work at a company where the founders clearly articulate the vision of the company, but how is my group helping to achieve that company vision?

Also, I will work to ensure everyone on my team knows what their priorities are.  I will have them tell me what their priorities are, so I can hear it coming out of their own mouths.  As they knock items off their list, I’ll work to give them feedback (see #2) on how they are doing.




4. Don’t get stressed

I tend to sweat the little things.  I tend to over analyze and dwell on what my boss or a peer said in a meeting.  I tend to get over competitive with my peers.

As a manager, you have visibility into so many things that are going wrong, it can be very easy to get stressed out.  This year I’ll work to live in the present moment and not waste time thinking about the past.  When things get overwhelming, I’ll work to prioritize, communicate them out, then execute.

5. Improve my technical skills

It’s so easy to get wrapped up in the day to day, meetings, email, etc.  Before you know it, months or years have gone by and you haven’t written any code or learned any new technical skills.

I try to mitigate this by first taking on jobs that are in new technical areas.  This forces me to learn some new technologies so I can at least be conversant.  However, once I have just enough knowledge, I tend to put it on the backburner and just focus on getting work done.

This year I’m going to work to be more hands on.  I’ll try to tackle a low priority coding project at work, something that has been bothering the team, but is off the critical path.

 

Honorable mention, #6, work on this blog some more.  🙂  These are my top 5 areas that I need to work on, what are yours?  Feel free to shoot me an email with feedback and also please join the mailing list to receive updates.

 

Promote Yourself

PromoteLike most, I first started in the software industry as an engineer.  I was taught growing up that hard work in the end will be rewarded.  My strong work ethic as an engineer resulted in me quickly being promoted up from individual contributor to team lead, manager, and then eventually director.

Then I noticed a big change.

When you are an individual contributor, you are often recognized by your peers and management for your contributions.  You are asked to complete a specific task or project, and the results are usually demonstrable and easily recognizable.

As you move up into management everything changes.

When you move into management, there are fewer people above you to recognize your contributions.  Oftentimes, your manager doesn’t understand the technical contributions you are making to the team, because they are non-technical.

Also, the role of a manager is much fuzzier.  How can you quantify if you were successful at motivating or mentoring your team?

When I first moved into a management position, I thought it was most important to focus on managing down.  My primary responsibility is to get my team to execute, right?

Well, that is only PART of the role.  The other part of the manager’s job is to clearly communicate up (your boss) and across (your peers) your personal accomplishments as well as those of your team.

You have to become a salesman!  This is not easy to do, especially for those of us introverted engineers.

You need to get out of your comfort zone!  Instead of spending your whole day with the team, force yourself to walk around the office and meet one new person a week.  Tell them what you do and what your team is working on.  What your challenges are.  See if there is any way you can help these people that you run into.  Are any of the projects or initiatives that your team is involved in relevant to this person?

When your team hits a big milestone, be sure to communicate it out to the organization.  Are the other dev teams aware?  How about the rest of the product group?  Promote your team to the organization.  Be proud of their accomplishments.  This is not slimy or devious.  This is basic business communication.

You need to do this, there is no choice.  If you don’t do it, no one else will.  The reputation of your team will suffer for it.  Your reputation as a leader will suffer.

And you can’t just promote your team, you need to promote yourself as well.  No one else will be an advocate for you, except you!

Some people do the above naturally.  I’d bet that most engineering managers don’t.  I know I don’t.  I’m still not good at doing the above.  However, I’ve seen other managers excel at this and reap the benefits.

Check out a book on this entire topic here: