That was not necessarily a mistake. As a fresh college grad (and particularly as an engineer) I'd argue that you are ill-equipped to judge a good startup opportunity from a bad one. There is absolutely nothing wrong with spending time at a large company, benefitting from their experience in graduate intake, learning a lot of good, sensible practises, then applying them to a startup.
I've also recently become deeply skeptical of working for a startup as anything other than a founder or a very early employee. You don't benefit monetarily (low pay, bad stock options) and the work environment is frequently toxic and incredibly demanding. The only difference is you'll be making your bosses rich instead of making stockholders rich.
However, I'm at a more established firm now, and the fact that I can spend time building systems properly and work on self-development is invaluable. I think working for a big company, even a giant bureaucracy, out of school, is not a bad thing at all, provided you can spend a few hours independently working on side projects.
My first job out of college was at a large company and I worked with some old timers who had been in the industry for years and on code that, at least parts of it, had been written almost 20 years ago. Learning from my colleague's experiences and through the code was incredible and I am certainly better for it. These sort of experiences can rarely be had working at a startup.
Lately, I've noticed a meme from investors about discerning founders who can start companies and those that can grow beyond 250+ employees. The generally consensus is that there are very few entrepreneurs (Zuck for example being one of them) who possess the capability to scale. I'm not talking about scaling servers, I'm talking about scaling organizations as quickly as their revenues grow. Looking at it through the lens of an external person, this may seem trivial at first, but having been in the professional world for 8+ years now, there are some key challenges all companies hit when they hit certain growth (for example, hitting 50 and 250 employee milestones). Working for a big company can (notice I didn't say will) prepare you for that.
So, pretty much any business? There are so few companies out there, especially venture backed ones, that the employee headcount hasn't scaled with the growth. We just hear of the Instagram/WhatsApp acquisitions with low head count so often here in the echo chamber that we assume it's norm. To take that further, how many companies are at FB/SalesForce/WorkDay/Twitter-level that don't have over 500 employees (much less 1,000s)? I can only think of very few - 37signals, Valve, etc?
My larger point - VCs in SV want to fund billion dollar businesses and founders who can create billion dollar businesses. These billion dollar businesses need large amounts of headcount and a CEO who can take them there.
I also feel the same in regards to working for a startup when you're not a founder or a very early employee. It is completely true you likely will be making your bosses rich and not as much yourself, unless you're like an absolute rockstar their equity is still going to be at least 20-50x more than you (this is just a rough guess). If you think you can do it on your own, might as well.
With regard to this comment: there is nothing wrong with "spending time at a large company, benefitting from their experience in graduate intake, learning a lot of good, sensible practises, then applying them to a startup."
That is true. But there is also nothing wrong spending time at a small startup, learning good sensible practices, learning from smart people, learning from making mistakes, THEN applying these skills at large companies.
People often say "You'll learn a ton at amazon, then you can work anywhere." That is true, but you can also learn a lot if you work for a great startup.
The idea that you learn more at big companies is planted in students brains at these career fairs. And when GS and BofA come to campus to recruit. The idea spreads because startups don't come to campus and preach the reverse.
There are small startups; no one knows whether these will succeed, even if they're YC startups.
There are big(ger) startups that are clearly on the way up. Pinterest. Dropbox. Airbnb. Uber. Snapchat.
Then there are medium sized but fast growing startups. Quora. Stripe. etc.
The latter two categories are obvious choices.
I want to get into a startup, where do I start?
Find a problem and sell a solution. Not rocket science.
But I can't find a problem!
Try getting outside of the hedges of your university and talking with normal people, business owners, and civil servants. I will give you a hundred bucks if you can't find anyone with something to bitch about.
But I don't have a solution. How can I build a solution without being technical/having money/knowing a programmer?
Where did I say anything about building solutions? Customers don't care about tech, they care about results. Find something somebody else has already done, maybe several somethings, and string them together, and sell them. Charge arbitrage--think of it as a laziness tax for the customer.
I'm a programmer, and I have this neat idea to solve a problem I have.
That's not a question, and besides, nobody gives a shit anyways.
Well, what I mean is, how can I turn this into a business?
You probably can't. You probably don't have the business/people skills yet--find somebody that does, and try to sell them on the idea. If that doesn't work, find somebody else. Once you've got one, get them to do the sales stuff.
But my solution to this problem is awesome/elegant/clear/in Ruby!
Again, nobody gives a shit. Go Tell HN or /r/peoplewhogiveafuck.
It's not some magical process making a startup/breaking into the ecosystem: find people who know more than you, and ask them questions--or even better, try to find a problem people will pay you to solve.
Being a successful startup, now, that's a whole 'nother problem entirely.
If you find a customer, and find a solution, and make a tentative sale, don't go wander off and do something else. An otherwise bright young lady I worked with last year has all three things: problem, solution, and customers. She's going off this summer to intern at Deloitte instead of building her business, because she "wants to learn more about business".
You know what else teaches you about business? Running a fucking business.
Presented with this fact, she said she wanted to learn more about the "strategic side of things...mergers, acquisitions, aquihires, etc.". Those are all issues that are pretty far off if you're just starting out as a business, and you won't likely worry about them until you are big enough to care. And if you're expecting to worry about them at another company, you are going to be hired in as a junior employee anyways so you won't even have anything useful to say on the topic.
The tech guy on that team is trying to find tech jobs at other startups--again, despite having a problem, a solution, and customers.
I've sold apps and had customers, but not at the scale that would let me quit my day job.
Also I just want to point out that /r/peoplewhogiveafuck is a real subreddit but it is empty. Which is telling, I guess.
I disagree with this post though, if I had to start all over again out of college... my recommendation would be to start a profitable, bootstrapped business. Build that up to 7-figures and be financially independent. You'll earn your first stripes way earlier than most, at much lower risk, and once you attain that black belt, then you'll be ready to consider swinging for the fences with a startup. And people around you will want to bet on you too with your track record.
I'm 28yrs old now and that's my gameplan for the next few years. I'm tired of being poor.
Worth reading: http://www.gabrielweinberg.com/blog/2010/06/paths-to-5m-for-...
Starting out, the best way to learn entrepreneurship IMO is to just do it and build it organically like you did.
Also, sorry don't mean to sound cocky. I'm still a failed entrepreneur, just speaking from lessons I've learned from scars of failure. I'm not giving up on the startup game, just thinking long-term about it and my development as an entrepreneur.
A ton (perhaps most) failed businesses fail because they're undercapitalized. Even if your costs are low you can only go so long without eating, and if you're worrying about how your life savings is going to run out in 4 months I guarantee that you won't be as effective at building your business.
Your chances of bootstrapping a successful business are much much higher when you have money.
The best thing you can do is not start up a different kind of company (bootstrap vs. VC) but build up your bank account. In this market there are a lot of opportunities to earn good money, particularly if you're a developer. Save, save, save and in a few years, you should have enough to start a business from a credible, realistic cash position.
Amen. Although, my approach is to be working full-time making a good salary, but spend my nights/weekends working on my business and investing my savings into it. I'm not going to do it full-time until I start making good $ with it.
Between people like patio11 and Rob Walling, I'm pretty convinced that that sort of business is where it's at for people who don't want to do the whole VC style startup.
He gave some much needed but harsh feedback, essentially asking "Why should they hire you? <hot startup of the month> has their pick of the litter, why would they gamble on someone unproven?" I've never really been told to aim lower, but it made me think -- if you really want to work at a startup, you'll start somewhere and prove yourself. Justin used the example of Aram, who started out as an office manager for JustinTV and ended up founding ZeroCater. I now work in BD and haven't looked back.
Justin ended up writing a guest post for TechCrunch (I'd like to think partially inspired by me) here - http://techcrunch.com/2011/11/28/how-to-get-a-job-at-a-start...
My main point was just to be realistic about your opportunities
Edit: I suppose the main benefit of hiring smart inexperienced people over smart experienced people is that you can hire more of them for the same price. Plus, maybe inexperienced people tend to be young, and young people tend to have more hours to devote to work? Are there other benefits I'm missing?
The article does not address the money issue.
*although, thankfully, the schedule-regularity theme is starting to show up more regularly in startup culture, which is a good change.
Small gripe, but "herself"? Better as "and the founder had gone…" Even him/herself is a good option.
"Finally, our sector is on top and these young people want to come and join us."
It's like saying "and these young women…"
It's often much easier to write and read pronouns, and it is my opinion (though far from an accepted truth) that alternating him/her when contextually appropriate is less clunky than using the him/herself construction.
As a writing instructor, I personally have no problem with "himself" being used in a broader, non-gendered construction... and for the same reason have no problem with a similar usage of "herself", though as I say, opinions vary.
Let's cut the crap; when people write she/her/womankind for the generic it's about PC. It's not standard English.
Well, so has treating women like second class humans, but hopefully we can overcome that, too, no? Languages live... yes it is about acknowledging difference, but so what?
"Every time somebody misuses she/her as the generic I'm knocked into a moment of confusion wondering who this sudden specific chick is."
I was at the barber in my tiny Texas town today... you should have heard their comments when "his husband" came over the TV audio... they were shocked, too.
Indeed.. and that's the problem.
The times, they are a changin!
One sugggestion is to look for public developer groups in your area in meetup.com. Type keywords "java" or "mobile" and you get a number of them. Go to those meetings and hear about interesting things people are developing either as part of a company or a hobby. Get involved in an open-source type project, generally on github. Just downloading, building and runnng such software is a significant hurdle. Probe it to see how it works. Maybe thre are a group of people in the project with lots of side projects they dont have time for. Many of these projects are weak on the testing and documentation side. So if you improve those aspectd, that shows understanding of such projects without interferring with core development.
Then when you interview for a small company, you can show people what you have done. Maybe get references from others in the projects.
More likely some of these projects may become a company. The company may support the open source with production strength versions, fill gaps, etc.
1. Track record (i.e. you worked at a big name company and/or shipped product that's public facing/commercial).
2. Interviewing ability.
The former don't care if you built something on the side and the later are going to hire you based on your whiteboarding ability.
Recently, we got connected with two top CS students from "mid-tier" schools who were about to join large corporations in technology consulting roles. We were able to place them in some awesome startups in SF. And we were thrilled to have such a huge impact on the trajectory of their careers. We want to continue to do this.
If you're interested in hiring top CS students, teaching web development, or if you're a current CS student please e-mail me. email@example.com
Such as? As a programmer that can't negotiate a decent salary/consulting rate I would find this useful.
We all need a little bit of "I'm good and I'm worth it." Some maybe more than others. Negotiations are all a mental game. People will pay anything for what they feel is worth it, it's your job to frame what a service of product is worth.
The basic problem is that whether due to culture or nature we tend to approach transactions as zero sum games (aka distributive), ie if I get something you must lose something. Negotiation is about thinking in terms of widening the pie, ie creating a win-win for all (integrative). Even in situations where it can appear there is no win-win, there often is.
Want a better rate? determine the value of what you are bringing to your client, then price your service accordingly. If they balk, then you make your case based on your analysis.
The text we used in class is this:
I believe it is suitable for pretty much anyone who can read.
That'll help the soft skills, but in a hiring situation, the other part is getting to what the other side really wants and what their concerns are. A hiring manager's first thoughts are: "how much babysitting is this person going to take?" and "will s/he mess up team mojo?" Don't be that person, be the net go-giver that makes 'em shine... Less talk, more walk.
Minor nitpick: it's balk (or baulk)
You should never lead a negotiation with your BATNA because then your counterpart is only going to give up the absolute minimum above your BATNA, thus depriving you of all the surplus.
Or to put it another way... if you're talking to a startup and the founders say anything like "we don't need marketing, we use growth hacking" then run away, as fast as you can.
Nothing is better than going to a hackathon or a Startup Weekend. My first Startup Weekend is where I caught the startup bug.
If you want to work for one, check out Readyforce if you are a student or Angel.co if you are experienced.
Here in the UK we have a startup job fair called Silicon Milkroundabout . At the moment it's London-based, but it attracts a huge amount of college grads. I suspect they'll soon be moving into doing or taking part in job fairs at Universities around the UK, because they're growing pretty quickly at the moment.
Maybe they also need to start making their way into the US, too.
I go to the University of Waterloo in Canada and as a second-year (sophomore) have already worked at a startup for an internship. I got that internship because of the co-op program at my school --- startups often hire from it. I'm not alone, either: several of my friends at UW are or have been startup interns. One friend is interning right now at a YC startup.
That's not even to mention the huge hackathon movement that has swept technical schools across North America. Startups have a huge presence in hackathons at UMich, Yale, MIT, UPenn, UW, University of Toronto, McGill University, and many others.
If I can't see your code, I can't tell if you're just bullshitting really well or actually pretty cool. And no, forking a bunch of other people's repos doesn't count--I will check your commit history.
Most tech employers own everything you do, even on your free time. So a large GitHub history can send the message that you're not employed all that much.
I don't think it is fair to expect you to talk about your old company's codebase in an interview--I'd love to have that conversation, but I understand if you wouldn't feel comfortable doing so.
So, I can ask you questions in person, and get some response. Maybe you interview well, and you can answer things easily; maybe because you know your shit, maybe because you crammed with "Crack the Coding Interview"-like books, maybe because you have inside information on what'll come up in the interview.
Maybe you interview poorly, and if I ask you to whiteboard something you have a panic attack even though you know it cold. Maybe you are having an off day, or our conversation just flows the wrong way and you don't communicate to me the experience I'm looking for that you already have.
By contrast, if I have your github (or sourceforge, or bitbucket, or whatever), I can infer certain things about you: I know what languages you write in, I know whether you roll things from scratch or make little changes to other people's projects, I know how much you care about code quality and commits, I know what sorts of projects you like to work on in your free time.
In an interview, I can (and will!) ask you about some code that you've written, both good and bad, and I can see how you respond--are you defensive, apologetic, humble, humorous? I can ask questions about specific projects, work through your thought process, and get a much better feel for how you are on a team.
As to your question "What is the difference between experience writing proprietary code and experience writing code that happens to be published on GitHub?"
The difference is that I know for certain you can use git, I know that you aren't hiding behind your team on that project, and I know what lines of code you did and did not write (barring certain corner cases). Proprietary code is also usually pretty fucking dull, honestly: you're usually patching or hacking in some business logic for a legacy app that isn't that great to begin with. If I cared about that, I'd just hire some legions of code monkeys from India and be done with my problem.
I'm curious as to what your thoughts are on the difference between these two things. Rolling from scratch seems like more work, but sometimes gathering enough knowledge and understanding about someone else's project to be able to make a change to it is even more work.
If you have little commits that just change some config settings in your fork of a common jQuery library, that's not a big deal.
If you have little commits that change some deep magic in sizzler, okay, that's something we should talk about.
If you rewrite a software rasterizer, just for funsies, that's something to talk about.
If you write yet another web framework in Ruby, or lightbox plugin for jQuery, I'm going to call you out on wasting time.
If you can explain why your implementation of half of the functionality of Rails is desirable, and satisfy me that you're doing it for engineering/business/safety reasons, I'll be really impressed. If you admit it was for the lulz or to learn or because you didn't know any better, I'll admire you for your honesty. If you did it because async is srs bsns guise also activerecord more liek activerecrud amirite, I probably will let somebody else have the joy of breaking in a cowboy coder.
It can be very, very hard to commit work to other people's projects--I skipped even the modest task of putting out a Visual Studios make system for somebody's Minecraft clone, for example, because I just didn't want to have the "Cmake? Fuck cmake!" argument.