Advancement – It’s All Up To You

Recently I’ve been having a lot of conversations with my friends and coworkers about essentially the same thing: how does one get a better role at their company?

How does a junior become a senior level developer? How does a senior developer make the transition over to lead, principal or architect and beyond? Often, these questions are followed by “I’ve been at my company for a while and I still haven’t been promoted to a new position.”

Aha, we gotten down to the root of the problem.

You Must Initiate

In our industry, unlike many others, progress is not usually a formula based on tenure. We should not expect, or rely on, being promoted into a more senior role because of the amount of time we’ve been with a company. That is not to say that tenure doesn’t play a role in advancement, but it is not usually going to be the main factor in deciding whether you are promoted or not.

adv1Whenever I have these conversations, I like to immediately reset the context of the discussion by telling people that we need to stop relying on others to promote us.

In most cases, the only person that cares about the advancement of your career is you! Many employers claim to care about providing opportunities for advancement but usually it is more of a selling point to potential employees than a true desire to see people grow, advance and do better. In most case, upward movement that is initiated by the employer is motivated by some business need and not your personal growth. It is some strategic move intended to satisfy a business objective that benefits your employer more than it does you.

That is why we should not leave this in our employer’s hands. Unlike other fields, ours is one in which we have the opportunity to affect our advancement and growth in dramatic ways. All we have to do is realize that it is in our power to do so…and take the reins.

Grow Your Skillset

First and foremost, you should make sure that your skillset is up to par.

skil1If you intend to get ahead, and move into a new role, you need to start by increasing your worth to your employer. You will need to demonstrate that you have mastered your current responsibilities and have grown beyond the constraints of your current position. This means making sure that you are comfortable with all of the tool, technologies and processes that are used on your project.

Depending on your goals, this might also require that you stay abreast of industry trends and emerging technologies. If you want to move into an architect position, for example, you’ll need to become an authority on all things technology…not just the technologies and tools that you are currently using.

Grow In Maturity

In order to make the jump from your current role into one with more responsibilities, and potentially one that involves managing other developers or projects, you will need to demonstrate a level of maturity that is commensurate with that type of position.

What does this mean? Well, it turns out that developers are quite emotional people. You would think that we’d be very stoic and level-headed because of type of work that we do. This is just not the case.

mat1I think it has a lot to do with the fact that we are used to being treated as magicians and, to some extent, we let it go to our heads. Employers, friends and family have always told us that we are awesome and, at some point, start to believe the hype. When something happens that we don’t agree with, we tend to be very vocal and respond emotionally.

I’m not suggesting that we should just accept everything that we are told. I’m saying that we should not respond as emotionally to situations…especially if we’re looking to move into a position of authority or leadership. Instead, we should object when appropriate, provided data to back up our objections and, whenever possible, offer solutions or alternatives.

Grow In Leadership

Usually, getting promoted means taking on more of leadership role.

If you intend to move into a new position, with more responsibility, you should take every opportunity you have to demonstrate your leadership abilities. This will prove to your employers that you have the necessary chops to take on the extra responsibilities.

This could mean any number of this. It may be that you put in some extra hours during a time crunch. I could also mean that you start mentoring your teammates. Maybe you start volunteering to lead programming efforts or projects. Whatever the case may be, you should start looking for opportunities to showcase your ability to get things done, help your teammates and coordinate development efforts.

What’s Your Special Sauce?

Every one of us has something that makes us unique…our own “special sauce” that sets us apart from everyone else.

spe1Maybe it your ability to get things done. Maybe you work really well under pressure. You might be the type of person that works well with business folks and can translate business requirements into technical specifications. You should try to find whatever it is that you are good at and make every effort to showcase it.

Be careful not to take it too far and come across as bragging, but take every opportunity you have to exercise this special skill of yours and make sure everyone around you is aware of it. Whatever you can do to set yourself apart from the rest of the team, in a positive, way will help you stand out and increase the likelihood of promotion.

You Are In Charge

If you take anything away from this blog post, it should be the idea that you are in charge of your own career.

You, more than anyone, can affect it. If you want to make a move: do it! Whatever the “it” might be for the particular move you’re trying to make. Make it happen. Remember, you always have more option at your disposal; you can always find another job.

If the company you are with doesn’t look like it’s going to allow you to progress like you want, you can always go somewhere else. The only thing that can keep you from advancing is yourself and, luckily, that is under your control. Just do it!

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Read More


Level Up Your Programming Skills And Connections Through Volunteering

Do you feel stuck in your current job?

Maybe you are working on Line of Business desktop apps but you really want to be doing native iOS or Android work? Perhaps you are working for a large corporation–and have been for years–attending a lot more meetings than you used to, and you keep hearing about the good life at small startups.

I’m going to let you in on a little secret I accidently discovered just a few years into my career. I’ve pivoted multiple times, by choice, and last year landed my dream job as the technical co-founder of a local startup in downtown Austin. So what’s the secret?


That’s it!

Now, don’t click away just yet. Thar be some powerful concepts at work behind the gift I just handed you, matey! Stick with me so we can unpack this box.

First Volunteer Work: Sys Admin

First, let me explain how I figured this out.

Active Directory Users and Computers
About 15 years ago I setup a 25 PC, Windows 2000 network for a women’s crisis center for free. It’s a long story but the point is that at the time I didn’t really understand the value of what I did. I just needed
the experience because I thought my dream job was to be a Windows NT systems admin and I was studying for my MCSE at the time. (I aced the tests btw). I completed that project and landed a paying NT Admin job later that year while feeling good about helping a good cause.

Since that experience I’ve successfully voluteered my time to nonprofits, startups, and friends with small businesses. The project size and scope is really up to you to define just as long as it’s valuable to everyone involved.

Forget About Money (For Now)

First off, too many people I know won’t take this advice because they are stuck and failing at earning “market rates” for their work. Your compensation is going to be real world experience that deserves a prominent spot on your resume.

io1Or maybe they don’t have the time. Heck, it’s midnight, and I didn’t start writing this until after I put the kids to bed. I wanted to help a friend by guest posting and sharing some of my best ideas though. I happen to like writing and sharing knowledge with others. (Side note, guest posting is a great way to volunteer your time.) Look for projects which have a very defined scope that you think you can pull of in the time you used to spend power watching random two-star sitcoms on Netflix.

Trust in the fact that it will pay off in the long run. Good deeds don’t go unnoticed.

Problem Solving IRL

In addition to experience, there is something about listening to a client explain their problem forcing you to come up with the solution. That’s the type of knowledge that won’t appear in a textbook and that’s exactly the type of real world problem-solving ability that future employers are looking for.

Volunteering sends a message about the type of person you are. Explaining the project work you did for a nonprofit is interesting. Knowing that you did it to level up your game says a lot.

References Matter

You are also going to walk away with a solid reference if you are successful. Go check my LinkedIn recommendations that others have written.

I received a glowing comment by Kent Odland for volunteering my time to his young startup last summer after having coffee with him once. It was an interesting startup concept and I wanted to learn a specific skill he needed. He didn’t believe me at first. I think he thought I was trying to steal his IP or email list because he asked me to sign about 5 pages of legal documents saying I would be liable for missing deadlines, etc. I didn’t end up signing anything other than an NDA. I simply had the time and wanted to help him.

Do you think Kent would bend over backwards to get me an interview at his employer if I asked him to? I’m pretty sure he would!

Be Of Service To Others

As engineers we typically think of learning as a solo activity. We go buy a book, read through every search result on google and stack overflow, then maybe we create yet another Todo list project on Github, etc. Trust me, I’ve been there too and I still have to resist the urge to rely solely on this method of learning.

Thread Co-Founders
The Thread founding team

What’s interesting is the mental shift that happens when you are working for someone rather than simply working on something. The former requires accountability and relationship building, while the latter often lacks direction and purpose. I’m willing to bet you will learn more at a faster pace by working for someone or some cause than if you go it alone.

When I say “working for someone” I’m talking in the noblest sense that you are being of service to another person. Which is a very humanizing thing. People inherently care about people they know. Working side-by-side in the trenches is such a powerful mechanism. You simply cannot get to know a person by meeting for coffees alone. Work for them, work with them, in order to get to know them.

“The best way to find yourself is to lose yourself in the service of others.”
– Mahatma Gandhi

Engineering work can be isolating, while career building is a team sport.

Don’t Overthink It

Don’t be tempted to try to identify projects only for people or companies where you believe they could directly help you in some way. If you read about my journey to becoming the technical co-founder of Thread, you might think I had some master plan at work.

The truth is that I didn’t have a plan other than trusting in the process. In hindsight it’s easy to line up all the events that took place and draw a straight line between points A and B. However, that’s not the whole story. I volunteered to help four different organizations last year and three of them didn’t directly lead to my current opportunity. But I do have a stronger network filled with people who would love to help me if I called on them.

Takeaway: Volunteer To Learn Specific Skills

The final lesson I want to leave you with is that my only “plan” was to be of service to others while developing some very specific skills.

In this case, my thesis was that iOS development was in high demand and my enterprise mobile background was already a good foundation for this pivot. I made a ton of connections along the way and many of those relationships will just continue to grow. I never knew where it was going to lead me but I was always confident that I would find something interesting if I kept going.

I hope you consider volunteering time as a valuable career building strategy and a great way to help those around you.

Be hungry and trust in the process my friend.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Read More


9 ways to advance your career with core values

In a previous post we went over learning your core values.  Once you know who you are, which values make up your foundation, and the pros and cons of each of your core values, it is time to put them to good use.  Let’s see how we can use your core values to advance in your career!  I went into great detail for each one of these bullets so feel free to click into a topic that peaks your interest.  Otherwise a summary is provided.

  1. Continuously build and maintain relationships
    The most important part of a successful career (other than knowing your primary job skills) is the ability to build relationships with others.  It is what gets you a job.  It is what keeps your job.  It is what allows you to advance in your career.  And when you need another job, with enough investment in relationships, you will eventually no longer need to look for a job – they will find you. The notion of never burning a bridge is very important to live by.  The higher you go in your career the more key people you meat.  It slowly becomes harder and harder to go anywhere where you haven’t worked with someone at the new company.  Ensure that you reputation with everyone you meet remains intact.
  2. Strive to always be awesome
    Being awesome is something that most people think is just a way of approaching the world.  An attitude.  A state of mind dude!  But in reality being AWE-some for a person doing the job that they are paid a great deal of money for in a normally acceptable manner IS NOT AWESOME.  It is just what is expected of you.  To be awesome you have to go above and beyond.  You have to never drop a ball.  Always be on time.  Ensure proper communication is freely flowing between you, your peers, your managers, and your customers.  In the link I describe different points to measure yourself against.  Every time you fail at doing something deduct a point from an allotted 10 points a day.  Being AWE-some means you keep all 10 points every day.
  3. Lead from the front
    Leading from the front doesn’t mean standing out in front of your team telling them what to do.  Instead, you stand out in front of your team and inspire and persuade them to come together as a team and mobilize towards solving problems.  The expression of you get more with honey than you do with vinegar is an easy way to visual the difference between a commanding “boss” and an inspiring “leader”.  But from time to time leading from the front is exactly that.  Get out there and show your team that you can do it too.  Show them the direction you want to go and how you want to get there.  They will follow.
  4. But be a servant leader
    Sometimes being a leader ISN’T about leading from the front.  There are also many softer skills at play to being a good leader.  Cultivating a trusting relationship with your team is equally important to having the ability to take people in a specific direction.  You need to be aware of your teams needs.  Be willing to listen to them.  And after you hear them, be willing to help them.   Do everything in your power to help every member of your team grow in the right direction.  Persuade your team to do the next thing as though it was them that came up with the idea.  Never command, berate, or belittle.
  5. Complain with solutions not problems
    There is a whole industry of people that just focus on fixing what ever they are involved with.  These folks generally walk in the door and immediately spot all the little areas of inefficiency.  Generally nobody see’s this person as a complainer.  Instead they see this person as a positive benefit to the team.  What is the difference between this person and everyone else on your team that see’s problems?  These people bring a solution or three with their identification of an issue to be resolved.  And, the only way to complain in an upbeat way is with the solution in hand.
  6. Live the company culture every day
    Knowing the core values that the company is building its culture on top of is important.  Write them down.  Actively pursue living the core values out loud for all to see.  Measure your ability to live the core values.  And for the core values you struggle with, make a plan to get better.   The better you are at living the core values on a daily basis the more likely you are to resemble the team members that the company executives will notice.  And if they really value their core values they will make an example out of you.
  7. Don’t take everything seriously
    If you are a programmer, most likely you make a good salary.  Or at least you see a good salary to be made in your near future.  So then why do you take everything so seriously?  There really isn’t any reason, most of the time, that you can be a smiling happy person to work with.  Nobody appreciates working next to a person that is always a grumpy person.  I figure it this way – You aren’t launching rockets!  You aren’t running towards bullets!  The odds that you will die in a firey explosion because of something you did wrong or didn’t do on time at work is very slim.  This doesn’t mean do things wrong.  Nor does it mean that you shouldn’t be a professional and strive to deliver everything on time.  But smile either way when dealing with your first world problems.  Don’t take everything so seriously you forget to live happily.
  8. Don’t be the i in TEAM
    A team is made up of people that are fair, accountable, respectful, on time, courteous, and approachable.  They are an example of all of the company’s core values.  They work hard to achieve their goals.  But they also help each other out to achieve the teams goals.  But we have all worked with “that guy”.  The guy that was rougher around the edges a little more than the company culture would normally allow.  This person is usually a technical over achiever which is the reason they are allowed to stay beyond their cultural usefulness.  The key to working with a person like this is to establish a personal relationship.  Get them to be a friend if possible.  Start to determine where their inner A hold voice comes from.  Sometimes it is just that they are highly passionate about the product they are building…and feel that everyone they are working with is incompetent.  What ever the reason – be open minded to their reasoning.  But one things if for sure, don’t be that guy!
  9. Assume responsibility not ownership
    It is important for both you and the company you work for that nobody becomes the sole person that knows how to do a thing.  It is also your responsibility to ensure that your fellow team members also don’t become that guy.  There are many reasons that this is important.  For you, it is very hard to take on new responsibilities, moving up in the company, taking on bigger projects, etc. – if you are the “only person” that can do something really important.  This is an entirely different form of a career limiting move.  If you have a team member that is like this, you should do your best to move them on to new responsibilities, or out of the team entirely.  If they get “hit by a bus”, or for many other reasons can no longer make it to work, who is going to do what only they could do?  This could leave your team and company in a lurch for an unknown period of time.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Read More


Assume responsibility not ownership

It is your job to be good at what you do.  What ever it is, do it in the most AWE-some way possible.  There should never be any doubt from others about your capability to do that thing you do.  With this as your reputation you will find that all sorts of things land on your plate for you to do.

However, be very careful that you don’t fall into the trap of taking ownership of something.  I have worked in many places where people thought they were doing their team a service by being the only guy that was able to work on a system or section of code.  Instead always take on a challenge with open arms and a smile.  But always “work your way out” of what ever job you may have.  Document what you have done.  Pair program with team mates to ensure that you are not the only person that knows something.  The best way to take on that next responsibility, or even better, move up in the company, is to back fill your position in real time.  Otherwise you will find that owning something leaves you hand cuffed to it forever.

…you will find that owning something leaves you hand cuffed to it forever.

There is another way to look at this of course.  And this part is the team member that you should always be on the look out for.  Some people take it upon themselves to take on a responsibility with the intent of owning it.  They feel that this is a way to ensure your job security.  After all, if I am the only one that knows how to do something, or I am the only one that knows the ins and outs of the system, surely they will keep me on for ever!  Right?

I have to be honest.  If I am the team lead, manager, or otherwise – I am always on the look out for this sort of person.  Single person ownership is an evil on a team.  How can you be on a team after all if you can’t actually help one another?  When I find these sorts of i (in TEAM) people I actively try to get them out of the ownership role.

Sometimes this is just a matter of having them pair with the new “owner” being in the driver seat.  Other times you may have to move them to a new responsibility entirely.  And other times you may have to promote them away from their responsibility or exit them out of the company.

But be sure, having anyone be a sole owner of a system is a pit fall that no company should lightly embrace.  Even if there is nothing but the best intent on the part of the owner.  The “bus factor” can hit any of us at any time.  This could quickly leave a company in a hole, unable to support a critical system for some period of time, or unable to address customer issues in a code base.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Read More