Keep Your Portfolio Up-to-Date At All Times

I have a never-expiring calendar reminder for myself to update my portfolio. Otherwise I just won’t do it.

Make Yourself Do It


But it is surprisingly hard to make yourself do it even with a calendar reminder constantly dinging you. And unfortunately you only ever realize that you needed to do it – and didn’t – when you need your resume to be up to date when you are ready (or worse: when you aren’t ready) to move to the next gig.

resu1This added pressure means that you are now going to be under the gun to send out your resume in a not quite up to date form, or you will struggle to remember all the cool new things you have done in the past many months.

It won’t be your best showing. You won’t likely have all the detail you once had. And ultimately you are doing a disservice to yourself when thinking about this late in the game.

Use LinkedIn As Your Source of Truth

A long time ago I stopped maintaining a resume in document form.

Before there was a LinkedIn it made sense to constantly toil over the formatting of my resume. And it made since to keep a copy and several backups.

I needed a consistent place to go to for the source of truth for my work history as there wasn’t one clear winner on the internet for such things.  Back then I would keep a digital resume on Monster and various other job boards. It was a real hassle to keep them all up to date.

But now a days it is easy to keep your information in LinkedIn. It is now my source of truth.

I try to go there at least once a month to enter at least one cool thing I did that month. It might be something simple like solving a customer’s problem. Or something more complex like learning a new thing in a pinch prior to a sales call or speaking engagement.

sour1Similar to blogging, if you don’t pay attention to the every day details of your day job you will miss the really important parts that you can use later to sell yourself.

Additionally you are missing the opportunity of someone looking for that special talent that you just picked up. You may make good money doing a bang-up job with that 80% thing you do. You run up against some new fancy way of doing things. And that becomes your new norm.

But you never update your resume.

As far as recruiters and other hiring managers know you are only really good at that 80% thing. There is no mention of your new go-to-favorite skill – which is what they really need right now and can’t find anywhere.

This is a missed opportunity for you in a couple of ways. The recruiter won’t contact you to let you know that your new skill is in high demand. Which means you miss out on the possibility of shifting to a new gig. Or, if you really like your job, but want to earn more, you might miss the opportunity to bargain around your newly found skill. Either way, this is your loss in the here and now.

So what sorts of things might you keep track of on LinkedIn? When you have a job, you can use LinkedIn as a running log of interesting facts. When you don’t have a job you can scour through your profile and clean out the things that aren’t really relevant any more. Let’s look at what sorts of things are hand to keep track of:

Title and Responsibility Changes

There are a couple ways of tracking when your title changes and when your responsibility changes. The first is the easiest and doesn’t require much thought. Keep one entry per company you work at. Update the title. List the existing responsibilities.

promo1This is a great way to keep a short resume. And it is a great way to not tell your hiring manager about your history. This is where the difference between a traditional resume and a CV/Portfolio come in. When I am in the hiring manager role I like to see where a person has been and all the things at a high level they have done while at a company.

If you were a developer, then a team lead, then the architect, then the engineering director – list those out. They are very different jobs. They will have very different responsibilities. And being able to show that you have done them all is important to many hiring managers. It shows you are experienced.

We have interns at my current company. One of which we have had back three separate times. For a person like this it is very important to distinctly show that you came back at three different times. And detail out what you did on each occasion. This paints a different picture than someone who just worked somewhere with no timeline. It doesn’t show that we liked you so much that we kept hiring your back.

Business Goals Achieved

Business people, hiring managers, etc. – they don’t generally care that you learned the latest version of HTML. What they do care is that because of your mastery of this new version of HTML you were able to up the sales conversion of your check out process because more customers are able to complete the check out process on their phone and tablets.

roi1Geeks really care that you were able to write a mail sending tool in 100 lines of unreadable code. But business folks care that your tool took into account the bounce rate of certain domains and the rules around how you stay off of black lists so that your email penetration goes up 30% which effectively increased their over all penetration resulting in X number of new dollars for the month.

Now, don’t get me wrong. You need to swizzle this in a manner that you salt and pepper your business swizzle with some tech babble so that all audiences are made happy. If you just deliver the business numbers uber geeks may find your resume wanting. Add appropriate tech talk to sell that you know what you are talking about.

Use the Right Voice to Tell the Right Story

Equally important to what you did is how you tell the story. It is very off-putting to read about a guy that is singing the me-me-me-me-me-me-meeeee song! It is ok for you to say “I used tech X to achieve business Y” now and then. But equally important is how you enabled the team to achieve a goal. Or how you pulled bugs for a week to get to zero defects (sacrificed your enjoyment for the team). Tell a story of being a valuable team member.

If you are in a leadership role tell the story of how you are a shit-umbrella vs. a shit-funnel.  Give concrete examples of how you help you team get stuff done.

Bottom line: keep your portfolio up-to-date at all times. And LinkedIn is a great place to use for it.

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

Read More

brand buiding crossword puzzle

How to Build Your Brand As a Programmer

I am always fascinated by people give me a funny face when I ask them what their personal brand is. I know I had a funny face when someone first asked me that during an interview once. But ever since then I totally got it and now promote the idea daily.

Everyone in our industry know’s who at least one of these guys are: Linus Torvalds, Scott Hanselman, Uncle Bob Martin, or Martin Fowler (If you don’t know any of them, pick one and go research their contribution to our world immediately!). They have a big marketing engine behind them simply because they have contributed to our industry in great ways. They are natural givers.

Give and Take: Why Helping Others Drives Our Success

I just finished reading the book Give and Take by Adam Grant. I highly suggest that you read this book at some point. It will change the way you view the world. And likely make you more successful in your day to day interactions with people.

It describes differences between givers, matchers, and takers. And tells you why one personality type is more successful than another. An example of this – who do you think is the least successful at work? Givers! They give too much of their own time and can’t deliver on their own tasks. Who do you think is the most successful at work? Givers again! Because they give selflessly of their time, they are more likely to get the troops moving in the right direction.

– Andy

But you and I don’t have the same big engine behind us – because we haven’t yet contributed in the same mammoth way to our industry.  We will talk about how to level up our game in a mammoth way in other posts: time management, passion, willingness to give to others, etc.  But in this post we need to look at how to get you on the path to being at least somewhat known by the people that matter most to you.

Manage your resume on LinkedIn

We all know that we need a resume. How else will I get a job. But gone are the days where I need a resume, and a “profile” on one of a hundred job sites. It would seem that these days I can have a resume built on LinkedIn and send either a link to my LinkedIn profile, or a generated resume from LinkedIn. I prefer to use the LinkedIn labs resume builder.

Now all you need to do is add your history to LinkedIn. And remember to add your major accomplishments that you achieve at work in real time.  Otherwise you will end up with a resume that states where you worked and what your title is. There is no way you will remember every little awesome thing you did along the way between this job and that job. Especially if you are under pressure of getting the next job.

I prefer to add the books I have written, all the jobs I have worked at, along with some highlights for each job. It is ok to repeat certain things like whether you did ASP.NET MVC at every single job. That shows that you are likely good at that skill.

Also, curate the tag cloud of skills people say you are known for. This doesn’t have to all be technical skills. Soft skills at work are equally important. If you are known for being awesome – put that on there. Perhaps you are a great leader. Put that on there. Then organize the tags that you have to show the ones you align with most or most want to promote. You don’t have to let these tags auto sort.


Create a personal website

People are going to search for you. It is inevitable. So make sure that they find your voice and not someone else’s. Now-a-days you can do this in less than 5 minutes. Go over to bluehost and pay $5 for monthly hosting. Then stand up a free WordPress site. Pick the theme that you are most happy with.

Now spend another 5 minutes putting your pitch together about who you are. Don’t just include work stuff. Tell your story. Who you really are. What your passions are. How many kids do you have? Give a brief overview of the person you think you really are. This is your first marketing event for yourself – so really sale your personal value.

If you intend to write a blog, do some content here.  Post articles that are a mix of personal and work related.  We can point other web properties here to start building a web.

When setting up your blog, begin to capture emails immediately using AWeber. While you may not immediately have much you can tell your readers other than blog posts, the time will come when you build an audience with your niche and want to share it directly with the people who you most resonate with. These are the people who will be your biggest fans, the ones who will be sharing your work everywhere, the ones who will buy your courses one day that teach them valuable skills they need.

Blog somewhere that already has traffic

While I suggested that you create a blog on your personal site, you don’t yet have a brand and therefore you don’t yet have any personal traffic. Unless you plan to spend a bunch of time self promoting via twitter, facebook, linkedin, etc. – you should get started somewhere that can actively help you self promote.

I started by putting my first blog on  At the time I started with them they had a few hundred bloggers there. All tech oriented. Any traffic they had – I immediately got. This was great. My posts hit their homepage and I got some readers on day one.

They now have well over 1000 bloggers on that site. This means that you get the traffic from some of their top bloggers. But with all that traffic you may get some noise. Also, your post won’t hang around on their home page for as long. But I still suggest starting there over many other places.

Put your code on GitHub

Do you write code? Then make sure some of your code can be seen by others. I would rather see that you write lots of code, for yourself, for others, for open source projects – than see 5 files that you made the most awesome effort known to man. We all get that your skill set is an ever growing and ever changing thing. What you post today may be the best you have now. And that will change over time. Don’t worry about it.

Put something out there. Get some feedback from people. It will help you grow over time.

Jeffrey Palermo told me once “If you were going to hire someone to juggle at your kids birthday party, wouldn’t you want to be sure they could juggle?” This was in response to someone stating that they felt above taking a coding test to get a job. People want to see that you can at least perform what you say you can perform.

Putting your code out there for others to look at gives people some confidence in you. The fact that you put your code out there for others to see also tells folks about your person. You are willing to take feedback and criticism.  You are willing to put yourself out there. This makes you more hirable over those that keep everything close and private.

The importance of helping others

You might be a matcher. You might be a taker. But when building a brand – neither of those traits are going to help sell you. You need to show that you can help others without expecting anything in return.

The easiest way to do this is by contributing on stackoverflow.  Build a profile there. Set up some searches to be sent to you as new questions are posted to topics you are interested in. Spend 5-10 minutes a day helping people solve their problems. Over time you build up some reputation for being a person that can help others.

Contribute to community sources of information

Whether this is a paid or unpaid activity – writing an article for a community site (like dotnetslackers) or for a magazine (like CODE) – is an awesome feather in your hat. Do this often. Again, this an effort to exchange your personal time giving to others for just a touch more polish on your online brand.  Try to do this once a month if this is the main avenue you like for industry exposure.

There are many ways you can contribute to your community. Writing isn’t the only way. I like to create slide decks of information that others can then use to present with. I like to also use my slide decks to present at user groups or conferences with. Presentations can be shared via SlideDeck or similar. And can then be hosted back on your LinkedIn profile.

The key is spend a little bit if your time, frequently, giving back to the community.

Single page sites about you

There are so many sites out there that do this now.  But sites like allow you to build a small snapshot of who you are. I like to include this link in my presentations or on a business card. This is an information radiator that can point to all the other endeavors you have accumulated over time.

I like to say where I am. What my phone number is (a google voice number). My rough home address. My current role. A brief summary of who I am. Then you can link in all of your blogs to be summarized on that page.

Now you have a single place to point to that can then point the viewers to so many other locations.

With all of this (we will write in more detail on this topic later) you can really start to control the search results people find when looking into who you are. Make sure you live by the rule “never say about someone what you wouldn’t say to someone”.  Remember that everything you put on the internet has a forever life. Don’t believe any systems that says “this is private”.  Assume everything you do on the internet is public always.

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

Read More


Build long-lasting relationships – don’t burn bridges!

Most of us interact with dozens of people on a daily basis. In most cases, we make several new contacts every month. Our network continuously expands as we go about our daily routines. If handled properly, these relationships can be an extremely useful tool for advancing our careers. If not done right though, they can also be the biggest hurdle to our success. In fact, I’ve found that one of the best things we can do to build a successful career is establish lasting relationships with the people we meet along the way. For me, these relationships have proven to be indispensable.

I’ve found that one of the best things we can do to build a successful career is establish lasting relationships with the people we meet along the way.

The connections I have made at work have been extremely valuable in helping me advance my career. They have served as references when I’ve looked for a job. They have also been the people that recommend me to their employers or to other people in their network. In fact, in the last 5-6 years I have not had to look for work at all. Every time I’ve switched jobs it’s been because someone in my professional network has recommended me for a position. As you can imagine, this makes finding work a whole lot easier!

relationshipsI think we should look to expand our network every day and work at building lasting connections with the people we encounter. We run into awesome people all the time and we should focus on growing positive, long term, bonds with them.  You never know when one of these relationships will help you reach your next goal. In my experience, these relationships make navigating your career and reaching the goals you’ve set for yourself a lot easier to accomplish. At the same time, we should not underestimate the importance of these connections and make sure not to burn any bridges along the way. We spend a lot of time and effort working to build these relationships and it doesn’t make any sense to just throw them away.

Here are a few tips to building strong, long lasting relationships with your coworkers that can help you build your successful career.

Be Yourself

This first thing is really easy, but for some people it’s extremely hard to do…always be yourself. Odds are you’re a cool cat. You should let people see you for who you are. I am not saying you shouldn’t be professional, just be genuine at all times. If you’re not really a tight-laced, straight and narrow person then don’t pretend to be one at work.  Within reason, and when appropriate, you should allow some of your true nature to be visible wherever you are. Don’t be the coworker that is one way at the office but a completely different person in other environments.  For me, this is a general guideline that I follow in life and I think it applies to work as well. I found it makes people feel like they really know you and not only the buttoned up version of you. I think it helps garner those closer, longer lasting, relationships that we are trying to build.

Be Attentive

Another really easy, but extremely important, thing you can do is simply listen to people. I know, this might sound a little silly, but it makes a huge difference. When you’re talking to someone, stay focused and engaged. Listen to what they are saying and participate in the conversation even if it’s not work related. This encourages people to talk to you and makes them feel like they can come to you for personal and professional advice, to chit-chat or maybe just to blow off some steam. All of these interactions are valuable to building a personal relationship that extends beyond work or that particular job.

Be Helpful

Always be willing to help your coworkers out. Take every opportunity you have to be a resource to others. This might mean helping a coworker figure out a specific technical issue or being a mentor to someone that is more junior than you are. Maybe a coworker just hasn’t worked with a particular tool, technology or process and you can help them figure it out and not have to stumble their way through it. You should keep your eyes open for opportunities to help someone get out of a jam. Sometimes, these interactions make the most positive impact with your coworkers. It’s seems like their value is magnified by the size of the problem you are helping resolve. I’ve experience this from both ends. I know I value the many people that have made an effort to help me figure things out or get me out of a jam. I’ve also seen just how much helping others helps build the type of positive working relationships that I’ve tried to establish.

Accept Feedback

You should always be open to feedback. In most cases, people are actually trying to help you out when they give you feedback or suggestions. Of course, you’ll run into some people that have a different agenda but you should hear those people out as well. Never, ever, ever react emotionally. It only plays into that persons agenda and makes you look rattled to others. You should always consider the merits of the feedback, discuss it professionally with that person and make a determination on whether to accept it or not based on fact and not emotion.

Never, ever, ever react emotionally. It only plays into that persons agenda and makes you look rattled to others.

A crucial part of a strong relationship is feeling that you can tell that person when you think they are wrong (or not quite right) and they won’t blow up or just ignore you. I know it makes a huge difference in my work relationships (and personal) when I feel comfortable that if I disagree with that person, we can have a discussion about it and not end up in an argument.

Be Professional

Above all else, be professional. Don’t ever be disrespectful, condescending or aggressive. Treat your coworkers with the respect that they deserve. You don’t want to be the person in the office that people feel they can’t approach. You want your coworkers to feel like they can talk to you and you won’t make them feel uncomfortable. I’ve never really understood why anyone would disrespect their coworkers. This kind of behavior, and the negative feelings that it creates, can follow you wherever you go and can be very difficult to overcome. I’ve worked with some really smart people that are great at their jobs but they choose to be negative and unprofessional. I’ve never felt comfortable recommending them for other positions. Whenever I am asked if I know someone that does “XYZ,” I don’t consider recommending these people even though they might do it better than anyone else I know. I am just not able to get over the way they treat people and I don’t want to subject others to it. So, don’t be that person…

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

Read More


Thou Shalt Blog

When I left my first programming job at almost fourteen years, I couldn’t take any of the code with me.

In fact, I couldn’t take anything I had done with me. Think about that: you worked for a place for a third of your entire career, and you own none of it.

When I went looking for another job, I had no public presence in the software world. No one knew who I was, nor could I point to a book or blog or even a twitter account that demonstrated I was passionate about software development. I was starting at ground zero in terms of looking for work, with only the skills in my head to help me find something.

Become a Blogger

Blogging establishes your presence. It puts a stake in the ground and declares “I care about the software craft.” Care enough to write stuff down about it to share with others.

Your blog is the key part of your overall platform, which may eventually include a facebook page and twitter account, a podcast, books and articles that you write, speaking and training that you do, and so on. But it starts with a website that is your home base on the internet. Here’s the cut-to-the-chase guide for programmer’s on how to start a blog.

1. Pick a theme

Back ten years ago, you could start a blog and ramble on randomly about all sorts of topics and still gain traction. Nowadays you are far better off choosing a specific niche or theme–even if it is a broad one–and clustering your posts and content around that theme.

Choose a niche that you are passionate about. Even if you think it would be valuable to write about optimizing SQL queries, and you have years of experience doing it, if you are bored to death by the topic, pick a different one.

One good way to find topics is by asking yourself what pain points you have hit in your software development in the past three years. Did NServiceBus’s awful documentation make using it a nightmare? Become the NServiceBus guy. Have you built several products that were all disasters because you didn’t really find out what the potential customers wanted? Become the Minimum Viable Product guy!

blogrunWhile writing on a theme is good, don’t feel you can’t veer off onto other programming topics from time to time. We are human beings with varied interests, even in the software space. You do not have to be slave to your particular theme. And you may end up finding that you thought that a particular niche was the most interesting to you, but as you started blogging you kept gravitating toward another niche. That’s okay: start a second blog or change the focus of you current one to that. You will lose some readers but gain new ones.

2. Sign up with a host

You need to host your blog somewhere. Do it at bluehost; it’s a fine low-cost hosting company that will serve you well until your blog launches into the stratosphere in popularity.

In the sign up process the main thing you need to choose is your domain. Brainstorm ideas by writing down different topics or words that you find catchy and that fit your blog’s overall theme. Check if the domain is available and then go with it.

3. Use WordPress

Bluehost (and all hosts today) have one-button-click ways of installing WordPress. You are using what’s called a “self-hosted wordpress” installation. That gives you the maximum amount of flexibility with customization, wordpress themes, widgets, and plugins.

If you have design skills, create yourself a logo and header image. If you don’t, hire someone to do it. Bribe a friend or pay a guy on fiverr a few bucks to make one.

Choose a wordpress theme that is workable, add your header to it, and do some tweaking. It does not have to look great yet–after all you have zero readers other than yourself–so just get it acceptable and move on. WordPress is endlessly extensible, and you will be customizing your blog in various ways on regular basis, learning about new plugins and trying new themes out.

4. Brainstorm Topics and Posting Schedule

Once you have your blog setup, spend an hour writing down any and every topic you can think of within your niche to post about.

No idea is dumb at this point. You are generating ideas that you will then pick and write blog posts about over the next few months. Think about programming experiences you have had and those pain points you’ve hit (and how you solved them). If you run out of ideas, go find other blogs on topics similar to yours and see what they are writing about. Take one of their ideas and write it in your own words.

Next, choose a posting schedule. I recommend once per week minimum, but if you can do twice per week that will be even better. Consistency helps people trust that they will get good content from you on a regular basis.

5. Spreading the Word

Now we’re getting to the fun part. You do not want to write into a void.

Begin to gain readers by first posting comments on other programmers’ blogs. Make them thoughtful and be sure that you include the link to your blog with your name and email address. But even better: if you have written a specific post that addresses something from their blog post or a comment on the post made by somebody, talk about the issue and link to your specific post. Careful not to come across as spammy here, but also don’t be afraid to do it.

This step presupposes of course that you are reading other programmers’ blogs. Do so! Find ones that are in your niche or in related ones and follow them via email or reader.

Share your blog posts on the facebook page you will be starting very soon, your programmer-related twitter account, google+, and even email it to friends who may be interested in the topic.

But the best way to ensure for the long run that you get visitors is by writing solid content on a regular basis. Write posts that solve a problem or give a guide on how to do something valuable. These are the posts that become authoritative or canonical and get linked to by other people and visited again and again. They have a long tail and get the SEO juices flowing in the organic way that never gets nullified by google changing its algorithms.

Originally long blog posts were the norm. Then the blogging wisdom changed and you were supposed to keep posts short and sweet. That is useful sometimes for sure, but the pendulum has swung back the other way and now medium-length (or longer), useful posts are valued highly.

After you set up your blog, create your most valuable asset: your email list. Sign up with AWeber to manage your list, adding people to your newsletter, and sending emails.

Blog Baby!

Blogging will establish your presence in the programmer world. No longer will you be faceless cubicle dude hoping that some company will pay you a salary so you don’t end up homeless on the street. You are now taking your career into your own hands and building a platform that is yours and extends beyond the company you currently work for.

Your blog will open up doors and opportunities for you. You can point people to it to instantly show them that you care so much about software that you write about it in your spare time. Congratulations, you just differentiated yourself above 99% of the programmer herd.

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

Read More