Archive for 2013

The past 30 days

Easily dissuaded

As an entrepreneur, giving up when you hear the word “No” means you were never an entrepreneur to begin with.

I have perfected how to procrastinate

The problem with being a perfectionist is not that you want it perfect, but that you hardly ever get going because you want it perfect from beginning to end.

Your perfectionism is the worst form of procrastination known.

When in room

The code that launched Facebook, if examined by any engineer at that company today, would raise howls of laughter.

The technology and code that “built Rome” is not the technology and code that maintains Rome all through its lifecycle.

You are attacked by a GNU

> Go through door.

I do not understand

> Enter door.

If you want to go thru the door you should say so.

Go through door.

I do not understand “go through door.”

Go thru door.

You go through the door in to the next room.

In a GUI the designer of the GUI sets the vocabulary that will be used to interact with the software.

We have evolved that vocabulary over many years.

Each new app refines and evolves that vocabulary a little more, e.g. nobody thought to do “pull down to refresh” a decade ago until we had the affordance that a ubiquitous touch screen gives us.

Now, pulling down to refresh, swiping left and right, and pinch zooming are second nature.

When you switch to a chat interface, that vocabulary of interaction design is removed.

And all that remains is a boundless dictionary of words, often misspelled by both the users and the designers, and user frustration once they proceed beyond simple interaction.

Built to throwaway

I tell every entrepreneur this; “If I can build your SaaS product in a spreadsheet, you don’t need a technical cofounder (right now), you need a designer.”

It’s not just navel gazing

You will insist that your technical co-founder put the roof on now before the foundation concrete has cured and your developer will seem to procrastinate on putting the roof on.

“How hard can it be to put the roof on? Maybe I should talk to a different developer?”

And that’s okay, because you need to build something that fails at least once, and then contemplate precisely why it failed.

Do you want ninjas? Because this is how you get ninjas

Your technical co-founder will tell you things you don’t understand because they don’t want you to understand them.

And that’s okay, because you need to learn how to see through the smokescreens people create.

And technical people are masters of creating a smokescreen.

Ooh! Shiny!

Never let your personal preference, or the fact you are dazzled by a shiny piece of technology, distract you from what your customer wants.

Cost estimates

The one feature I wish Outlook’s calendar and Google’s calendar offered was the ability to display a dollar amount of how much the meeting is going to cost which is calculated from all of the meeting participants’ salaries.

Properly Peeved

One of my biggest pet peeves?

When someone reaches for their smartphone to check their messages or emails in the middle of a conversation you are fully engaged with, and the person with the phone responds “Oh, keep talking… I’m listening…” and they trail off.

This has to be one of the most terribly inappropriate behaviours in modern society.
I refused to let the CEO of a client company in to decision making meetings (are there any other kinds of meetings you should attend?) and I refused to go to lunch with him after the first few weeks of working with him, simply because he could not go a few minutes without checking his phone.

The CEO would swing by for a status update or quick chat whilst I am deep in to my work and within a minute he would have his phone out, checking his messages or say “Hang on, I just need to take this” and then spend 15 or more minutes chatting with whoever it was on the other end of the line.

Suffice to say, I didn’t work with that client company for very long.

Vendors, or at least potential vendors, have also done this very same thing during sales pitch meetings. At the end of the pitch they remained very much “potential vendors.” No sale.

You cannot command respect when you aren’t fully engaged.

Wanting the D

In product development the answer is never “D.”

Product development isn’t a series of check boxes with one definitive answer from a multiple choice test.

There’s ambiguity.

There’s trade-offs.

There’s “right choice given the data we have now” selections and “we just need to choose something to move forward” decisions.

Product development does not look like a quiz you took in school.

You are in for an unpleasant surprise if you expect it will.

Rejected by your closest allies

You remember the first time you asked someone for money when you were trying to raise for your first start-up?

Remember how much that rejection stung because they didn’t think your idea was valuable?

As an entrepreneur-in-residence, with some experience behind you, maybe a couple of successes, imagine the pressure to “get it right” when you approach VCs you have been seen almost every day for the past six months turn you down.

Don’t approach the offer of an EIR position lightly.

Wants and desires

You can build an ugly product at the beginning.

You can throw in every neat feature you think your customer might want.

But when your customer shows up, they’re the ones that dictate what features they want and use.

6 ways to find software developers

I was asked by a contact of mine on LinkedIn today whether I could recommend a recruitment company that can source software developers.

Hi Justin, is there any recruiting company that you recommend for a company looking to hire developers?

Whilst I have worked with two or three great individual recruiters over the years, actual companies I have never had any luck with; from both sides of the fence.

Unfortunately all three recruiters have fallen off my radar in the past few years and I think two of them have left the field entirely.

Whilst there is a definite pain point here for companies trying to hire, and many start-ups and headhunting agencies are attempting to re-write the rules to locate and hire engineers.

The simple fact of the matter is, most engineers worth hiring aren’t listening to those messages. Even the mediocre and average engineers aren’t listening.

The best kept secret amongst engineers of all stripes is that there is a secret engineers club, and the only people invited are other engineers.

Engineers with even a weak network have no trouble wooing and recruiting other engineers.

Or at least the wooing part, there is a huge disconnect unfortunately between the hand-off from the engineers and the people who have the power to do the hiring.

Very few companies do it right and most companies are shamefully not interested in doing it right at all.

Anthony (the original question asker) has a doctorate in a hard-science field, he knows this innately.

How many times has he been approached by people outside of his field who cannot communicate at his level but want to sell him on what they have for sale?

One of the many reasons I complain about recruiters, head-hunters and “talent acquisition”-types is due to how they approach people using a scatter-shot, least effort approach.

Case in point, today I have received three voicemails, from three different recruiters, at three different agencies and they are all the same empty, no details message: “Hey Justin, this is Derp Herpington from Derp’s Recruitment Agency, I found your resume on-line and were wondering if you were open to new opportunities. Looking at your resume I’ve got a great position in your area that would be perfect for you. Give me a call back and we can discuss it.”

And the first thing I do is delete the voicemail because no fucks were given that day.

This is the follow-up email I got a few hours later from the same recruiter:

“I had the opportunity to read through your online resume this evening, & I wanted to reach out regarding some open career opportunities that I believe you’d excel in. If you’re currently on the job market please reply or contact me directly at 310-341-XXXX… I’ll be happy to present the details. Have a great night & hope to hear from you soon!”

I don’t know of any engineer, unless they were desperately out of work,  that would respond to that kind of outreach. And I can think of no engineer, especially one in California, worth their job title to ever be that desperate.

There’s nothing there to go on.

It’s just voicemail and email spam.

Do you honestly believe you could ever sell your product to a customer or business if you approached them the same way that recruiter is?

Here’s another problem with recruiting today, this is from one of the many mindless emails that are spat out from some CRM system and end up in engineer’s inboxes all over the U.S. on a daily basis:

iOS Developer

If you are an iOS Developer with 2+ years of iOS Development for iPads/iPhone apps – Read on!

Exciting advertising agency is looking for an iOS Developer to serve interactive marketing clients by analyzing, designing, developing, building and documenting iOS applications and solutions including iPhone and IPad applications. The person in this role will be working in a client-driven, dynamic environment, and will work side-by-side with technical leads, project managers, creative designers and information architect professionals.

What you will be doing:
* Creating on-time IPhone and iPad apps
* Participating in and where appropriate, leading iOS related software development projects.
* Providing problem resolution and insight from a technical perspective
* Performing well under tight schedules and communicating effectively with team
* Adhering to/helping to develop department and company-wide application development standards, guidelines and best practices
* Ability to add insight to and execute all aspects of the development cycle including but not limited to: UEX, creative interpretation framework and architecture design, and coding.

What skills are needed to apply:
* 2+ years of iOS development experience (iPhone/iPad)
* Object Oriented Programming, with XCode, UIKit, latest SDK versions, Cocoa Touch and Apple HIG
* Understanding and experience querying against relational databases
* Experience working XML/JSON and familiarity with REST/SOAP methodologies
* Experience in Apple Push Notification Services, Foundation Framework and Memory Management
* Experience in provisioning and publishing apps in iTunes/App Store with working knowledge of Apple Publishing Procedures and App review Process
* Familiarity with using server side services/web services; Maps, GPS services for iOS apps
* Having strong knowledge/experience in iOS domain

What’s in it for you:

* Excellent benefits
* Working on an exciting brand with cutting edge technology

Tell me where, in that laundry list of requirements and must haves, the precise benefits of why anyone would even consider this drivel?

I paid more attention to the WoW “gold seller” spam I received right around the same time.

There’s nothing there in the email that piques the interest. The email contains nothing other than what they want from their hire.

There’s no location.

There’s no definitive work or project that will be done.

There’s no compensation.

There’s no run down of “what do I get out of it?”

The entire email is one-sided.

It’s utterly vacuous and devoid of merit.

The text was obviously thrown together by a non-engineer, possibly from some bullet points written out by an actual engineer, and then doctored up with idiotic biz speak and several stress level inducing words and phrases.

This is the kind of crap that make engineers develop nervous ticks.

Oh, and not want to work for the company.

Or give a reply.

Or even be contacted by them ever again.

Just as an aside, here’s my re-write of the above ad, with details thrown in:

Who. We’re an advertising agency and we need to hire an experienced junior to mid-level iOS developer. You need to know the essentials of iOS development and if you have done iOS development you know what those are. Our iOS app communicates with a server so if you are familiar with REST or JSON that’s a huge bonus**

What. We’re offering a market rate compensation package in the $60K to $75K range, the exact amount depending on how many iOS apps you’ve had a hand in releasing. Our company also offers a matching 401K, basic dental and full medical with a small co-pay for you and your family.

Where. Our agency is located in the downtown El Segundo area, there’s two Starbucks within a block so you stay well caffeinated and the beach is just a few minutes due North. We hang out at the Kettle on a Friday for our informal team lunch.

Why. Right now we’re building a super-secret app for one of our clients that uses maps and GPS to locate people who’ve potentially won a Publishers clearing house check and pinpoints them on the map so the camera crew knows where to go to catch them at their most embarrassing moment.

**But if you don’t, it’s no big deal, you were able to figure out Objective-C and how to debug in XCode so those basic technologies you can pick up in an hour or two.

Maybe it’s not great, but it’s more human, gives more details, lets you know the essentials and was put together in about a minute which is probably twice as much effort as the first email was.

And those guys have the audacity to call themselves an “exciting advertising agency.”

They probably spent longer agonising over whether the C in XCode is capitalised than they did considering who they are trying to actually reach out too.

Engineers are data-driven entities, their resumes exude technical details and jargon but only because they have been taught that lazy recruiters and HR staff keyword filter to see if they know “C++” or “iOS 5.0” or SDLC.

If you don’t supply engineers with the information they need they won’t give two figs for you or what you’re selling.

Or at least, some of them might but they’re gullible and/or desperate and so you don’t have to pay market rate.

But at the end of it all, engineers are still human.

Except for that guy who used to share my office, I’m not sure about him, he smelled funky.

I could pull up hundreds of these idiotic, lowest effort emails as examples, this isn’t even the worst of them. At least this one had a reasonably short laundry list of requirements.

There are emails floating around that look like long-form sales letters with varying font sizes, yellow highlighter and all sorts of other terrible gimmicks all but guaranteed to consign the email to a quick and early death.

There’s a few sure-fire ways to hire engineers, and not one of them involves dealing with a recruitment company because the moment you decide to outsource your recruiting you’ve pretty much lost the game.

Sure, you can get a few good hires if you’re patient and have deep pockets, but generally, you’ll be playing catch-up to the pro-active people who aren’t using external recruiters.

Of all the engineers that I hired at the previous start-up I worked at not one of them came through a recruiter. They were all sourced directly through these methods and at a very high rate of recruitment, i.e. as fast we needed them.

All of the hires were great engineers and rock-solid performers and not one of them has been fired or let go from the company.

So how do we do that kind of recruiting?

I’ll give you seven methods for free, but only because you have that cool engineering doctorate that I am insanely jealous of.

First method:
Use your current engineers to locate and woo other engineers.

They don’t have to actively recruit their past colleagues or friends, and it is best if they don’t actually because that will just make them feel uncomfortable when they recommend their shit hot programmer buddy who ends up not getting the job because your CTO didn’t like the guy.

So who do they talk to if not their friends and past colleagues?

  1. On meetup.com there are hundreds of events taking place each month.
  2. Find ones that attract the engineers, which are usually the developer centric ones so search for events with “programmer” or “developer” in the title and description.
  3. Stay away from “happy hour” type events unless you want to wait several months and just have stressed out engineers who spent an evening staring in to the distance.
  4. Once you have identified the events, have your engineers go there
  5. The engineers should be in groups of two at most
  6. Engineers should go as themselves, not as representatives of your company, e.g. no company t-shirts being worn unless they happen to actually be wearing them on a daily basis because they haven’t done laundry.
  7. Pay for them to go. Put money in their pocket to buy beer, food, whatever.
  8. Take them there if you have.
  9. Make sure they have their laptop or tablet with cool stuff to show off and talk about.
  10. You can hold their hand the first couple of events if they aren’t comfortable but after that, set them loose on their own.
  11. Don’t send a gaggle of engineers. Too many people from your company all hanging out together just makes it look like a bunch of girls at the nightclub dancing around their handbags. At the end of the night they all go home and complain that no guys talked to them. Of course nobody talked to them! All anybody else saw was a wall of unapproachable backs.
  12. Have them become a familiar face at all the regular events.
  13. Don’t hang around with them if you are in attendance. If you’re not an engineer then you’re the embarrassing parent-in-tow that is going to say something about red ocean cloud computing and disruption of mauve databases. http://dilbert.com/strips/comic/1995-11-17/
  14. It is okay if they didn’t find anybody they thought might be worth talking to. There’s always next time. And the time after that. Depending on the event and the makeup of the people attending it might take a few events to get going.
  15. Follow-up with your engineers immediately after the event. Find out who they talked to, if there should be any follow-up, and so forth. This is where you take over and steer because engineers are notoriously bad at following-up on possible contacts — not because they’re lazy but because it makes them feel uncomfortable in the same way you’ll be uncomfortable being asked to re-write a ten year old 5,000 line single source file Perl script that handles all of the daily credit card transactions for your company.

Second method:
Start your own developer centric regular, repeating event and promote and market the hell out of it directly to engineers who have jobs. That doesn’t mean you don’t allow in students or people without jobs or non-engineers, but by promoting it to engineers, as an engineering focused event.

  1. Make the event engineering focused.
  2. The engineer focused event is also a signalling message to engineers that they are the focus.
  3. Avoid the happy hour style if you can, they have a very low return on investment – the investment being time, not money.
  4. Hold the event somewhere neutral, not at your corporate office space. Other companies get unjustifiably nervous when their engineers visit other companies. Especially if the company the engineer is visiting has better facilities, nicer chairs and gee-whiz technology to work on.
  5. Put the event in the same location every month. Don’t move it around. I still get calls and emails about events I started over a decade ago that I haven’t been involved with for five or more years.
  6. Run multiple events in the same month. I had at one point four separate events I was directly organising and marshalling. Those events lead to some great engineering hires and also about $2.5M in work.
  7. Follow-up with engineers who attended your previous events and remind them to come on out again because engineers are notoriously bad at remembering that an event is taking place.

Third method:
Attend a hackathon.

  1. Go with a mission. And I’ll expand on this…
  2. Go with stuff to give away to one or more of the teams. Free iPad minis? Hell yeah!
  3. Go with stuff to give away to lots of teams. Free Starbucks gift cards? Hell yeah!
  4. Take a stack of soft drinks or hot drinks in Thermos flasks and put them out *AFTER* all of the other drinks have been consumed.
    • Here’s the thing with a hackathon: They attract bizdev and ideas people who descend like locusts on the food and beverage bar and then bugger off as the evening wears on.
    • At midnight, the teams left cranking out art and code are looking for a distraction.
    • You can be that person.
    • I know this works, I’ve made two hires for other companies at a hackathon that I can directly attribute to showing up with hot drinks and soft drinks in the wee hours of the morning.
    • I most likely never would have had the opportunity to talk to the people I did without that singular human act.
  5. Talk to every team that presented. Talk to them for as long you can.
  6. Go for the entire event.
    • Sure, that’s hard, and you need to be home with your g/f, and you have to take an early morning call on Monday so you want to be on your game, and 48 hours in a loud hacker space doesn’t sound like your idea of fun.
    • But guess what, you want to hire the people who think that is fun?
    • That’s where they are at 3AM in the morning cranking out code and art and websites.
    • It’s all nice that people show up in the last hour or two of the hackathon to schmooze with anybody that is still standing but when you’re talking to the engineer who is leaning at a 15 degree angle with a dazed, fuzzy expression on their face, behind the glazed over eyes they are half-listening to your pitch and thinking “That’s nice but I was here at 5AM falling asleep on my keyboard and I don’t remember seeing you about. You are *NOT* cool.”
    • Sure I’ll take your business card.
    • Uh, you know what, I’m all out myself, but I’ll be sure to call you after I’ve gone home and taken a nap.
  7. This one is tricky. On the one hand it’s a hackathon and more often than not people are there to pitch ideas they hope will be implemented in to a working prototype by the end of the event and on the other hand you don’t want to be “just another guy with an idea who just needs to find a programmer.”
    • So you go either as a legitimate hackathon team looking for people to join you, but don’t be surprised if nobody does or you go as someone willing to help out other teams in whatever role they need.
    • Don’t pigeonhole yourself as “ideas guy” or “bizdev guy” or “project manager” because nobody needs or wants that.
    • If you can use Illustrator, then hey that’s great! For this weekend you’re a UI designer.
    • Can do basic HTML and CSS? Awesome! Someone, somewhere will find work for you.
  8. Your mission is: Do your thing and maybe not find anybody to work with you. Or do someone else’s thing and be guaranteed to find someone who will want to work with you.
    • The latter is preferable, and the reason is, you’re seen to be contributing to somebody’s idea, not just pushing your own agenda.
    • You get to schmooze through the 48 hours by wandering around and talking to people and asking about their cool stuff.
    • You’re not one of those faces that just showed up for the end when everybody was dead on their feet and only thinking about their bed.
  9. Follow-up (several times) because tired hackathon engineers are notoriously bad at…

 

Forth method:
Write.

  1. Create an engineering focused website that disseminates information useful to engineers.
  2. Or write a book.
  3. Get known, get talked about.
  4. Ask Joel Spolsky if this works.
  5. This is a slow burn approach with a continuous and ongoing cycle to the process.
  6. You can always hire a competent technical writer to do this for you.
  7. If you’re going the website route dig in to the hard-core engineering subjects that you are trying to hire for, e.g. iOS focus if you are hiring for iOS people, bleeding edge web technologies if you are building a website.
  8. Have a way for engineers to contact you directly. You. Directly. Not some anonymous email address. You. The contact message goes from their fingertips. Directly. To. You.
  9. I cannot stress point #8 strongly enough.
  10. Have a way for engineers to engage with you through a newsletter.
  11. Forget fucking Facebook or other social media twaddle.
  12. Not one engineer who values their time will give two flying F’s about those websites.
    • Don’t waste your time connecting your engineering website to a “fan page.”
    • The only person who is going to “LIKE” your Facebook status updates is that one creepy girl you met at that hackathon one time.
    • Oh, and some guy in another part of the world hoping you will employ him so he can get a work visa.

Fifth method:
Speak.

  1. At engineering focused conferences.
  2. On engineering focused topics.
  3. Show them the cool stuff you built.
  4. Stick around and answer questions until the last person leaves.
  5. Adjourn to the bar and or coffee area and continue the discussion.
  6. Find the bar where the engineers go and hang out there and buy some drinks every now and then.
  7. Specifically invite engineers to the bar for a drink.
  8. Follow-up because engineers are notoriously bad…

Sixth method:
Guest lecture at every college that will let you. You should probably ask them first, but still…

  1. Make friends with the teachers and professors.
  2. Speak to engineering focused classes.
  3. About… well, about anything actually. I find career focused talks along the lines of “How do I get a job doing…?” work really well.
  4. Bring cheap, non-marketing, non-company chotkes to give away. I used to write a book review column.
    • I would gather up the dozens of books I was sent each month by the publishers, drop the books in a box, and then take them to the guest lectures to give away as prizes for some achievement.
    • They weren’t just “take them if you want them.” The books had to be earned.
    • Earning something attaches value to it. I’d stick a business card in each one.
  5. Follow-up because engineering students are notorious…

Do these methods work?

Yes, I’ve been able to hire amazing engineers over the years using all of these methods and more besides.

I built an entire video game company around a single selling point: “Every engineer or artist that works for us gets two 30″ LCD monitors on their desk.”

Whenever I brought in potential new hires for an interview I made sure that they got to see all the desks with the big fancy monitors.

I only ever failed at hiring one engineer in a seven year period out of all the people I interviewed. He had an offer from Google and an offer from me and I told him I would physically kick his arse if he accepted my offer and turned down Google.

You have to approach hiring competent people, whether they be engineers or not the same way you approach selling to business customers.

It’s a long, drawn out process that requires multiple points of contact and multiple message distribution channels.

It is not a onetime “let’s hire somebody” event.

It’s marketing and salesmanship.

And those tasks are ongoing throughout the lifecycle of your business.

It’s marketing, but it’s marketing to a different kind of customer than what you market your products to.

It’s sales, and what you’re selling is your company culture.

Here’s a  stupid limiting belief that everyone** has: An engineer applies to a company but the company is not hiring at that time and promises to keep the resume on file. And the engineer never ever, not in their entire lifetime, applies to that company ever again.

Because their resume… “is on file.”

That’s like going to the grocery store for milk, and when you get there, the store is out of milk.

So you leave empty handed, and you go to the 7-11 that is two blocks further away, and you get the gallon of milk you so desired even if isn’t the freshest and you had to stand around for eight minutes because the old lady in front of you insisted on shaking and tapping each gallon carton to ensure its freshness.

And from that day forth you always go to the 7-11 that is two blocks further away to get your milk, and each time you stand behind that same lady who is looking for the freshest milk right at the back of the cooler because the grocery store was out of milk the last time you were there.

And if you told that to someone they would think you were fucking insane.

And yeah, sometimes putting someone’s resume on file is a polite way of saying “I think you’re useless and you have the programming and resume writing skills of a child, please never darken our email servers again.” But that’s the way the world is.

They apply.

They never apply again.

Your job, once you’ve got a resume is to get that person connected on LinkedIn and keep track of them through their entire career because one day…

Okay, let’s back up a bit.

You are ideally looking for someone who is well-versed in the arts of software development and specifically in your unique brand of software development using the FizzBuzz Methodology with at least five years under their belt.

An aspiring engineer applies to your company, and they don’t know the full software development life cycle of FizzBuzz, they’ve worked with it for a couple of months on an internship they did, but nothing more than that.

They’ve got a few years of other stuff they did that is unrelated but still in the field of software development.

You say “Hey, thanks for applying, it was great talking to you, we wish you well in your job search, but at this time… adios!” because they don’t quite fit your ideal of what you’re looking for.

Our poor engineer goes away heartbroken because he really thought he was in a with a shot at working for your company.

All your engineers have dual 30” LCD monitors on their desks for chrissakes! Who wouldn’t want that!?!

For the next five years our hypothetical non-FizzBuzz engineer spends three years learning all about FizzBuzz at the feet of a master FizzBuzzer, shipping large, horizontally scalable systems on full FizzBuzz technology stacks, writing a number of white papers on the subject, speaking at conferences, really becoming an all round knowledgeable practitioner of FizzBuzz.

And your HR person bumps in to him at one of those conferences and thinks to herself “This cookie is a smart cookie, but we cannot hire him, because when we spoke to him five years ago he knew nothing about our particular usage of FizzBuzz technology and had only a few months of internship. And we have his resume on file and that’s what it says about him.”

And as a rational person you would think such a response would also be considered insane.

Yet…

Companies do this all the goddamn time!

People, unlike cars and computers, actually get faster and better and more knowledgeable with time, not worse.

The engineer you turned down two years ago because he wasn’t good enough, he just acquired two more years’ worth of experience and skills and knowledge and built a few hundred thousand dollars of value for some other company.

They trained him for you… please take advantage of their generosity.

** Except me.

And finally, the seventh method:
Hire me as a consultant CTO for a year or so and I can build a team of engineers for you that can do precisely what you need. 🙂

Lousy aim

You cannot market your SaaS, product, service, app or website to everyone.

And you shouldn’t even try.

Your marketing, especially at the start, should be narrowly focused.

So narrow that if your marketing were a stone you had to throw at your target person, and every person on Earth gathered together in the same location, you stand a reasonably good chance of missing them.

It might be a bad metaphor, but it made you stop and think.

Which is precisely what you should be doing with your marketing.

Identify the exact person you want to market too.

Address them personally as though the message was for them and only them, hand-delivered by a professionally attired courier.

Make your marketing about that.

Older than 30 days

Pin It on Pinterest