Hacker News new | past | comments | ask | show | jobs | submit login
Myths About Working as an Engineer at a Startup (karllhughes.com)
259 points by karlhughes on Aug 28, 2014 | hide | past | favorite | 137 comments



FTA:

“Rock star” engineers sometimes work at startups, but usually they work for big companies who can pay them twice the salary and have multiple indoor water polo pools and racquetball courts.

THIS is something the 'startup world' and a lot of people on HN are not aware of. Really, really bad-ass programmers usually work for big corporations for good salaries. Not always, but usually. The reason I mention it is because there is a myth that startups are built with the latest, greatest tech by the brightest minds. Often this just isn't true...many startups are hacked together by inexperienced programmers fresh out of college. Sometimes this works, but often it means that nobody on staff is really a master coder, nobody on staff has ever had to fend off Russian hackers attempting to take down your code at 3 am, nobody on staff has had to deal with thousands of users who wake up one morning, can't log in and no money is coming into the company. These are the battles that most programmers learn in the trenches of big companies, fighting tough battles, fixing complex problems under fire. It's not ideal, but I'm not sure if you can really become battle-hardened without going through real battles with real jobs on the line.

This is what happened at Twitter - when the government came after them because they were getting hacked too often, Twitter went out and hired 'real' programmers and got things working. That's something that gets missed a lot in the 'startup story'.


>nobody on staff has ever had to fend off Russian hackers attempting to take down your code at 3 am, nobody on staff has had to deal with thousands of users who wake up one morning, can't log in and no money is coming into the company. These are the battles that most programmers learn in the trenches of big companies, fighting tough battles, fixing complex problems under fire. It's not ideal, but I'm not sure if you can really become battle-hardened without going through real battles with real jobs on the line.

You make an interesting point, though I'm not sure that learning these lessons has to happen at a big company. I'm currently an engineer at a startup, but I came here from a small company—a ~30 person digital agency—where we were dealing with a lot of what you mention quite regularly. Because we had so many applications in production for a diverse range of clients (some at fairly large scale), and a small team of developers, the sorts of challenges you mention came at us much faster than they appear to arrive for us at my current company, which is focused around one product.

The fact that the dev team at my agency was small meant that, when facing issues like this, we were flying by the seat of our pants, learning as we went along and jumping between roles, and learning was happening very quickly. I've come to realize, after having left, that the range of experience I had in the small-team agency environment was, I think, extremely valuable.


Personal anecdote:

I've worked 5 years in 3 startups, 5 years in 2 large development teams, and my experience has shown that there are, percentage wise, better developers working in startups. This is in Austin, so it may not reflect the valley, but the absolute best programmers I've worked with are trying their hands at startups. There's a sweet spot of people aged 28-35 that are really skilled developers that still have an appetite for risk that are working in startups.


Do you think this is more a reflection of the limited quality of the larger players in the Austin scene?

I came to Austin from the Valley as part of an acquisition and have been looking for other employers in Austin, but the options for larger firms seem rather limited. I have yet to start exploring the small start-ups, which is why I am curious.


In Austin, it used to be the case that IBM (and possibly Motorola or a few other places) had a serious lock on all of the seriously good people. The projects were cool, the environment was excellent (if you didn't mind managers selected by vocal volume). I'm talking about the guys who did the cell processor, the AIX kernel folks, a bunch of people who did good UI work, and so on.

When the internet boom rolled around in the late '90s and the startup scene hotted up, most of the people in it were straight out of school. When I interviewed around in the mid 2000s, experienced people were kind of rare.

On the other hand, about the same time IBM became a consulting service company. The cool, visible projects evaporated. All of the good people I knew at the time either got buried deep somewhere (and are presumably happy in their niche) or left.

It's been years since I moved away from Austin, though, so I've got no idea what it's like now.


"This is what happened at Twitter - when the government came after them because they were getting hacked too often, Twitter went out and hired 'real' programmers and got things working. That's something that gets missed a lot in the 'startup story'."

That is interesting. Did you work at twitter or was this in the news?


I learned this at an OWASP conference, where several Twitter programmers revealed this and what they did to resolve it.

The guys who were presenting never said 'they brought us in to fix things', but that's exactly what they were. None of the guys who were building the 'hardened' Twitter were originally with the company - they were seasoned pros brought in from other companies.

And yes, they did some bad-ass things to fix it. But the presentation was more about OWASP level coders wanting to see what issues Twitter had to face. Nothing was Earth-shattering at that level, but it was excellent to see the amount of data they were working with and where their breaches were happening.

I don't want to speak for them, but it was obvious that one of their biggest issues was people writing insecure code and checking it in without any review. They have automated code review tools in place now.


Thanks for sharing this. I'm trying to convince my own company to switch to mandatory code reviews. Do you have a link to the talk or an article describing:

>it was obvious that one of their biggest issues was people writing insecure code and checking it in without any review. They have automated code review tools in place now.


He might be referring to when Twitter moved form Ruby on Rails and did a complete rebuild in Java.

http://readwrite.com/2011/07/06/twitter-java-scala

http://www.zdnet.com/twitter-rebuilds-on-java-7000021241/



Maybe true, but my experience in big companies has been complicated.

1 - Less than stellar people, aiming for the bare minimum

2 - Crappy tools and procedures (like not having administrator priviledges on your machine), or using an old Unix (not Linux) with VI. Hard to get motivated with that

On the other hand they have money for shiny toys (like very good test equipment), so there's that as well.


I've worked for both startups and big companies. Both suck. Big companies have more money and process. Small companies have more flexibility but almost no process.

So, for example, if I work for massive XYZ bank, it's most likely that no code is going to get promoted without being thoroughly tested, discussed, multiple meetings and approvals, and then implemented by an actual team of people in charge of making sure the servers don't break. Of course, this means that it takes a LONG time to promote even simple changes and there is a world of politics involved with a bunch of agendas.

If I work for startup XYZ, I can promote right to prod without anyone asking what I'm doing or why I'm doing it at 3 pm in the afternoon. Of course, that also means several other developers might be doing the same thing. Your manager might be pushing code that breaks your code, and then telling the founders it was you.

For me, neither is good, but at least in a big company I get paid more, there is a structure in place that people have to follow (in general) and I can spend my free time working on my own projects. In a small company, you ARE the company but just like with the big company, you don't actually own anything...you are just on call all of the time and are paid less.

I have friends who prefer startups, it really boils down to which things you value more.


If your experience was in Financial Tech, you likely had the very worst experience in "Big Company" you can imagine.

I worked at Wells Fargo, where they had laughable procedures and couldn't even properly staff teams because they refused to value their tech workers at even a bare minimum.

Now I'm at Google and its completely the opposite. A lot of healthy code management behavior, flexibility to design and develop new projects, lower maintenance management etc.

In between I ran a startup where I'd like to think I created the most process that was needed and nothing more, while personally managing my engineers by deeply valuing their opinion and only providing them with direction based on product strategy & design.


There are some startups out there that are more in between. I've had the good fortune to work at two such places.

One nice thing as mentioned in the article is that you have more responsibilities at startups. If you have the intelligence and drive, this can help you with your career immensely. Personally, I have learned a huge amount at the startups I have worked in, many things that larger companies probably would have taken a lot longer before putting trust in me to do.

It is all individual dependent of course.


"Big company" and "startup" are not homogenous categories. I've worked for Big Companies that are slow and plodding and I've worked for startups that are as nimble and quick as lightning. But I've also worked for extremely nimble Big Companies and startups that couldn't make anything happen and were mired in a giant pile of technical debt and process.


Like many things in the startup world, the investors are the men behind the curtain pulling the strings on these myths. They perpetuate this image that startups are staffed only by super tech geniuses and big companies are staffed only by incompetent, washed-up slackers who've given up on their dreams because they want to exploit the cheap, inexperienced labor pool of naive new college graduates who will work for something "cool" for almost no money. Once you grow up and get a wife, kids, and mortgage, it isn't so important to work for the "cool" kids anymore.

There is a great wealth of expertise and mentorship that is missing in the startup world because investors throw a bunch of college kids together, tell them they're the coolest guys around, and pay them a pittance. If investors were a little more willing to offer a real salary to a person with the self-respect to demand at least market rates and reasonable working hours, I think we'd all be in a better place.


I disagree that it's usually the case that "really, really bad-ass programmers work for big corporations for good salaries." The number of "big corporations" that pay "good salaries" is actually quite small and, in this field, limited mainly to the usual suspects (Google, Facebook, etc.). This is one of those assertions that is basically not provable and usually involves a hedged tautology of some sort ("if you don't work at X, Y or Z, you're probably not bad-ass <--> (almost) all bad-ass programmers work for X, Y or Z").

That said, I've yet to have any discussions, interviews, etc. with startups that lead me to believe they're truly interested in "rock star" talent. Like most big companies, they want talent that is just sufficient enough to shove a marginal but profitable product out the door at a low enough price-point.


There is a lot, lot more to computing than the web. The guys working at HFT firms are serious badasses in programming terms, for example, and their pay dwarfs anything Google or Facebook could offer.


Yeah, the Valley definitely has "Web Goggles" on at the moment. That's why the "usual suspects" are the usual suspects--it's just what people out here seem to think of when they hear "programmer." It's a bit sad, actually. I moved here expecting the opportunities to be a bit more broad than they seem to be. As a result, I'm considering an attempt to move into the trading/finance space (I've a very analytical/quantitative background related to my prior life in scientific research, but little desire to return to that).


My friend got an offer with two sigma. He said no because Google was paying him a lot more. That's my anecdote. :)


It's not unusual for developers working for commercial banks to make $150-200K (or more). That's in low cost of living areas such as Delaware and North Carolina at that. Government contracting is another non silicon valley gold mine. The work may be boring with red tape, but the problems usually are some what sophisticated and always mission critical.


I work for a (rather generic) government contractor and the pay around here is not out of line with what Glassdoor claims for Google. On one hand, I might be making more at the Goog' given my experience, but on the other I'm an idiot and spent far too many years working for lower pay at places that were "interesting" or "cool". On the other, other hand, I know many of the people around are making significantly more than I am (and we're not doing rocket science, by the way), and if I have any more hands, they're definitely not interested in "rock star" talent around here. This isn't HFT, either.


If you want to dedicate 100% of your energy towards solving tough technical problems then you're actually not a good fit for a startup. Team sizes are small and resources are constrained, so you have to be well-rounded enough to solve any problem that comes your way, technical or not.


This is a bit of a tangent, but does "bringing in 'real' programmers" to clean up the mess really work? In my 1-2 years of experience (which isn't much), it seems like time onboarding into a big system (like Twitter) can take months, even for the all-stars. Is "we'll bring in the cavalry when shit hits the fan" a workable mindset for a startup?

(And this isn't trying to be glib, I'm genuinely curious -- I only have experience at a huge place that has tons of process for transfers and such).


*Rockstar web application developer with strong mobile development experience. Must be expert in SEO and Social Media.


> This is what happened at Twitter - when the government came after them because they were getting hacked too often, Twitter went out and hired 'real' programmers and got things working. That's something that gets missed a lot in the 'startup story'.

I'm sorry, but this is just silly. Dealing with hackers does not make you a "real" programmer. It just makes you a programmer with special expertise in a very particular and narrow aspect of programming - dealing with hackers. It's a niche skill and doesn't necessarily translate into prowess in other areas. Startups need eager, polyglot programmers who are willing to get their hands dirty, learn on the job, and deal with the uncertainty you wouldn't normally have to worry about in a large, stable company.


It's more than just dealing with hackers. It's the overall scope of having to be responsible for critical work under heavy scrutiny. Most companies have a myriad of technologies...that isn't just the domain of startups. In fact, normally, startups have much more specialization. If you work as a coder at a big company, you might have to know Java, C++, .NET, PHP, Oracle, SQL Server, plus a million other things like old mainframe, COBOL, lisp, assembly, Ruby, Python...it depends on the job.

In a startup, you can say 'we only support Chrome and FireFox' and often no one will question it. But in a big corporation, you don't often get to pick which things you 'won't learn'. Some companies still use freaking IE6 (some very VERY big companies) so if you want your jQuery to work with their app, you'd better know why using anything higher than 1.11.x is a bad idea in general.


This is a niche skill industry. You can't be everywhere, if you intend to be good, and if you're good at something, you are probably not going to be good at completely different things. And someone very good at a small niche is almost always more valuable than someone who is kind-of-good at a number of things.

Startups may need "eager, polyglot programmers who are willing to get their hands dirty, learn on the job", etc., but by virtue of that they're eliminated from the market for many of the higher-skilled, specialized people.


Plus, security of the software is more about company priorities then about some real vs unreal programmer differences. It requires repeated code reviews with focus on security, it requires occasional penetration testing and it is often in conflict with speed of development.

Startups often simply do not have time and money for it. (Big companies are often unwilling to pay for it, so their software ends up equally vulnerable.)


Kind of getting off topic, but big companies who do not do serious security end up on the news. Startups generally do not until they big companies.

Companies who take security seriously may even do daily scans. I have a major client who does penetration testing EVERY DAY. And all source code is security scanned by multiple third parties before it is released....AND you have to make sure that your code is bullet proof beyond that, because you not only have to pass the security scanners but also you have to be aware that if your company gets hacked, and they can point to code YOU wrote, you are in deep trouble.


Things not addressed that I think are important:

1. Salary. Startups always seem to offer lower salary in return for said equity.

2. Career development. Startups demand that you build somewhat hacks solutions for the sake of time. In many instances you might not get the opportunity to learn how to do things right. Too much of this and you get used to building hacks products.

3. 80-hour work weeks might not be the norm, but what about 60 hour work weeks? that's a deal bresker for some.

4. Diversity. Startups are notorious for hiring people just like the founders.


Salary. Startups always seem to offer lower salary in return for said equity.

If you're the first engineer, sure. As the second or third engineer it's a lot more likely that you won't get any equity (or nothing that won't be diluted in to oblivion by the time an exit comes along), and you'll be on a lower salary with a promise of a decent raise when the business gets traction. But that might never happen...

Also, if you do get equity, it'll probably be as a number of shares ("We'll give you 10,000 shares!") and no one will tell how many shares have been issued. So in reality you're getting 0.001%.


If the CEO of the startup you're talking to won't disclose an actual percentage, that's a HUGE red flag to me. I expect an early-stage startup to give me an offensively-low percentage of stock; I expect them to respect me enough to not beat around the bush and pretend that's not the case.


I've talked to CEOs that make offers focused on the number of shares / $ amount. They were happy to reveal the total size of the pool, when asked. I think if they didn't, that'd be an issue.


I've mentioned this before on HN, but I was at a start-up where we lost candidates because, in the candidates' words, the other company was giving 200,000 options, and we were only giving 500 options.[1] 200,000 would have been the entire company. [2]

I can totally believe that the CEO is giving the raw number because that's what the labor market has trained him to give.

[1] It's possible they were lying because they thought working for us would suck. It's not true that we were better off without these people because they didn't know basic economics and accounting. Lots of very good people don't have a clue how that stuff works.

[2] If I ever found another start-up I am going to go hog-wild and make quintillions of shares just as social commentary.


>2 The only reason that hasn't bee done is that (at least in MA) there is a fee per share created. Here it is $100/100k shares. That would make it very expensive to file your articles of incorporation (roughly 1 Quadrillion dollars)


If a startup won't talk about equity percentages then they aren't offering you anything. Do not accept that offer. That said, as an employee (especially a junior one) you will not be getting a very high percentage of the company as part of your option grant (think 0.25%) and it will be vested over the course of 4 years.


What's a reasonable percentage for a first engineer, do you think (not counting CTO)?


Sam Altman thinks it's 1.5%[1]

I really liked another blog post by Sam about equity distribution as a startup grows: "a company ought to be giving at least 10% in total to the first 10 employees, 5% to the next 20, and 5% to the next 50"[2]

Quora has anecdotal evidence that 0.5 - 1.0% is common[3]

[1] http://blog.samaltman.com/how-to-hire

[2] http://blog.samaltman.com/employee-equity

[3] http://www.quora.com/What-are-the-typical-amounts-of-equity-...


How much experience does this first engineer have?


>Startups demand that you build somewhat hacks solutions for the sake of time.

So do large corporations. This is not a factor of how large your company is, it's a factor of how forward thinking your technology leadership is. If they're not thinking further than the next three months, it's pretty much always going to be a hack.


True of course, but with startups this is more of a necessary evil; for larger organizations it is a sign of engineering dysfunction.


IME large corps always go for the "quick wins". They get external companies in to tell them the things their employees already told them about, and then it's a box ticking exercise to race through that list before their next progress meeting...


#4 is a tough one. I don't think this is only true of startups. To some degree it happens everywhere. Anecdotally I have seen a relatively large swath of technical teams in my years consulting. Most teams are not diverse and I have seen some interesting cultures develop. Most managers will hire people that they like on some level. Its just the nature of people. If a hiring manager doesn't like you you probably wont get the job unless you have a niche skill that justifies him putting up with not liking you. I don't think it is good or bad, but generally just the way things are. One place(a large oil and gas pipeline) I consulted had a manager who ruled with an iron fist and over the course of about 5-6 years(which was the average tenure of the team) the team evolved into a group of very passive people. I actually know someone who left that team after 6 months because he couldn't deal with the managers style. However the 7 people who did were happily there and that team was not very diverse: all 40-ish year old males from India.(I am not making the implication that East Asian males are passive. Just this team of them was as the managers style curated that)


Very good point, and I agree that the hiring manager in place tends to be the biggest cause of bias in hiring decisions. However, more mature organizations tend to either have more checks in place or more formalized HR processed that can hopefully reduce the effect of bias in hiring.

Definitely not saying it's perfect; oversight can only all so much.


> Salary. Startups always seem to offer lower salary in return for said equity.

Not necessarily "always", if the startup is well funded, they will pay you well, AND give you equity.


I bounce back and forth between startups (5), small companies (2) and mega corps (3) and so might some unique perspectives.

The truth is that for most of the world, bigco's are the default and startups have to sell their employment in order to get employees. They have to find some way to offset the inherent employment instability that working for a startup entails. This has created many of the myths in this article that continue to be perpetuated.

Some observations:

Like a few other comments, I've noticed that the absolute best-of-the-best work for "real companies" and not startups. The reason working for a bigco doesn't get the reputation of having the best engineering talent is simple, talent is like any other thing with a group of people, it follows a pyramid distribution. Most of the people are terrible and at the bottom of the pyramid, and as you move up the pyramid you end up with smaller and smaller populations of very good people. Except you can't have fractions of a person, so in bigco, where the projects might involve 100 engineers. That top-notch engineer accounts for only 1% of the staff. Sure maybe 80% of the staff may not be any good, but that still leaves you with 20% who are at least decent work-a-day engineers.

In a startup, your entire engineering staff might be 10 people, and your top-notch engineer now accounts for 10% of all the staff time spent on a project. It's almost like having 10 top engineers instead (if you try to scale the numbers to match). It's easier to find 3-4 above average folks to round out the top of the pyramid and the rest are just there to fill in the mortar and won't last long.

This means that your individual contribution is magnified in a startup. Everything is magnified in a startup. Decision making power, individual contribution, etc. But so are negative aspects of working in a company. When things go bad, they go bad really fast in a startup. The worst political dramas I've ever seen were all in startups. Points of failure are enormous in small startups.

One of the thing that happens as companies mature and grow is they learn they can no longer tolerate so much magnified failure, so they build in controls to spread around responsibility so they can better survive what would be a catastrophic failure in a startup (founder leaving, tech decision turns out to be wrong 18 months in etc.).

The side effect is of course that in order to turn down this magnified negativity, the magnified good stuff also gets squashed.


Would you rather work for a startup (vs. established co.) that pays you 130% market salary without equity or take 90% with the possibility of great upside?

Edit: I am asking because I think startups should be paying more than established companies because of many reasons: 1) the work environment is usually shitty (nice, clean offices are nice), 2) no financial security because they are not established, 3) no one outside the startup world wants to hire someone who failed numerous times before, 4) it is much easier to go from Big Co to Small/Tiny Co, then the opposite. (4) is particular true and quite dangerous for recent grads. Young recent grads are better off founding their own company or joining Big co instead joining fresh startups.


This is really a spreadsheet problem. Figure out the expected value of those stock options. Consider:

1) The odds that you will work there long enough to fully vest. This depends on you, but there are a lot of factors outside your control such as layoffs/crappy management/etc.

2) The odds that the company will be sold at a high enough valuation to convert everybody to common stock. If it isn't (and it probably won't be), your exit money will be less (perhaps much less) that whatever it would have been on a fully-diluted basis. This would be explained in the term sheet the founders signed with the investors and really should be shown to you before you get hired.

3) The odds that the company will have any kind of exit.

Bottom line, unless google is the one who buys you out, you ain't gonna be driving a Porche after the startup you work for gets bought out. The odds of you even breaking even and getting anywhere close to "100% market" is pretty small. Either tell the startup you want market rate and no options or take the 130% company--stock options are a suckers bet.


That would be an interesting cultural change.

Maybe startups would fare better if they exchanged "passion" and sleep-deprivation for competence, even with having to pay extra for said competence?

What prevents them from doing this (or do we just not hear about it here)? Do VCs not approve of the shape risk would be distributed in (even if their share ends up smaller in absolute terms)? Would it never work because of a culture clash with the sort of people who found startups (if you've convinced yourself you've "got religion" over some business idea, will you want to work with people who are openly just in it for the money)?


Your criteria discuss the demand-side of the equation as a prospective employee, but not the supply-side as the employer, which can't pay a higher salary due to a highly-constrained or non-existant budget.


Such an employer might do well to reconsider whether his product is worth what he thinks it is, then, if he can't muster the budget to pay employees a market (or above market, given the risks) rate.


First I think the 130 vs 90 aren't necessarily standard...that being said:

  * Work environment can often be a tossup.  You'll find just as many open floor plan bullpen situations outside the startup world as within it from what i've seen.
  * Largely agreed on the financial security; however, larger companies are more beholden to the market (so they might have to lay off N% of staff as a cost-cutting measure)
  * "no one outside the startup world wants to hire someone who failed numerous times before" - hyperbole.  Plenty of banks and established companies want to hire good engineers.  If the company you were with failed, it's not simply because you were a poor engineer.
  * "it is much easier to go from Big Co to Small/Tiny Co, then the opposite" - hyperbole.  I wouldn't say it's necessarily much easier one way or the other.  If you're moving from Big to Co, you might not deal well with the new expectations of not being able to say "that's not my job" or the long hours (for example).
  * "is particular true and quite dangerous for recent grads. Young recent grads are better off founding their own company or joining Big co instead joining fresh startups." - Why?  All of them have pros and cons...sorry.


Why make this offer when there are plenty of workers willing to both be underpaid and absorb the risk. (not to mention, no longer even get a payday IF there is an exit due to clawbacks etc)

This is the basic cynicism VC's have injected into the valley now. Why play fair at all, when I should just play the greedy strategy and optimize all behaviors for my optimal gain.


130% without equity in the vast majority of cases.

90% with equity if my equity is significant & I believe that the probability of payout is > 50%. There would probably be a lawyer involved to minimize risk of clawback to boot. I've spent some time as Mr. Gullible; I don't need to be taken again. :)


130% of market. When you're working as an engineer at a startup, too much is out of your control. You have to have a lot of trust in the people steering the ship to take on that risk.


130% every time. A stock option cert is a lottery ticket.


From the perspective of someone who worked for a startup as his first real job:

> You are also likely to get some input on the way future engineers are hired and the way your technology team interacts with the business team.

This is true, and not entirely a good thing. I was interviewing new technical hires within a year or two at the organization. I asked stupid nerd questions (if you knew C++ like you claimed, you'd know the ins and outs of this template expansion), instead of important ones like: if you're stuck, will you ask for help, or just silently beat your head against the wall and not have anything to show weeks later?

> An environment that encourages learning and experimentation keeps engineers more motivated than one that stifles its technical talent.

It's also an environment that encourages reinvention of the wheel, especially by younger engineers with little supervision that don't necessarily realize that a particular wheel already exists and is ready to use.

> One of the best skills you can learn if you intend to work for a startup is the ability to figure out things on your own.

This is an existential issue at a startup, and particularly important if you're fresh out of college, because you don't know anything and thus must learn everything. This is both good and bad. On one hand, I learned a lot more in a short time than my friends that went to work for big organizations. On the other hand, I always felt like I never really learned how to do things "right" because a startup is a setting where you don't necessarily have the time to dot your I's and cross your T's.

> It seems like startups move faster and create solutions to difficult problems more efficiently than large companies, but the truth is that they normally have a lower quality threshold than their corporate counterparts.

This rings true to me. It was really a revelation to me when I joined a large organization for the first time. It was a well oiled machine, with roles for everyone and someone whose job it was to do anything that needed to be done. Startups have many advantages, but they're not necessarily productive or efficient places.[1] You can spend a lot of time yak shaving at a startup.

Anyway, I'd do it over again in a heartbeat, but I'm not sure if I'd advise someone to go to a startup straight out of school.[2] Maybe one of those well-funded, well-established ones where they're far enough along to have real internal processes and real management, but I'd save the "three guys in a basement" stuff for later, when you know what you're doing. Again, YMMV.

[1] Of course, I imagine they can be if we're talking about a shop run mostly by highly experienced engineers. But in general, I think big organizations are better at getting more output from less-skilled labor.

[2] At least if you intend to make programming a long-term career. If your intention is to jump over to the business side relatively soon, that advice would change. You'll get far more exposure to the business side at a startup than you will at a large company.


Startups have many advantages, but they're not necessarily productive or efficient places.

So true. There's a lot of ranting and wailing on HN about 'MBA types' and 'managers', but having moved to a large company, I love having project managers. In the wrong company they can descend into ugly hierarchies, but when you get it right a PM can handle talking to other departments/customers and managing expectations, allowing you to focus on actually doing the work. Few startups manage that.


My first job was a start-up, too. The guy we put in as CEO (hey, he managed another company before, and that company was successful) said how we had to hire people who were "self-managing." I later realized this was code for "I suck as a manager." He would bad-mouth "professional management" all the freaking time, but what I saw from him was "amateur management."[1]

And management is hard. I'm not denying that. My previous attempts at management have had poor results. But pretending or hoping you won't need it because you aren't good at it is not the right solution.

[1] The old line about "if you think a professional is expensive, wait until you pay for an amateur" rings especially true here.


Yeah, I used to consider myself a "hands-off" manager. I realized that I really was just a "lazy" manager. There's a happy medium between micro-managing and not doing your job.

Don't get me wrong, I like folks who can be wound up and sent on their way, and they come back with the job done without my intervention. But there's managerial janitor work that always needs to be done. Whether it's helping someone navigate a political landscape, or just making sure they have the equipment necessary to get the job done, there's grunt work. And from my experience, management done right isn't nearly as glamorous as being a trench-working IC coder. If you take a management job so you can be "the boss", I think you're doing it wrong and are going to suck as a manager.


Like so many things, good management > no management > bad management.


This. My current company (consulting agency) has a somewhat startup-like atmosphere, but we currently have 3 full-time devs (including myself) and 5 support staff members (including the founder) - and I can't imagine life without them. They abstract mounds of paperwork, hours of client communication, sales, pretty much everything other than design (also handled by me) and code away from us.

Joel Spolsky has a great article on this: http://www.joelonsoftware.com/articles/DevelopmentAbstractio...

"Management's primary responsibility to create the illusion that a software company can be run by writing code, because that's what programmers do. And while it would be great to have programmers who are also great at sales, graphic design, system administration, and cooking, it's unrealistic. Like teaching a pig to sing, it wastes your time and it annoys the pig."


A good project manager is a very good thing. Of course you also need a defined project for a good project manager to shine.

Also, I hate being put on a project that is poorly defined and I end up having to do the project management stuff. It's not my job, not my strength and not what I was hired to do.


The problem with waiting until later in your career before working for "three guys in a basement" is by the time you get to that stage you are wise enough to realize that:

1) They probably have no earthly clue what they are doing.

2) They won't/can't pay you close to what you're worth.

3) The equity they want to offer you has an expected value that is far, far lower what they think it is and is in no way going to make up for the paycut you will take.

4) They are no smarter and have no better ideas than you so why the heck not just start your own company instead?

I guess my point is, as you get older, you kinda come to the conclusion that working for other people's startups isn't all that it is cracked up to be.


As you get older, it becomes a better idea to be one of the three guys rather than working for them.


I feel like any startup I could found wouldn't be one I'd find interesting to work at. My former boss was a PhD with decades of expertise in his field. Working for him was an experience I couldn't have made happen myself.


I'd also add that as you get older you tend to have more responsibilities like kids or a mortgage, which can be difficult to handle in the unstable world of early stage companies.


I think it's wise to consider a startup job independent of any possible financial windfall. Even if there's no exit, will you be glad to have worked there? Will you develop skills and be exposed to opportunities that you're looking for?

In some ways, this suggests startups are a better choice for people who have worked long enough to know what they're trying to accomplish at the next stage of their career. (I don't doubt that some college grads know this already.)


The C++ snippet is very true.

That's the important thing, it's ok to try to solve it yourself but also to raise a flag. Funny thing, I had a C++ thing I didn't understand and had to ask around (yeah, const_iterator ftw!)


> It's also an environment that encourages reinvention of the wheel, especially by younger engineers with little supervision that don't necessarily realize that a particular wheel already exists and is ready to use.

Even big companies do this with alarming frequency. The best example I can think of is Google reinventing XDR (which was codified in an RFC!) via Protocol Buffers.


XDR has no support for versioning. This is probably the most important features distinguishing PB.


I can't find any details about Protocol Buffers supporting versioning. Can you point me in the right direction?


Or they try to reinvent a plane (with all the complexity) where you only need a bicycle.


Trading stock for equity is almost never worth it - as a basic reality. Clearly it is occasionally, or the system would collapse.

Let's say you receive $40k in salary a year (versus equity), for 5 years (let's call that $200k, just for fun). Assuming you're diligent, that salary difference can be invested, even in something as simple a preferred shares, yield a compounded return of +/- 5%, or ~$232k. So, we're not really talking about high levels of risk.

Assuming your startup, like most others has 6 funding rounds before an exit, and that insiders hold the traditional 4% at exit - we'd be looking at someone who started with a full 1% (of the initial, pre-dilution point) of the company, yielding ~$341k over the same period.

Given that 1% holdings are rather high - 0.5% or less would be well expected. That in turn means that unless your company exits for ~275M (over this 5 year period), and you hold 0.5% then FINANCIALLY it's not worth being part of that endeavour.

That being said there are several other great reasons to enjoy startups.


I'd agree with almost all of those, the biggest thing I'd say is, as with all startup jobs, risk is a factor you shouldn't ignore, the last point I kinda disagree with for that.


I miss: profit sharing is just as good as equity.

And: don't worry, you will get your shares.


don't worry, you will get your shares

As a partially mitigating effect, the places too incompetent to get you your shares are usually the places too incompetent to succeed enough that your shares matter.

I once told this to a boss. "If you can't get my share paperwork, it won't matter because you won't enough of your stuff together to succeed." I never got that paperwork.

As practical advice, you should still follow-up and demand all the paperwork and not accept excuses for it. The company fulfilling its contractual obligations to its employees is not a distraction from their real work. If they can't find the time to do this, start looking elsewhere immediately.


"Okay, how do you determine what portion of revenues are profit?" (crickets)

Seriously, I've heard this one waaaay too many times. It's right up there with "you'll work for equity right, and maybe we can throw in a bit of cash if you put in enough hours?"



> And: don't worry, you will get your shares.

Can't promise you what they'll be worth though.


Having done nine startups now, all that rings pretty true to me. :)


9 startups over the span of how many years? Why do you keep doing it? Do you have kids ;) ?


I started at Apple in 1994. I left to found a startup in 1997. It was an delightful and educational disaster; I learned that I loved startups but didn't have the constitution to lead them.

My tenures at these startups were anywhere from 18 months (acquired for modest payout) to 8 years (IPO for modest payout).

I keep doing it because of the reasons listed in the article. Flexibility, ability to have significant influence, get to work on cutting-edge stuff, have to furiously learn new stuff. Plus I enjoy the recruiting and team building -- I am an extrovert. :)

Yes, I have one kid. I tutor math at her elementary school. (See 'flexibility', above.)


[deleted]


Apple IPO'ed in 1980, at a $1.8 billion ($5.2 billion inflation-adjusted) valuation. 1994 was fourteen years after that, when the organization was in decline.


I have worked at nine startups since leaving Apple. I did not say that Apple was a startup.


I know. There was a (now deleted) comment between yours and mine that said "wow, you were an early Apple employee, what was it like?" I figured that poster didn't realize how old Apple is.


Ahhhhh sorry.


I've done about half that many. Start-ups can be nice in many ways. I'd still love everyone considering a start-up to read the linked essay, because a flood of over-optimistic employees can drive down wages and working conditions. Demand good wages, demand good working conditions, don't let "we are a start-up" be an excuse for someone getting you to eat a shit sandwich.


As someone who's currently in his second ever job, which is in a startup (first one was in a startup as well), I find most of it is quite accurate, but then there'll always be edge cases. The startup world is really heterogeneous and it's hard to draw conclusion about it that won't be really vague.

Just a small point I'd like to comment:

> Truth: you’ll get to set the culture, standards, and technologies used

This is quite funny because both startup I worked for were completely different on this point. In the first one I was the only developer, working on an application I created completely from scratch. I could decide entirely on my own which technologies/tools I could use (heh, being able to start a project in c++11 was really sweet). On the other hand, the startup I'm in currently is rather resistant to change with regards to what we use, even though we tried to push these change with arguments as to how it could speed up work and eliminate some recurrent pain in the development process.


I guess the only ones who really set the technologies are the first hires, so it's a big fat myth.

Otherwise why is every start-up putting some technology in the job ad title (just look at HN job postings)?


What about the myth that you're doing something important?


How do you gauge what is important?

If you consider what your role is in creating wealth, then arguably you are doing something more important than most regular employees. How often can an engineer at Google say that their specific input caused the company to grow by 500%? Yet, even employees at modest startups with modest exits can say they had a significant hand in that level of growth.

If you are commenting on the "making the world a better place" trope, then that may be a different story.


I can create 100% growth by changing my customer base from 1 to 2.

Google can create 0.001% growth by adding another 100,000 customers (made up percentage, you get the idea).

Is 100% > 0.001%? Not by my math.

You know who is changing the world? Some engineer working on optimizing the cache lines on some Intel processor. Her work will, over the life of the chip, save millions to perhaps billions of hours, with similar effects on watts used, time wasted, and so on.

Can that Intel engineer give #s to quantify her impact on the world? Not likely. It doesn't mean that it isn't there, nor that a rational person cannot recognize it.


Working at a startup and making a considerable change is all fine and dandy, but when they exit and your only getting 0.01% even though you were the first group of devs, then its a bit crappy.


As a recent graduate who is actively looking for a job, this is an eye opener. Many thanks to the author for explaining what really happens in "Start-up life".

What really struck me was the "full-stack rock star hacker" part. As someone who has little to no experience in commercial software engineering and then sees this phrase on many start up roles (includes ninjas and gurus), it really sets an image that start up work is only for the incredibly bright individuals who know it all.

I also believe some of the unrealistic expectations start ups have are one of the major reasons why they fail. [0] "Rome wasn't built in a day".

Working long hours goes with the kind of person you are. 80 hour work weeks may be productive for some people whilst others perform better with 37 hour work weeks (or less). We are all different. Some athletes are born marathon runners, whilst others are natural short distance sprinters. I think this is where most start-ups also get it wrong and its also something that contributes to their failures. Long hours once in a while is fine as long as you are compensated for it.

Media is also a major contributor to what start ups should be like. As mentioned in the article, you only hear about major acquisitions, huge crowd funding campaign success, and crazy company valuations. But its a lot less common to hear about the failures of start-ups, people burning out before their first product release. Why does media never cover these failures?

As much as I would like to join a start-up or even start one, I will continue looking for work at small-medium companies and big companies first, get good experience first and still a personal life outside work. I guess its different for other people, but I value work/life balance and I also think its the key to having a successful career, be it entrepreneurial or employee based.

[0] https://en.wikipedia.org/wiki/Rome_wasn%27t_built_in_a_day


Working long hours goes with the kind of person you are. 80 hour work weeks may be productive for some people whilst others perform better with 37 hour work weeks (or less). We are all different.

Something to keep in mind for this, is that people tend to be fairly lousy at detecting how what they do affects their productivity. Even if you think you do well with long weeks (or multitasking, or whatever), you can't know that without keeping a log of how much you actually got done under which conditions.


Although we are all different, no study found a person that would be the most efficient at 80 hour work weeks. Similarly, although our sleep needs differ somehow, no study ever found a person that would be effective with under 6 hours a night sleeping.


I agree that 80 hours per week sounds unhealthy and unethical. I could possibly do it for one week but I will need a couple of days to recover physically, a couple of weeks to recover mentally.

We do too much, expect too much, don't rest enough and get average-poor results. Once we see the poor results, we try to use the same method again and again, expecting different results. A vicious circle.


"Big companies put junior engineers through training programs, send them to advanced classes, and make them sit through certification tests, but I’ve never seen any of those at a scrappy startup."

They do? Is employee training (outside of on-the-job learning) even a thing in engineering anymore?


The company I work for puts every engineering hire through "the U", a 3-9 month training program (depending on developer aptitude), geared towards bringing all engineering hires up to a relative even ground, with regards to the necessary skills to be a software engineer here.

The training is always in flux and adapting based on feedback, and has pretty consistently turned out developers that are able to jump in and start developing in any given team. Developers then gain further domain specific knowledge through mentorships and regular 1-on-1 meetings with team leaders and mentors about goals and progress.

Overall, it works pretty well based on my interactions with other developers here.


Sounds amazing. Where you're at? :p

I thought usually it was only IT consulting firms that provided such training.


Facebook has several formal and informal training opportunities available for engineers (and all employees, really).

There's Bootcamp, primarily for New Hires, but which anyone can go to if they like. I teach a class there about how our Traffic management works - load balancers, and so forth.

There's also classes about learning to program on iOS or Android (those are generally a week long), or on Haskell or C++ or D (these are generally a few hours a week for a few weeks), and smaller ad-hoc 1-4 hour classes on things like the data pipeline tools, debugging and performance tools, and so forth.

There are also ad-hoc "Tech Talks" which just discuss general topics without a specific "learning" focus.

And then there are non-technology but career-oriented courses about time management, technical leadership, managing your manager, how to give good feedback, how to have difficult conversations, and so forth.


Facebook has an infamous 2-week "boot camp" for new hires.


It is a six-week program, although the last week or so is a bunch of teams pitching themselves to the new hires, and the new hires meeting with the teams they're choosing between.


Infamous in what sense?


I disagree with the assertion that most "rock star" engineers work at big companies. The only big companies that have true "rock stars" are Google and Facebook and probably Microsoft too. All other "big" companies in the valley started with rock stars, who probably got rich from options/IPOs, who then got bored and left for another smaller company. Most companies have a huge brain drain after the 4 years vesting period after the IPO. And this happens more especially if the nature of the business changes, if management comes in that ladens the company with process, slows down innovation, etc, basically make the company less fun to work at.


One thing that is very discounted in the OP is the government. Many very good programmers work in the DOE, DOD, and other 4 to 3 letter named departments. Programmers, like the rest of us, are very diverse people. SOme like the 'fun' you talk of, some really value the stability of a mega corp or the CIA. Some are there only for the problems and their personal interest in them, some are there for their kids and kiss off the desk at 5pm exactly. Some like to paint, some like to go to Burning Man. Programming talent and 'rockstar' status is independent from motivations to do a job I think.

Also, the assertion that most top talent work at mega corps is a statistics issue, as other comments mention. More jobs, as a percentage, are at mega corps and the government. But more companies are under 100 to 50 employees. So, if you look at it from a percent of programmers, you see many more at mega corps. But as a percent of top talent, you see more at small businesses, simply because you can determine the top talent easier at a start-up as there is less debate who the top people are. Other commenters explain this better, sorry.


From what I've heard, pretty much every big company that does software is supported in someway by "rockstars." The difference with larger companies is that the ratio of bad to good tends to be much higher so that even if you work for one of these companies, you might never actually encounter them.


I've worked at several well-known large companies and it's pretty much not true. Top programmers want to work and hang out with other top programmers, so as a good, small company grows and starts losing their top guys to brain drain, the best leave before it's too late. They don't want to be surrounded by idiots or left doing shitty work.

Some of the ones that remain are probably very good, but they're not "rock stars".


I have met true "rock star" engineers that work at: Adobe, Akamai, Amazon, British Telecom, Bloomberg, Cadence Design Systems, Cisco, Disney, eBay, Goldman Sachs, Heroku, HP, IBM, Intel, LinkedIn, NASDAQ, Oracle, Pixar, Rackspace, Reuters, Salesforce, Toyota, VMWare, Wells Fargo, and Yahoo! just to name a few.


A lot of the best engineers work at companies with ~50-100 engineers and lots of revenue. It's not a big company, but it's also not a startup.


>Truth: you’ll have more freedom to choose the projects you work on and how you do them

This is contrary to my experience. In startups, any time you're not spending developing the core product in the quickest way possible (i.e. the currently established way, don't go exploring whether a new way might be quicker) is seen as time ticking away on the death clock.

In a large corporate environment, I've been much freer, because we can afford to play the long game. I've been able to choose projects, define completely novel ones, choose different technologies to use, rather than the established stack (and indeed, change what the "established stack" is).


Andy Rachleff has great advice on people looking to start a career in startups: Don't make a brand-new startup your first job--rather, look for a mid-sized, growing company, where you'll learn some valuable skills and set yourself up for better opportunities in the future.

https://blog.wealthfront.com/hot-mid-size-silicon-valley-com...

The list is getting a bit out of date, and he's writing for business students, but I think the advice is very sound for engineers as well. If I could do it over again, I would have tried to find a similar path.


as for culture.. it's great in the beginning, but as the company grows to medium and large, communication begins to break down, and bureaucracy creeps in, poisoning the old culture.

with more people being brought in (usually at a rapid pace as you hit your growth spurts), you have to adapt to more personality types, and company culture&feel will suffer as a result


So will I get a big payday from company shares even if my startup isn't very successful?


Go read up on the order that money is paid out to shareholders when the selling/IPO price isn't much greater than the total investment to date. The short version is that usually preferred shareholders (the investors) get paid first and will get at least their investment back and then what's left is split among the common shareholders. Also note that if the preferred shareholders are "participating" or not matters, as they may get to be common shareholders as well as preferred, meaning normal common shareholders get even less in these kinds of situations.

If your startup isn't wildly successful and you're not a founder or investor, don't expect to have a life-changing payday. The odds are against it.


Engineering school : Work em like mules. Weed out the misfits.

Engineering job : Work em like mules.


how much equity does the average early employee get? How about the average late employee? What about for a company like twitch, that just exited?


This varies greatly from startup to startup, but if you are not a founder it will be very very small. Early in my career I was a very early employee (think sub 10 employees) of a startup and was compensated with about 0.2% of the company. Later in my career I joined a very late stage startup (think sub 500 employees) and was compensated with about 0.007% of the company.

Also note, that when I say compensated, that was with a standard 4 year vesting agreement.


This I just don't understand. The founders have the idea, leave their jobs first, and raise the money. Fantastic. Then they bring in two engineers a couple of weeks later, who quit their jobs for a nascent idea with no proof it'll work. The founders have maybe 65-80% of the company between then (then the investors and option pool), and the two engineers have 1% each. Everyone works shoulder to shoulder and the early first employees contribute critically, but the payouts on exit are off by orders of magnitude.

Why do people sign up for such lopsided payoffs?

Has any company tried a more gradual equity falloff? Say, with two founders and two employees, instead of an equity distribution of: F1=34 F2=32 E1=1 E2=1 you might have: F1=20 F2=19 E1=15 E2=14


The salary cut you take to join a startup ought to be worth that much equity. If the founder has put in $50k of his own savings, and you take a $50k pay cut to join, then after 1 year you have "put in" as much capital as he has.


The founders usually put money in and don't get a salary. The early employees put nothing in, but get (a lower than market) salary. I am not saying the percentages are okay, but that's usually how it's rationalised. Of course this doesn't apply to Silicon Valley bubble companies, where you might raise $1MM+ on day one, put zero money of your own in and pay yourself a salary as founder from Day one. Hard to argue then that you deserve a 30x equity differential from your first employees.


Typically the founders don't have 65-80% of the company, some future investor does.


I'm talking about the equity on day 1, not on exit day. But even on exit, the ratio is the same between founders and employees.


Well depending on the legal setup, the company has 100% of it's equity on day 1. Founders and employees both are given options to buy said equity. That ratio is not setup with the expectation that the founders will have 60-85% of the equity in the future.


Sorry, my original point must have been very unclear.

In a typical startup, the ratio of equity between founder and employee #1 might be 50:1 or even much more. I am always surprised that people sign up to be employees given how fast equity grants drop for every subsequent hire. And, I wonder if any company has tried more gradual equity drop-offs. For example, where the ratio between founder and early employee grants is < 2:1, for example.


Well written, tallies with my start-up experiences.


I Agree! Totally!


3 times I have worked for a small company that had a liquidity event, as an early employee. That already makes me incredibly lucky, that those companies didn't sink without trace. In each case, my stock was worth between 3-6 months of my then salary. Which was a nice chunk o'change to be sure, but not FU money, not by a long shot.

Now I work for big companies for a good salary. I put in the hours to get the work done, but I'll never do 80+ hour weeks again unless I own a ton of equity in the venture.

The truth is that startups, like the music biz, like video games, like PR require a steady stream of young people with unrealistic ideas who can be exploited. Don't let yourself be played, is my advice now to young engineers. Especially don't take career advice from a VC or a founder...


Don't let yourself be played, is my advice now to young engineers

Now how do we get them to listen? When I was a young engineer, I don't think I would have listened to what you're saying here, although I now know I'm in complete agreement with it.


Yes the hype in the press makes it hard to convince the inexperienced that stock options just aren't worth that much money. Really, startup millionaires are lottery winners. You wouldn't take lottery tickets in lieu of pay, would you?


> Now how do we get them to listen?

We don't. No generation was able to do that.

But that's not completely a bad thing. When the newer generations repeat the same old mistakes, sometimes they find out that a few of those mistakes aren't anymore.


It will always be a mistake to overestimate the value of your stock or stock options. I'm not saying don't do startups. I'm saying don't be exploited. Take my 6-months-pay payout as a yardstick. Then ask if it's worth taking half the going wage, for 3 years, in return even for the guarantee of it, when it is by no means guaranteed.

If I were to go to a startup again, I would expect to be paid a premium over the market rate, and I would see equity as a bonus. Otherwise why should I bust my ass to make a rich VC even richer?


While I agree with this, and matches some of my experience, I'd like to collect more data point. Anyone willing to share such stories?


I don't really have much interesting to share other than "ditto", except only once did I get something like a "3 month salary" payout. Another time there was an exit but the stock ended up so diluted that I was "underwater" (except due to some bad timing I also got hit with AMT on fictional earnings that took a few years to even out on) and a couple of other times the company simply failed to exit in any way.

Working for startups can be fun, but always treat your equity as a lottery ticket because that's all it is (worse in a lot of ways since the rules behind lotteries are pretty solid whereas there are a number of ways companies can fuck you when it comes to equity even if you "win); if you trade a lot of salary for those tickets, you're being a fool.


Yes like I say, going 3 for 3 I was extraordinarily lucky and even then my total payout came to less than 1 year of my present salary. I'd laugh in the face of anyone now who offered me a pay-cut-for-equity deal.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: