Hacking .NET and Startups

Live by “Fuck you, pay me;” Die by “Fuck you, pay me”

March 25, 2013 18:57 by Aaronontheweb in Development Teams, Hiring, Startup // Tags: , // Comments (0)

I came across a blog post by Michael Halligan on Hacker News last week entitled “Benefits matter, or why I won’t work for your YCombinator start-up.” As a fledging entrepreneur trying to attract senior engineering talent to my startup, his post bothered me immensely. I spent about a week mulling it over before I decided to write this.

Michael’s attitude in the post is abrasive, needlessly cynical, and mercenary, but well-argued on its pure economic merits. He describes himself on his own blog thusly:

I'm just this guy who used to enjoy tech, now I would rather build bicycles. I still work in the tech industry, for the money, but I no longer call myself a "technologist".

And he ends his blog post with this call to action for other senior technologists like himself:

To all of my colleagues with whom I have been in the trenches, please repeat after me, "Fuck you, pay me."

This paints a picture of someone who’s been burned before by startup flameouts; who’s put in 100 hour weeks without seeing any life-changing financial benefit; who has real financial obligations like children to put through school; and lastly, a little burned out with his career.

It wouldn’t have bothered me so much were it not for the boorish cheerleading from scores of Hacker News commenters, which indicated to me that this attitude may be more widely held than I would have believed (more on that in a second.)

I really appreciate Michael being so honest about it, because I suspect that this is an attitude that neither he nor any of the supportive Hacker News commenters have ever had the balls to actually express in a verbal salary negotiation with a flesh-and-blood human being like me sitting across the table.

What bothers me about Michael’s post and the Hacker News comments is the cynical view of founders and employers; it dehumanizes them to self-interested profiteers who don’t give a shit about the people who work for them. And the attitude I grok from Michael’s post is “developers: don’t give a shit about [your employer / the founders] either – tell them ‘fuck you, pay me.’”

Let me show you why this bothers me. Here is my honest to God list of things I care about with respect to MarkedUp in order of importance:

1. My personal integrity – because startups are not things of life or death themselves, but integrity is one of the few character traits that outlives the man or woman.

2. The financial health of the company – because a failing company isn’t in a position to serve anyone well, whether they be founders, customers, employees, or investors.

3. The well-being of MarkedUp’s employees – because they are present and future of the business, and I’m going to spend more time with them than my own family.

4. The experience of our customers – because our customers trust us with important information they need to run their own businesses, and we are our own customer.

5. My personal well-being – because I have I dreams of my own but I know that getting items 1-4 right on this list leads to the realization of #5.

I’m sure that if Michael or any of the Hacker News commenters read this list they’d scream “bullshit!”

I treat the growth and well-being of my employees as a non-negotiable requirement for my own happiness and satisfaction, but that conflicts with the Hacker News worldview of the VC-land profiteering dipshit douchebag 27 year old founder (I am, in fact, 27.)

I hire people whom I want to invest in – sure, like any startup we have short-term needs that have to be filled. But the long term health of any business that’s being built to last depends on a high trust culture – where employers and employees interdepend on each other.

I’d crawl over glass for the full time people on my team who take work off of my plate and enable the business to grow – I need them. They support me, so I’d better damn well support them when they need it. I’m making sure they get important benefits like healthcare and the best compensation that I can afford – everything within the bounds of what’s economically feasible for an early stage company of our size and funding level.

I’m invested in MarkedUp’s employees – and when we’re not able to support an employee’s needs I feel like I’ve personally failed as a manager and employer.

So this brings me back to “Fuck you, pay me.” I would never hire anyone who doesn’t want to invest in our product, the other people on the team, and in the company as a whole – because I can’t depend on them to be there for me and everyone else when things aren’t going perfectly. They’d be the first to bounce and the first ones to put the screws on me and their teammates in a bind. I’d never be able to make a person with this attitude happy, so I’d never try.

“Fuck you, pay me” is a self-fulfilling prophecy that will doom you to work for exactly the sort of employers this attitude is supposed to save you from – the kind who won’t invest in you and don’t care about you. When you open the conversation with an employer with “fuck you, pay me” you’re telling them that you don’t give a shit about the product or people, so why should they care about your well being again?

You’ll be passed over for every promotion, every project of any import, any conference or occasional perk, and your opinion will not be solicited or valued on anything that doesn’t pertain strictly to your role. Your teammates will resent you for being unavailable and disinterested. Your managers and executives will treat you with all of the mercenary courtesy and cynicism with which you’ve treated them.

A job is a lot more than a salary and benefits – it’s about enabling people to be happy, employers and employees both. Anyone who comes to work with the attitude of “fuck you, pay me” is miserable by default, an assertion you can validate with a single read over the front page of Michael’s blog. There is little I can do as an employer for someone who is innately miserable. And that makes me sad and frustrated.

Throughout the course of your career you will inevitably deal with shithead employers who don’t appreciate you – quit and move on. Don’t make the situation worse by deciding not to appreciate all employers regardless of who they are – you’ll just alienate the ones who actually want to help you even if they can’t match another employment offer you have on the table.

If money and benefits are literally the only thing that matters to an employee, then they’re worse than the self-interested greedy founder stereotype described earlier. At least the greedy self-interested founders had the balls to take some risks.

So look at your employment opportunities this way – there’s a lot more to working somewhere than just the tangibles. That’s why developers, sales people, and marketers regularly take below market salaries to work at startups – because they get the rare chance to shape the work environment into one that will make them happy.

Happiness is what matters, and benefits + salary shouldn’t be the only factor at the expense of culture, colleagues, creativity, and self-ownership.

If you enjoyed this post, make sure you subscribe to my RSS feed!

Thoughts on Recruiting Developers at Early Stage Startups: Determining Who’s Right for Your Company

I posted a little while ago about the job market for technical talent at early stage companies, and I promised a follow-up post on what you should look for in a developer when your company is at a critical, early stage. This is that follow-up ;)

Our company, MarkedUp, is still in the process of building out its early engineering team; however, we’ve had some success in finding the right type of people we want to work with – a process that wasn’t quick or easy, but will pay off massively in the long run.

When it comes to hiring developers for your early stage startup, here are the questions you need to think about:

1. What are you optimizing for?

At this stage in the evolution of MarkedUp, we optimize for changeability and reliability – the ability to change things on the fly quickly and do it in a way that doesn’t interrupt the service of our customers.

This means that we have to recruit people who are architecturally sound with .NET, are able to learn new technologies quickly, and are good at socializing / articulating problems and design considerations to the team.

When we evaluate a developer for who’s considering joining our team, we look to make sure that they have experience with multiple technology stacks, have a well-written technical blog or are at least conversant in their respective technology areas, are versed in design patterns and can explain their architectural thought process on-demand, and have well-defined goals with regard to how they want to grow and develop.

For your company, you might need to optimize your engineering team differently – if you’re building a big consumer app, you might need to optimize for developers who have a good balance of front-end and back-end skills initially.

Make a deliberate choice about what your engineering priorities are and let that set the top of the spec for your recruiting.

2. Do you need soldiers or chiefs?

One mistake a lot of startups make is the seniority issue: hiring people who are too senior or not senior enough.

People who are too senior might demand a lot more equity / money / power / titles early on in the life of your company, which creates problems if you ever need to bring in even more senior people over them if you don’t manage it correctly. Additionally, senior developers bring a career’s worth of habits and experience into your company – which isn’t always necessarily good.

Conversely, evaluating a fresh-out-of-college CS grad to CTO isn’t a great decision either sometimes – they might not even know just how horribly they’re screwing up your company’s technology until years after the fact.

On top of the issue of experience, you also have to consider the person’s ambitions – do they want to be an executive in the company one day and have people reporting to them? Are they even capable of doing that one day?

Again, make a decision: do you need people with experience and authority who will lead the engineering team or do you need people who just want to do the right thing and make a difference, but don’t yet want to be involved in management? Recruit accordingly.

3. Can your company afford to train developers on your technology stack?

Do you need people who’ve been working on a single technology for 5+ years, or just people who are smart and want to learn?

If you’re a really early stage company, then you don’t have the luxury of time or money to invest much into a new employee who is totally unfamiliar with your chosen technology stack.

If you have the time and money to invest into training good employees, do it.

Investing into training will widen the pool of acceptable applicants dramatically because you can tailor your recruiting process to target a smaller number of things. Be realistic about your resources and the availability of your existing engineers to train the new folks, and then decide accordingly.

4. What’s important for your engineering culture?

You know what makes a huge difference in MarkedUp’s culture? Being passionate about development – we like people who have pet projects in their spare time; take the time to learn new languages and platforms; and love to talk about what they’ve done and what they’re doing.

We build products for developers – passion for development makes us more relatable to our average customer, who is typically someone building a Windows 8 application in their spare time because they love doing it.

Your company may be different – you may want to recruit people who are really into music if you’re building a media-oriented company, or people who are very algorithm / math-oriented if you’re doing a lot of work in a field like NLP or predictive modeling. Maybe you want to run a really structured environment and want people who are going to be in the office every day.

Company culture is ultimately something that will take a life of its own, organically, but during the formational stages you have a massive amount of influence over it as a founder. Pick people who fit your vision for what the culture should be and be conscientious about it.

5. What’s your level of urgency?

Trick question. The answer is “super urgent” in every early stage company. Unless you’re profitable / growing, every day is a race against the clock and the bank account.

You can’t afford to keep people around who don’t get that and won’t work hard to make sure the hard problems are solved on-time.

A lot of developers, particularly ones who’ve been in industry for a while, approach startups with the expectation that they can still work from 9-5, get the same benefits they got at MegaCorp for some relatively low level of output, but get a giant chunk of equity and work on cool, consumer-facing startup products without any bureaucracy or managerial overhead. Avoid these developers.

Hire people who want to race the clock, because they believe in your company’s vision and want to work with other competent people who can move quickly. They’re out there.

Parting Thoughts

If you do a good job coming up with clear, thoughtful answers to these questions then good fits and bad will be obvious.

If you enjoyed this post, make sure you subscribe to my RSS feed!

Thoughts on Recruiting Developers at Early Stage Startups: Understanding the Job Market

September 23, 2012 12:03 by Aaronontheweb in Hiring, Startup // Tags: , , // Comments (0)

Shortly after leaving Microsoft to work on MarkedUp full time, my founding team and I joined an early stage accelerator here in Santa Monica. We’ve gotten a tremendous amount of value from it so far, and the directors of the accelerator have done a great job helping me prioritize and do all of the things I need to do in order to launch MarkedUp properly.

One of the things they’ve had us do is gradually step up our recruiting efforts, and for the little we’ve invested into the recruiting process so far the results look pretty good.

Most startups at this early stage are founded by 1-2 people who have unique insights and connections into a market, have done some work to validate a new business concept in said market, and are now trying to form a team to help them execute and eventually scale it. Usually the first hire a startup has to make is a founding engineer who can help them build a customer-ready version of the product.

MarkedUp is a little different. Our engineering team is the entire team, at the moment – I’m also our “business guy” in addition to being the technical lead and Erik, a founding member of our team, is 100% committed to technical endeavors. However, we still have to recruit developers! MarkedUp is solving a big, complex problem1 – analytics and data visualization are problem domains with large technical surface areas, so even early on in the lifecycle of our company we have to expand the engineering team.

I’ve been asked a couple of times recently by founders in the first category of startup “how do you find and recruit developers?”

The short answer is “I’m still figuring this out, being new to running a startup myself, but here are some ideas.”

So in that vein, I thought I would share with a wider range of people how I try to recruit developers for MarkedUp and what I think is most important.

Take everything I say with a grain of salt – I’m new to running my own company and am figuring out much of this as I go.

Things You Should Know about the Market for Software Developers

Before you start recruiting, you should wrap your head around the market for software developers. Having this information will decrease the likelihood of you making an ass out of yourself when you start recruiting in earnest.

1. It’s an employee’s market – there’s far more demand for developers than there is supply.

The demand for developers has always been high since the PC revolution and the past few years have been particularly high. So what’s the practical implication for your startup?

The answer is that any competent developer in the US can get a six figure salary, with amazing benefits, from a variety of well-funded, stable employers. Before you even start recruiting you’ve already lost the battle of benefits and compensation.

So when you’re recruiting, don’t even bother leading with the promise of wealth, big exits, or any of that sort of puffed-up-chest nonsense. The reality is that most startups fail and if any developer evaluates the prospect of working for you versus their six-figure employer, you will assuredly lose on opportunity cost every time.

2. All of the competent software developers you want to hire already work for someone else. Not only do you have to convince them to join you – you also have to convince them to leave a paying gig. 

Let that sink in for a moment. How hard is it to leave a job? If you give a shit about what you do, then the answer is “pretty hard.”

Convincing someone to leave a gig, even if you have a great opportunity that is more interesting, is a challenge unto itself unless that candidate is utterly miserable with the state of things at their current job.

So, be prepared for a long, dragged-out process for each technical hire – you will have to deal with counter-offers, ludicrously good counter-offers even. Don’t hardball your candidates with “join us now before we raise money and offer you less equity” – keep them sold on the things that money can’t buy: working on projects that they find meaningful, working with people they like, learning new things, and so on.

3. The best source of “available” developers are recent graduates.

If you followed point #2 above, then what I’m about to say next should resonate: the best source of developers who are openly looking for work is recent college graduates.

Many of them get passed over by big software development shops like Microsoft / Google / et al because they don’t have enough time behind the wheel; this is exactly what happened to me when I was graduating from Vanderbilt with good grades, a successful freelancing track record, apps in market, and good recommendations.

On top of being available, recent grads have the absolute best risk profile for working at a startup. They have no obligations, no mortgages, no expectations of six figure salaries out of the gate – they just want to work on something cool and take home enough money to start building a life for themselves.

There is a downside to hiring recent grads, however: having no experience means what it means! You’ll have to invest a lot of time into training them all of the things they didn’t learn in school, which in some cases includes the ability to code.

Truth be told, I only recommend going the route of hiring recent grads if you already have a CTO or another veteran onboard who’s willing to train and coach them.

It’ll take a while before you can get an acceptable level of output out of a recent grad, but as long as you continuously invest in making your new hires better they will (1) stick around because they’re learning and improving and (2) will deliver output at startup speed.

4. It is phenomenally easy to start a company and raise money in 2012 compared to earlier years, and the most senior technologists who fit the risk profile for startups are able to start their own companies. 

One important facet that’s overlooked about the technology market for software talent, especially among startups, is just how easy it is for top-tier technologists to start and launch their own companies.

All of your prospective founding CTOs who are interested in startups and have an idea they’re really committed to could probably raise money and build a v1 product themselves; so how does this affect your ability to recruit?

It dilutes the market for talent – spreads the small slice of the Venn diagram of all developers who are willing to work for free on a high-risk idea across a much larger number of smaller companies. So what’s a startup founder like you to do?

Invest some effort into helping any talented developer who’s trying to build their own company be successful, because even if that developer is unavailable to help ease your pain now they’re someone you want to build a good working relationship with and maybe work together later.

I never try to steal someone away from a project they’re deeply, personally, and fully committed to, nor do I ever suggest something stupid like merging two totally irrelevant ideas together into one company just so we have more developers on the team. Recognize that recruiting is a long-running process – it takes a long time to find the right people.

It’s in your best interest to be someone developers trust, not a self-interested jack ass who constantly tries to poach them away from their passion projects.

“Pay it forward” is my advice here, and for your short term needs – don’t even bother with people who are trying to get their own projects started. If they decide to can their project, they’ll come and approach you if you’re someone they trust and would want to work with eventually.


I’m going to write a second post on our philosophy when it comes to actually recruiting developers and what we think is important.

1MarkedUp provides in-app analytics for Windows 8 and WinRT developers. You can sign up for a beta at http://markedup.com/beta

If you enjoyed this post, make sure you subscribe to my RSS feed!



My name is Aaron, I'm an entrepreneur and a .NET developer who develops web, cloud, and mobile applications.

I left Microsoft recently to start my own company, MarkedUp - we provide analytics for desktop developers, focusing initially on Windows 8 developers.

You can find me on Twitter or on Github!

Recent Comments

Comment RSS

Sign in