MVP: Minimum Viable Personality

“Our engineers are all weirdos.”

If all companies end up becoming technology companies then the technology people end up having power. And power corrupts. We have all heard of stories where everyone has a dress code apart from the product development team who all ride scooters around and shoot nerf darts at the sales team as they try to give tours to prospective clients.

And we have also heard stories of very talented engineers who’s skills are not appreciated because of their demeanor (um, smell) or awkward social habits. Even something pretty harmless like their 365 piece set of Pokemon stuffed animals that are rotated each day can make managers feel like they aren’t “leadership material”.  (Well who the hell do you think is leading all those Pokemons?!)

These are separate problems but all lead to a “ceiling” existing for advancement for people who act in these ways and lead to a technical team that doesn’t scale.

Minimum Viable Personality

When I hire I always try to imagine if this person has the Minimum Viable Personality to survive talking to someone two or three levels above them in the organizational chart. Can they whiteboard out the solution and discuss its pros and cons without coming off as arrogant and not open to criticism? Can they shift gears when business priorities change even though the component they are working on is the damn prettiest thing they ever saw? Can they have small talk with the CEO in the elevator with bringing shame to the technical team and their families?

Power Trippers

And in an interview – a short slice of time – I look for any signs of arrogance.  Confidence is one thing, but if you are a jerk even a little bit to an interviewer it is a safe assumption that there will be a multiplier on this behavior and as you gain stability in a job you will be harder and harder to handle.  An interview is a very odd situation: you are given a good deal of attention and if it goes well some praise.  Humble people will respond differently in an interview than arrogant people.  They both will talk about their accomplishments but the color of their language will differ.  “We” is a word that I hear less with those that end up being bad hires.  “Well I built the system from scratch” vs. “my team built the system from scratch and I was the tech lead”.

If they have the minimum viable personality to survive they will grow and learn more quickly, and if they aren’t arrogant then the power they attain will not lead to bad behavior that undermines your goals.

Lessons on Hiring and Networking

I have been working as a software developer for over a decade to the point in my career where I know hundreds of people that are in my same line of work and can thus give (and receive) meaningful help for people in their career as they try to find full-time or contract jobs. In addition, many of my peers are in the position to hire people at the companies they work for (or in some cases at their companies).

Reaching this point has made me reflect on how I should have been networking with people that I’ve come across all along; how we should all treat each other.

Here comes some bulleted unsolicited advice about hiring. Everyone you work with, please remember the following:

Accept and Expect Growth

The ecosystem in which you operate matters. A great deal. People can be ineffective in one role or company but succeed at another. Don’t judge people based on one job (or even worse one project) at one place. In addition, people change over time – not just technical skills but soft skills as well. Claiming that somebody you worked with four years ago “isn’t good with customers” isn’t valid unless you saw them hit one yesterday with an umbrella (for no reason). If you don’t pay attention to the fact that people grow, then you will discount people that grow a lot, and these are the people you most want to hire.

Don’t Assume Local Reputation is Accurate

At times, you’ll see someone, and this applies more with those in manager roles, that does something that you don’t understand – they fire someone, they stop a project, they are on board with a change that seems destructive, etc. When you are a manager you know more information about what is going on across the company; some of these priorities and realities are quite different from what the average worker sees. Remember that you might not have all the information. Saying that a manager was a jerk because they fired Bill four years ago might not be valid. Bill might have hit people with umbrellas (or hit on people). Find out for yourself if possible, and don’t make a judgement if you can’t find out.

Gossip is (most of the time) about the person communicating it, and not the person being communicated about. Said another way, don’t let other people’s impressions of someone affect your judgement of them – see for yourself how good they are.

Don’t be a Jerk

If you have trouble not being a jerk in general then try this thought exercise: Imagine that every single person you work with will be in a position later to hire or not hire you at your dream job. Try to be professional, polite, and helpful.

Specific Case: Workers that are Different than you

There are two instances of being a jerk I’d like to call out: being a jerk to older workers and being a jerk to women. Unfortunately for our industry, which is full of WDWG (white dudes with glasses), these both fall under “people different than you” for most hiring managers.

Our industry thrives on the language of the now. We talk shop in very specific ways and isolate and eliminate those that don’t seem up to speed with what can help us in our current project. Older experienced developers (whether they have stayed technical or moved into management) use slightly different terms for the same thoughts: they might refer to server-side code as running on mainframes or call what we call ‘pages’ in a web context ‘screens’. They might mention things to avoid more often than younger workers and thus come off as negative. Do not let these slight differences make you not listen to them; they are full of good information.

Our industry seems like it innovates all the time, but the core problems – the really hard ones -remain and have been fought for years. How do you figure out what system to build? How do you write it down so that others can understand? How do you build and test software on large teams so that everything works together? How can you make maintaining the software as easy as possible after everyone leaves? These aren’t new problems and they are the sort of problems with which older workers have decades of experience.

There aren’t a large number of women that are software developers and many men in our industry really don’t know what to do when they come into contact with them at work. Male developers, even those that try hard not to be sexist, tend to assume that women are either less effective or are super-geniuses since they have had to face “hardship” being in the minority. Try to do neither and focus on merit; see for yourself.

Keep in mind one knee-jerk reaction that I’ve seen many males have (and have had myself) – to assume that someone who is better at all the soft skills that surround development { requirements, testing, documentation, team activities } is, therefore, less effective technically. There has been extensive research that women on technical teams are as effective and help build teams by increasing communication while at the same being just as effective on the coding side – do not discount their power.  Just because someone shows up on your team and can speak in complete sentences doesn’t mean that she can’t write code.

Be Aware of Why You Like Working With Someone

As you work with someone see how much you

a) like working with them
b) what their quality of work is like

You can be friends with someone and they can also be good at their job, but be aware that a) affects your judgement of b). Try not to let the short-term employment situation affect your judgement of longer-term skills like attitude and morality.

Handle Recommendations Carefully

This last point leads to the most common failure of the recommendation system by which many developers are found.  Everyone you enjoy working with is in a grey area between you just liking working with them and them being able to get a lot done and therefore not cause you stress.

When recommending someone communicate where this person is on your friend-trust scale. Recommending your cousin because he has good jokes at family reunions and works in your field is very different than recommending someone that you don’t like but respect for how effective he is. I’m not saying you shouldn’t try to help out people close to you socially, I’m just saying that to the employer these are very different situations and that you should be honest about which one is happening.

Practice Networking in its Pure Form

As much as possible try to share what you know with people that ask for help and are trying. Networking is not about doing favors with the expectation of getting one later. If you know something, share it. If you want to know something, ask for help. Networking isn’t about getting jobs; it is about having a crew of pleasant competent people that are on a logical greater team (outside of individual positions) with you throughout your career helping each other become better.

Make a List

Maintain a list of people that are a joy to work with. Maintain a list of people that you would hire to do a job in which all of your personal life savings is invested. For the love of all things keep in constant contact with anyone that is on both lists.


You *will* lose money working at a startup – why do it?

You are going to lose money working at a startup – full stop. Is it true that some people make a lot of money working at startups? Most certainly – just like how some people worsen their health by exercising through spraining ankles and eating entire boxes of Cheez-its after running (Don’t judge me).

People have trouble calculating small amounts of risk (example: By getting in a car today you increased your chances of dying today 100x) they also have trouble understanding small chances of success.  Since it is unlikely that you win big with a startup you need to know how much you are paying to work at a startup.

Opportunity Cost

Working at a startup means that you need to commit to doing something for a few years. While the normal IT turnover is about two years to really have a chance of making money with a startup you need to be obsessively focused on that one thing for greater than two years – no side work or consulting unless absolutely needed.  You have to turn down that call from a friend who just got a job writing the billing system for Krispy Kreme with – you guessed it – awesome employee perks.

Personal Cost

At a startup you are all-in in most cases. Not all startup are like this, but the average startup is based on building a product that scales from the start as fast as possible to meet a certain market need. You are expected to work longer hours and be more committed than in a traditional job. This means it will cost you personal time – everything that isn’t nailed down or a way to recharge yourself for more work will be replaced by work. Watching TV, hanging out with friends, having a close family, lawn care, listening to podcasts, competitive knitting, blinking contests with your parrot – whatever.

Literal Cost

There are many cases where the startup just costs you straight-up money. You make less at a startup and can’t take on additional work so if the options/equity doesn’t work out you lose money.

Well then why do it?

Every startup is different – not all demand 80 hour weeks, no vacation, and daily blood-letting for 3 years before there is any relief. Some cost less than others – but they all cost something compared to other opportunities; it’s the nature of the risk/reward equation in play.

This post so far has come off as anti-startup – it isn’t. You just need to know what the cost is before you pay it; for many the rewards are worth it. So what do you get from paying all this time/money?

Learn to play offense

Big companies play defense, small companies play offense. The bigger the company the more likely they are to be protecting revenue from existing products which means there is less creation/innovation going on and more maintenance/low-risk activity. This is not as exciting, and not something that challenges every type of worker. In addition big companies play defense with themselves – politics between departments and personalities get ugly and awkward and creepy.

Avoid Defense

Getting tired of the co-worker on co-worker political crime? If you have worked more than a few years in IT working at a startup is a breath of fresh air. No HR, no maintenance, no bureaucracy, no weird politics, no grand-standing, no asking for permission, no entrenched product managers on foobar’d products that aren’t evolving.

Make contacts with people who create opportunity

Working at a big company you can meet more people than at a startup and many of them are wicked smart, but the type of people you meet working at a startup are the type of people that a few years later will probably build another company while the big company people probably won’t. Working alongside people that are smart, courageous, and motivated enough to work at startups can teach you and expose you to more than the default choice of a typical job.

Learn by watching fireworks up close

Working at a typical IT firm you don’t normally get to see the whole picture. How much are we billing customers? Who is our most profitable client, and how do we treat their contract negotiations? What is the CTO/Product Manager doing day to day? How much are we growing, and in what markets? What was the thinking behind this decision, and how was it analyzed and tracked after it was made? At a startup you typically get to see the feedback loop up close since it is a buzz saw moving closer to your neck every day. What features should we put in the product, what market should we go after, what is working, what is failing? These are questions you get exposed to all the time working at a startup.

So should I work at a startup?

Every startup is different and every worker is different and every snowflake is different. For some stability is more important, or better insurance, or maybe there really are people that like awkward corporate work parties. For others the chance to learn to move fast, build something from nothing, rub up against people that want to do things differently, and avoid all the defense and hedging in big companies are worth it.  The experience you gain from being that close to the fire at a super-small business like a startup can all be applied at later jobs with bigger companies – everyone wants someone who can play offense, avoid defense, and make smart decisions.

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

Write in 2012

Last year I resolved to write more this year.  I ran across the idea of Morning Pages and found a writing site and some tools that helped me no matter where I was.  In this post I’ll talk about what this has meant and done for me and encourage you to spend some time writing in 2012 ’cause I think it is dope.

I write first thing in the morning and then intentionally at lunch a few days during the week or I jot down notes as the day passes over me.  I just write anything.  Sometimes it’s in the form of a 13 year old girl’s diary in that I dump my emotions on the page and other times its intentional work towards a blog post.  More often it’s simply noting patterns, entertaining myself, and processing whatever is in me.

Most of the writing that I do is not published – it is a language of communication in which the sender is the present me and the receiver is future me.  I started writing in 2002 after graduating college and being really bored in my first job.  I wrote it on a Movable Type blog that had a password on it – a personal pay-wall of sorts to ensures that only I read it.  Write for yourself first.

Why spend time writing?

If you don’t intend to ever pursue writing as a career or serious hobby why would you spend time writing?  I mean don’t you have Facebook stalking to do and fart apps to download?

Well let’s start with a list of small to medium-size benefits:

  1. If you work for a small business you can easily use your writing skills to establish a culture, public voice, and internal attitude for your company.
  2. It doesn’t matter what your job is – if you can clearly convey an idea over email, the phone, text message, smoke signal etc. you are going to be better at your job. It is a natural prejudice but a positive one: if you can clearly communicate people think you are much better at other things.  Software developers with clearly-written blogs are thought to be great programmers even if it isn’t so.
  3. Writing gets you in touch with yourself – what is in you comes out with stream of consciousness writing.  It reveals your prejudices, in-the-moment emotions, and things that you can’t process without “talking about it”.
  4. Archived writing is stored state of mind.  I go back and read stuff I wrote when we had our first child in 2007 and it is fascinating and beautiful just because it takes me back there better than music or photos.
  5. Writing is an effective break during work – you clear your head in the same way that reading does while keeping your mind more active.
  6. Writing gets new ideas out of your head and new ideas are stuck behind old ideas.

On to the bigger benefits:

Writing helps you learn to create

In writing you create something from nothing.  Most of us don’t think that we can draw or sing or dance or freestyle rap but any literate person can write.  You don’t have to be fancy; you can write a story about anything to please yourself and create a thing. Creating changes you in many positive ways and writing is the most accessible of those ways.  One of my takeaways this year was how often I came up with something new while writing.

Writing helps you learn to focus

Writing is a very intensive focus-based activity.  You can switch over to a web browser while writing but the structure of words and sentences means you probably won’t do so in the middle of typing out the word “encyclopedia”.  In this way writing is a good way to bootstrap your focus muscles – letter by letter, word by word, sentence by sentence, paragraph by paragraph, chapter by chapter, book by book, obscenity by obscenity.

Resolve to write

Anyway, my unsolicited advice: write something this year.  No excuses.

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

How to convince your employer to let you telecommute (LIKE A BOSS)

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

You have decided to work from home. Telecommute.  Listen to the kind of music you want to – dance the way your body tells you. Shower less, love more.

La-di-freaking-da – you still need to convince your traditional in-office boss to let you do it.

What your boss fears

Your boss thinks that working from home is all Saturday-morning: pajamas, fruit loops, SpongeBob SquarePants, drinking, gambling, loose women, not working, cursing off the Boss (“BWAAAHH this bar gets Wi-fi look at me on IM right now guys!”). (ed note: Saturday mornings are pretty exciting for me)

He has heard horror stories of people working from home just doing enough to get by, not returning phone calls, working on other things, quitting, etc. He fears that:

  • Your performance will decrease
  • You will lose touch and work on the wrong things
  • You won’t be there to help others

Therefore he is afraid he will:

  • Look really stupid to everyone else for letting your try it
  • Have to let you go and find someone else

We just need to fix these concerns one-by-one in a detailed manner. You need to think through and deliver a proposal  – and then you need to be a badass and execute it.  He is most concerned with Performance and Communication.

Performance: prove that it will increase

You need to show that for you working offsite is more productive. Tell him why and then show him its true.

Send him studies and a summary of their conclusions to show that it can work

Studies say that:

  • People who work from home don’t change jobs as often
  • People who work from home have better morale (which leads to nice things like staying alive, being less stressed, and having more ideas)
  • People who work from home end up doing more actual work / work longer hours (emphasize whichever one your boss seems to care about more)

Finding evidence is easy:

Show him how much it works for you

  • Ask if you can hole up in a conference room for the afternoon, and then show him scary results.
  • Ask if you can work from the coffee shop/hotel across the street, and then show him scary monster results.
  • Ask if you can work from home one day and then show him scary monster-who-is-taller-than-average results.


There are two fears about communication – one specific fear is that you won’t be productive simply because you will be out of the loop and the other is that you will be a roadblock that holds up others.

Over-Communicating Status

For status the simplest method is to email what you are planning to do at the beginning of the day, and email at the end of the day with what you did. This also acts as a clock-in/clock-out mechanism for the more paranoid set.  Over-communicating is a good place to start – you probably aren’t offering twice-daily status updates in person now.

Offer to share your to-do list. When you work from home you will need more structure than you had before so you will most likely be documenting more anyway. Use one of the many tools (RTM, Workflowy, Toodledo) that offer sharing so that your boss can (but most likely won’t often) see that you are in fact adding and deleting items that he recognizes.

Be available

For team communication it is harder to stay in the loop.  You need some infrastructure in place: broadband internet, slower internet or a close Wi-fi backup, Skype, clear phone, etc. You will need to have your cellphone with you all the time when starting out and will need to act like you are in the office: if you need to run a 30 minute errand or have a doctor’s appointment tell someone.

Smell the tasty politics

For on-the-fly information and politics it gets much harder.  Since clearing communication roadblocks across the team might (absolutely should) be part of your boss’s job you are indirectly asking him to do more work by communicating differently with you so avoid any special cases that require him to do anything just for you.

Take the initiative on your own to identify how real information travels around the office and make sure you can show him what proactive steps you will take. e.g. “I’ll still be on the morning call and I’ll message Cathy around lunch to see if anything comes out of the Thursday interdepartmental fist fight that seems to always determine our priorities”.

Being in-office also helps – offer to do 3 work from home days and 2 non work from home days. If the days are typically the same (i.e. there is no big planning meeting) offer to still come in on Mondays and Fridays. This calms his SpongeBob nerves as an irrational fear of ninja three day weekends is common.  On the days you do come into the office you should turn into a total water-cooler guy and try to catch up with people to see if there is anything you need to know.

The most badass move out there

So you give him your plan – I’ll work Tuesday – Thursday from home from 7AM to 4PM, be available over IM, on Skype as needed, dial into the stand-up meeting, share my todo list, keep in touch with Cathy about politics, call you once a week if I haven’t seen you, etc.

Setup a timeframe of one month in which you will execute this plan. Tell him that at the end of it if he feels that you got less done you’ll give him the vacation days you would have earned over the period back.  If you are a contractor offer to not be paid for 2 of the 20 business day in play, or 10% of your billed time over the period.  Also – you should fully intend and be ready to make good on this.

The reason this works is that you are putting a stake in the ground and providing a mutually beneficial outcome for both parties.  The boss knows that he is still in charge but has an employee that is taking initiative and will get things done.  The added benefit to you is that it puts you in the right frame of mind – the absolute most important thing to understand about working from home is that it is all about execution.

(The second most important thing about working from home is never missing an episode of SpongeBob.)

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

How to deal with robots and get your poodle a job

How should you act when a recruiter calls you during personal relaxation time (i.e. grooming your pet poodle “Fluffikissh”)? What are the ground rules for interacting with robots? If the end goal of everyone is to have a good reputation and to earn a living what are some long term things we can do to get there?

You can interact with a recruiter in a bunch of ways:

  • Unsolicited email
  • Phone call
  • Prank Phone call
  • Awkward stare
  • Love Letter
  • LinkedIn message
  • Scheduled Social Interaction (i.e. poodle playdate)

Tech recruiters get a bad rap because a good deal of the initial communication is unsolicited and untargeted. (er, spam) I’ve gotten many emails about positions that I am not qualified for in any imaginable way – they might as well for jobs as a mime.

Fact: mimes have a difficult time getting referrals from others mimes over the phone.

It’s pretty simple really: be pleasant, professional, helpful, and don’t be a jerk.

Be professional: Don’t waste their time

If you are a Ruby on Rails hacker living in New York and you get an email from a recruiter casting a wide net looking for talented programmers for a position on Yourass, IL to work on YourElbow v2.0 (NOT 3.0 or 1.1) – just delete the email. Do not write back the recruiter and waste their time. Don’t get upset and bad-mouth them to your friends – they are either clueless and junior in their industry or they are desperate to find somebody with a rare skillset. Shame on you for using your email that you check every 15 minutes anywhere having to do with a job ever.

Side note: I once got an email looking for a “Pearl Architect”. There are 3 bugs in that statement (perl: NOT EVEN ONCE)

Be Pleasant: Don’t Assume

I have met a lot of developers that can’t stand recruiters recently. The bad-mouthing that goes on in places like Hacker News is pretty brutal. A developer on Hackers News complaining about recruiters is very close to a college graduate complaining of a person whose entire job is to help you find a job you like. Every time you waste 30 seconds on a recruiter think “this is a good problem to have”.  When you meet a new recruiter don’t start out the relationship by telling them about the time that one recruiter lied to you and broke your heart.

Be Helpful: Think Long Term

Recruiters do provide value and a good recruiter (like a good mechanic or a person who has never tried Skittles) is rare. So think of every interaction with a recruiter as you vetting out two recruiters that at some point in your career you will use to either get a job that you really like (“I always wanted a job where Fluffikissh could be my personal assistant”) or to help out a friend who is either breaking into the industry, has moved from a new place, or is simply looking for something specific.

Don’t be a Jerk

Now is a good time to be a developer. Our entire industry, especially the value-creating role of a developer of products, is a buyer’s market. Don’t let it go to your head. You are not that special. Don’t be a jerk to a recruiter – in the same way dishonest recruiters are eventually spit out of the industry – no matter how good a hacker you are the word gets around that the freak with the poodle is hard to work with. Stay classy.

The Three Laws of Robotics (for tech recruiters)

The tech market is so hot right now that if you are a developer and can tell the difference between O(n) and your own butthole you might be getting calls from aggressive recruiters. Recently I’ve had two recruiters that I’ve never met contact friends saying that I had recommended them for a position and I’ve heard stories of continued home phone calls, at-work phone calls, and all sorts of odd LinkedIn abuse.

I’ve heard many people say that recruiters don’t have much value, but I strongly disagree – we just need some agreed-upon moral boundaries. Let’s use Asimov’s Three Laws of Robotics [If you haven’t heard of these I’ll just hold on to your geek card while you go read that…]:

Law 1: A recruiter may not injure a human being or, through inaction, allow a human being to come to harm.

Harm means:

  • wasting my time
  • affecting my reputation
  • affecting my friend’s reputation

A recruiter shouldn’t hurt me, they should only help me and themselves in that order. Long-term it can work out for both of us; don’t affect my reputation negatively and I won’t affect yours either.  Some more specific ways they can harm me:

  • Submitting my resume to anybody without talking to me
  • Saying that you know me when you don’t
  • Talking to a 3rd party about me without us knowing each other
  • Being dishonest about the positions that you have in order to have a conversation with me

Law 2: A recruiter must obey the orders given to it by human beings, except where such orders would conflict with the First Law.

If I say I am not available at this time, don’t want you to do anything on my behalf, or would like you to stop calling me and crying into the phone – I mean all these things [But if I’m honest the crying does help me sleep].

Law 3: A recruiter must protect its own existence as long as such protection does not conflict with the First or Second Laws.

Of course there is a place in this world for recruiters and they should be allowed to make a living.  There is a lot of tech-recruiter-bashing but they are valuable for a hiring manager in that:

  • they can maintain a healthy pipeline of competent people [still up to you to find the people out of this pipeline]
  • they can filter people by personality [still up to you to detect people you don’t like]
  • they at times have a very good sense of the competency of tech managers (as they see loyalty from movement)
  • they can tell you who *won’t* work [they will filter out some incompetent people and some jerks]

They are also valuable for people looking to get hired:

  • they can tell you a good deal about the internals of particular companies
  • they can provide serendipitous events like connecting you with people that you end up working with later
  • they can help you get back out there after staying with one company for an extended time by giving you a feel for the market

We can even apply the later-added-4th law to recruiters:

Law 4: A recruiter must establish its identity as a recruiter in all cases.

Recruiters go to user meetings, tech conferences, social meetups, etc. I’m not sure if recruiters have gang signs (throw up a P for placement) but you should identify yourself as a recruiter to everyone other than the tollbooth operator that you talk to while you are working.

Following these laws will go far in re-establishing the reputation of recruiters within the technology industry.  Also: free pie mailed to my house.  Contact me for more details.

Vetting specialized developer experience

Let’s say your job today is to find people to work on a project that uses a crazy-cool-man-I-can’t-wait-to-show-my-old-high-school-girlfriend technology. Since everyone wants to try something new, improve their resume architecture, and dominate buzzword bingo you find that every single person you talk to about said technology appears to have “experience” with it.

(Sidebar, the technology is: Objective-MongoNodeGitDBBoneOnClojureCoffeeQueryTalkScript5 but we’ll call it HipsterScript)

The problem is that you aren’t (yet) the guru of said technology – you only know it from the knowledge gained by your research, protoyping, and decision to use it on your project. You are looking for someone to come in who is farther along to help you kickstart the project in the right way. You want to avoid the pitfalls, do things in the right way, and can’t afford to hire someone who is only a month ahead of you with said tool.

How do you separate those with real experience from the ones that have just read “Top 21 Pitfalls of HipsterScript, “How to scale HipsterScript to web scale”, and “Is HipsterScript right for your project?” merely a month ago?

Here are some things you can do:

#1 Ask directly:

We are looking for a combination of people who are either a) skilled and will learn quickly or b) people that have actual deep experience with this technology; we think you are skilled because we are talking to you, but are trying to get a feel for the other aspect, can you tell us more about your experience with HipsterScript

Listen to their answer. Then if it still isn’t obvious ask them to categorize their previous work into the following buckets:

Academic: reading articles, watching videos, playing around in the IDE / SDKs.
Laboratory: creating a system for their personal use with said technology; making said technology print your name, etc.
Maintenance Project: They were on a project that used said technology but they might not completely understand how/why it was used.
Project: They made heavy contributions using HipsterScript and understand why it was used rather than HipsterClojure.

#2 Assess Fanboy status:

Tell me what you hate the most about HipsterScript

Tell me what you shouldn’t do with HipsterScript

Inexperience means that you haven’t screwed up enough yet.  And with technology inexperience means that you still love the technology because you haven’t seen its limits – I loved ColdFusion until I tried to support a system with heavy customization with it, I loved Active Reports until I had to modify one to do a pixel-small change, I loved serializing everything as JSON until it got big and I didn’t.  Experience means exploring to the edges of the box.  If they have only had success with a certain tool that means they haven’t had a chance to really push it.

#3 Assess ability to learn

All this said you can’t only hire gurus in certain technologies – you want skilled people who can adjust.  After all – what if you find that HipsterScript doesn’t scale once you get spikey periods of high write to read ratios in your database layer?

Assessing if someone can learn is hard because most developers are really good at learning.  So I’ve found that judging moxie is more effective – anybody will tell you that they can take on a PHP project without actually ever hacking at PHP but you want to find people that routinely do this – only success with jumping in with new technologies indicates that a person can do it again.

Ask them about an experience in which they didn’t know a technology at the beginning of the project and did at the end.  Did they need a training class, a book, a few days alone with the Internet, did they use peers/their network to speed up learning?

Also, search the edges of their toolset – ask them how they learned about tools that most developers simply pickup as they work – regular expressions, algorithms, database scaling, reporting technologies, logging tools, exception-handling.  Did they just do the minimum or do they truly understand them?  How well they know these will be a good indicator of how intentional they are with mastering things and just making it work.

Good luck with your HipsterScript project.


Proper reentry for developers

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

If you are a developer or anyone else that does high-concentration work (writer, artist, maker or orange juice) you have to reenter the world at some point after your workday is done. Those of us with families can probably all think back on a time when we were writing software like mad only to see that it was 6:30 and thus time to check-in, logout, and go play with our kids. Only for the first 30 minutes to an hour we weren’t engaged with our kids and we were impatient with our wives.

In fact I’ve met those that appear to treat the people in their lives like computers – demanding fast responses and barking instructions at them while getting annoyed at how unreliable they are. After hours of doing development work you need to make sure you separate effective methods at work and at home.

Why are we jerks? Aren’t we working to support our families? Wouldn’t we rather hang out with them all day rather than sling electrons to the highest bidder? Well I’ve had trouble with this and I think it’s because the pace of both activities are just so different you have to be intentional about ‘reentry’.


Writing software means that you are in almost complete control of what is going on – your computer hums and obeys, you listen to whatever you want, you look at whatever you want. Your software if it has bugs are your bugs so you can’t yell at anybody but the cat (side note: recommended). In short you are in charge.

In addition you can control how much you have going on, and most of us choose to dive deep into the waters of NADD and have caffeine, music, and multiple threads running while we work. If you were to watch a video of me working you would think my job was to load test Windows 7. This is a high stimulus environment and its fun and addictive. You feel powerful and respected.

Enter family: you do not control what is going on. Your music is suddenly different. You do not feel in control and can’t Alt-Tab away from a slow-loading page. If your two-year old wants to start off a conversation by saying “Daddy daddy daddy today we today we daddy daddy today at school we daddy daddy today we went daddy oh then she said that the doggie…” then you should act like a normal human being and listen.

So, my tips for proper reentry.

Enter the vacumm chamber

Twenty minutes before you get home unplug as much as you can. If you drive home don’t check your email once you walk out the door and try to listen to different music (or ideally none at all or talk radio) to separate. If you work at home close up everything like you are about to stand up but don’t walk into the rest of your home until you take a few minutes and do something physical – sit-ups, pushups, Christopher Walken-impression, hiding under your desk, etc.

Begin reentry

When you get home greet everyone and go change clothes. This signals to everyone that Mr. Rogers is awesome and his legacy lives on forever and that you are switching from one thing to another. If you work from home I’d say change something even though you are probably wearing the most comfortable thing you have on (i.e. your moo-moo). I normally either put on or take off my cape (depending on what happened during the day).

Turn off your phone; like hit the button. During the day you are probably checking your email all the time and if you are like me you use your phone for this. Guess what – you aren’t working! So don’t check it. If you must go put it somewhere that you can hear it if someone calls but not close enough to see a little light blinking telling you that you got something that doesn’t matter such as a new Twitter reply or a virus. Unless your job description involves the phrase “nuclear launch codes” or “creator of Chipotle restaurants” let’s face it – your job isn’t that important and you should enjoy your rest.

Get some perspective

On the days when you can’t get this right: you have too much to do, the kids are crazy, the significant other is crazy, everything is chaos in both parts of your life you need to gain some perspective to snap yourself back to reality. I have a few, but here is one: there are many immigrants in this country who work more hours than you, for less money, doing harder work, in a foreign land, for the sole purpose of sending money to their families who they rarely get to see.

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

How to work from home without going insane (purple monkey dishwasher)

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

So you’ve decided to work from home. As a rookie-veteran of working without a traditional office for one year I’m here to tell you that it is the greatest and worst thing that can happen to your work life – much like being transferred to a glitter-packing facility. What follows is a quick two minute guide of what you need to know before you take your pants off and turn up those old Hootie and the Blowfish albums.


Working from home completely changes your interrupt cycle. At a typical desk job you are interrupted constantly due to meetings, cake feasts, fire drills, people coming over to tell you about what the lake was like on Saturday, daydreaming about tripping said individuals, etc.

When you work at a location of your choice you can control what distracts you. If you want to work for 4 hours and not use the bathroom you can do it; if you want to work with 2 lbs of nachos taped to your face like a beard while wearing a sombrero filled with nacho cheese for snacking you can do this. Most people think they will be far more productive due to being able to control large blocks of time, but I found that the experience was quite jarring.

What you will realize is that outside of your normal distractions your body has learned to not focus for very long on anything. In my case after years of working in an environment where I was constantly interrupted I couldn’t focus on anything for more than 20-30 minutes (about the longest free period I had on average). I would internally interrupt myself constantly: twitter, facebook, doodling, trying to clean nachos that fell onto the keyboard from my nacho beard, calling the manufacturer of said keyboard after the ‘s’ key stopped working, writing a strongly-worded letter calling the manufacturer a bunch of “lazy jackae”, picketing outside their headquarters, etc. Typical stuff.

When you work in an office you don’t allow yourself to constantly be interrupted internally – you simply can’t watch every video that looks funny, you can’t read each article on The Morning News everyday, you can’t keep up with Hacker News like you think karma points are worth money.

The way to get over this is pretty simple – practice. I for one spent about a month making love to The Pomodoro Technique (meta: learning to make love using this technique is experimental and not recommended by most doctors) but it worked quite well for me in training my brain to recognize interruption events and stop them. Now I can go over an hour without eating a nacho.


When you have a ‘bad’ day at a normal job you still feel a sense of accomplishment – you drove to work, you drank some coffee, you attended a few meetings, you chatted with some co-workers about how little progress you were making – you did some concrete tasks.

Working from home alone you have days that you feel like you get *nothing* done. As soon as you get going you are interrupted, you spend a few hours working on something that you later scrap and start over, you can’t figure something out. These days happen in an office but when you are alone with them they create extreme emotions. The thing you need to remember is that one day like this can be followed by a sugar-rush Work-From-Home monster day: a day in which you get as much done in a day as you remember getting done in a week at BigCorp. An entire feature imagined, mocked up, coded, then just plain mocked, debugged, re-tooled, polished, stabilized, and then shipped.

Crippling Depression – ride it like a wave

If you work at home for long enough away from other real people you will be surprised how much you will miss the interaction. The annoying “did you see the game?” water cooler talk and “OMG Its Friday!!” chit-chat that used to make you want to hide in a conference room is actually a pretty effective social convention to avoid The Question: “Why am I working right now when I could be doing XYZ?”.

While working you will have many moments when you will think things like:

  • I work from home now, I could go take a walk – right now!
  • I work from home now, I could go eat some yogurt – right now!
  • I work from home now, I could ride a bike – right now!
  • I work from home now, I could watch The Wire – right now!

In the spring these thoughts are tough and you will stare out the window and cry a single slowly descending tear before turning back to your semi-colon delimited job and push through. In a normal office you don’t think about the difference between working and playing hooky because the threat of getting fired for playing Grand Theft Auto III at your desk is very real.

In addition you will need to take steps to keep in touch with others in your field less you become a Work-From-Home monster like many that I have met. Signs you are becoming cripplingly depressed without realizing it from working from home:

  • You see a former co-worker and talk for 20 more minutes than would be normal. Even after they have gotten up and left the stall you continue.
  • You are way too active on twitter, facebook, g+, etc. and constantly send videos to your friends like you work at Tosh.0.
  • You watch TV instead of listening to music and you talk back to the characters.  You think you hear Ferb talk back to you.
  • You drink Diet Pepsi just to let the pain make sure you can still feel something.

If any of these things happen put some pants on and go to a coffeeshop.

The greatest thing about working from home is your kids. They are also the worst thing.

This might be a personal problem as:

  • I work on the same floor of the house as my kids typically play.
  • My wife currently stays at home with the kids.
  • Before I worked from home I never listened to music while working (due to a deep-seated and irrational fear of being caught singing out loud a Jon Secada song)

I was very stressed with the noise of my kids and the general stress that kids cause when you do concentration-based work. I felt like a bad Dad because I would have to tell them 8 times that I wasn’t “done yet” but was just coming out to go to the bathroom, refill nachos, etc.

Once I realized that working at home meant more time with my kids I just mentally substituted the time spent in the car with time on the floor with them, and my stress melted away awkwardly like reheated queso.

Less informal communication means more organization

I’m an organic and an improviser. I’m not naturally organized. But working from home in the absence of informal methods of communication means that you need to have prepared the following:

  • a to-do list that you can share (workflowy, RTM, etc.) in less than one minute
  • a general daily plan that you can recite at beginning, middle, end of day.
  • a weekly plan of what you want to get done and what you did last week
  • a plan for when you will meet with the client, boss, parole officer next

Enjoy it

I know that at some point my work from home life will be put on hold or go away. And I decided when I started that I wanted to do a good job and to enjoy it enough that when I looked back I wouldn’t say that I regretted much. To remind myself of this I wrote “San Diego means a whale’s vagina” on my whiteboard (since this kinda isn’t the sort of thing you can do in a normal office).

So go – enjoy it. And please just go take a shower.

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

Great discussion, as always, on Hacker News.

Republished on Lifehacker.