
Startup or Big Company after graduating? - filipmares
http://www.jeanhsu.com/2011/05/19/startup-or-big-company-after-graduation/
======
tomerico
Work where you will be the dumbest person in the room.

In order to become great, it will really speed things up if you learn from
great people. A great team can be anywhere, startup or large company. But, it
is very difficult to estimate the quality of the team just from interviewing -
especially as a fresh graduate.

Regrettably, chances are you are more likely to find a great team at companies
such as Google than in a startup or a medium sized company. This is simply
because startups find it much harder to recruit candidates, especially in
early stages. So you are risking less going to Google or Microsoft.

With that said, if you find yourself agile enough to switch jobs quickly if
things aren't the way you expected. Or if you have other information (such as
friend's recommendation), going the riskier route may be more rewarding.

~~~
FrojoS
I think this is true. Unfortunately I haven't been able to find such a team
yet. Of course it would be nice to believe, that I'm quite talented. But
really, I think, it just shows, that it is very hard, to find a team that is
stellar in the things that you find the most interesting.

Or, maybe, I just have a weird taste... Would be interesting if somebody has
been successful in finding such a team for him. Sounds like you, _tomerico_ ,
found one after you graduated, no?

~~~
maigret
In big companies, talented people leave programming to do architecture and
project lead - you're likely to find these guys in teams that are bound to
executives and senior managers.

If you work for a big comp, get a clear idea of what role you want to have:
support? IT? development? tech consulting? From there try to find single
persons that do well, they probably have interesting connections.

~~~
FrojoS
Thanks for the advice! I'm actually a Mechanical Engineer and have mostly
worked for R&D so far. Also, me and most people in robotics spend most of
their time programing, they are not trained programmers. Unfortunately many
use this as an excuse to keep writing crappy code instead of trying to catch
up with the state of the art. Heck, right now I'm the only one in my group who
uses version control ...

------
dodo53
My take: I worked for a startup as one of their two devs/IT guys at the time
(2 business partners who definitely I'd say saw everyone else as employees,
three-four customer service types). None of us knew a great deal about dev at
the time (no version control, no ticket system, live changes in prod etc..),
so we hacked by, but it was only once I worked for a much larger company that
I learned a lot of important dev stuff (in my case, I wasn't coming from a CS
degree; perhaps more appropriately educated types wouldn't have gained so
much). Not all startups are equally tech focused / good at that aspect of
things (this one was online retail).

But having said that, the learning payoff tails off really quickly - you gain
much more in 3 months on role than the next 3 years etc..

I'd say main thing is to try and switch jobs/roles before you're too
comfortable.

Also - focus on what you're gaining right from the start. The thrill of
actually having money coming into your account sometimes means you can
overlook when you're stagnating. You have to lead your own learning at
companies - and if you push for it, you can gain a lot. But generally managers
have other things to worry about and if you don't, they'll assume you're
happy.

------
Sandman
I recommend working at a larger company. If you join a startup right after
graduation, chances are you're going to have to find out about a lot of real
world stuff, best practices, technologies and so on on your own. There's a
good chance you'll miss out on a lot of good practices and do things the
harder way (or do them the easier way, which will prove bad in the long run).
If you join a large company, you get the benefit of being able to draw from
experiences of senior developers, and you'll likely get one of them as your
mentor. After a while (and 'a while' may be two years, three, or even more),
you'll start feeling that you've learned as much as you can. Then is the time
to join a startup (or start your own, if you can).

------
malux85
Working for a company will give you the ability to make contacts and also get
mentored from some senior developers. In my first I.T. job I was mentored by a
guy who had been writing software for 20 years, and in 3 months with him I
gained more skills than I did through education, and also some practical
advice that still echos in my mind daily.

Working for an existing startup would be OK too -- though you might not
necessarily get the mentor in that case.

I wouldn't recommend you start your own startup though -- because you're still
new and the cost of learning would be a cost _you_ would bare ... pick up some
real world skills for a year or two, then jump

------
dxbydt
The one rule I've never broken is this - don't work on bad code. There's tons
of really shitty code in "enterprise software" type places - IBs, banks &
such. Its not too hard to get a 6-figure job at these places, but then the
real fun begins. If you get assigned to work on a trading system that nobody
wants to touch because its super-brittle, you should run for your life; unless
a. you have an immigrant visa issue, or b. you badly need the money. Some of
my colleagues in IBs fell into both those buckets :( So they simply stayed
put.

Other than IBs, I've also worked at 2 startups - very clean code, and very fun
code as well - like a homegrown 3D API in Java to draw & rotate the globe &
locate your city on it - way back in 1996, when Java was 1 year old & had no
2D API even! The best even Sun could do at that time was this tumbling duke
animation on netscape ( <http://bit.ly/jnZFwz>), and this startup headed by 2
smart computer graphics experts from MIT rewrote their graphics engine in Java
to rotate a whole geographically-accurate globe in netscape!

Nowadays you see a protovis demo ( <http://bit.ly/imMuSE> ) & think, Hey, I
can think of a dozen places where the data could be modelled that way. Why
don't they ? Cause they're "Big Companies". So they'll stick to tables with
links to more tables that link to even more tables! If you think about it, a
portfolio of derivatives who underlying maps to a cross-correlated matrix is
essentially a force-directed graph whose vertices are growing & shrinking as
they trade throughout the day. If you think the vertex is about to pop, sell
it! Instead, "Big Companies" will hire tons of analysts who will simply stare
at tabular Excel screens of rows & columns & red/green alert button like
you're back in the 1970s. There are startups doing really cool stuff with
trading & visualization, but they don't take off - simply because of inertia &
retraining of existing traders to stare at graphs instead of tabular rows &
columns :) Maybe 10 years from now...

------
bratfarrar
If you start at a large company with a reputation for only hiring top
candidates, you will start your career with a higher salary, a great company
on your resume, and experience in how world-class companies do things (both
good and bad). These are your journeyman years, and will give you the
experience, context, and contacts to be much more effective if and when you do
decide to join a startup. It will also make you much more interesting and
valuable to a startup (which will equal more equity).

~~~
FrojoS
Fine, but it might also hurt your creativity to drink the companies cool aid.
Also, think about all the time you gonna waste in meetings. Not to speak of
learning and using tools, that you dislike because they suck for you.

I'm graduating in two weeks and I will try to do my own startup. If you're
interested in robotics shoot me a message.

~~~
yannickt
Not all large companies feed you kool aid, force you to attend pointless
meetings or use shitty tools. And re: tools, this really has little to do with
the company size, and sometimes you have to take shortcuts and use inelegant
solutions to satisfy the customer - which actually happens a lot in startups.
It is true that working for a large company can hurt your creativity, but on
the other hand there are classes of problems that can really only be solved at
a big co. If you enjoy working on these problems you might not have much of a
choice.

------
blrgeek
Is it time for you to earn or learn?

Mark Suster put it better than I ever could!
[http://www.bothsidesofthetable.com/2009/11/04/is-it-time-
for...](http://www.bothsidesofthetable.com/2009/11/04/is-it-time-for-you-to-
earn-or-to-learn/)

------
mhw
When thinking about my career overall, I broke things down into small
company/big company and buy side/sell side (or customers and vendors). I think
you are likely to get different experience from working at each. This may be
less true if you're a pure developer/engineer, but if you want to gain
experience of the business side of things as well, it's really useful to know
what it feels like to be the person on the other side of the table.

So far I've worked for a small software house (so, sell side) and tried to do
a startup. I'm now contracting for a big corporate (buy side). So I guess
that's two down, two to go.

------
snikolic
I think a great solution is to work for a late-stage startup, or a startup
with plenty of funding, or a company that's recently entered its growth phase.
You'll have the security and resources of a larger company (and more time out
of work to pursue your own projects!), but you'll still be one of the first
5-20 people in the office. The atmosphere will still be very scrappy and
creative. And you know your bosses/mentors have a proven track record of
success, because the company has already made it pretty far - there will be
plenty to learn and absorb.

~~~
bgentry
+1 for this. I work at Heroku and it has really been the best of both worlds
getting to have a large impact on meaningful projects and enjoy the perks of a
startup combined with the resources of a large company (Salesforce).

The market is so strong for engineers right now that you don't need to choose
between decent compensation and startup environment; you can have both.

~~~
snikolic
"The market is so strong for engineers right now that you don't need to choose
between decent compensation and startup environment; you can have both."

Far more articulate than me :)

------
HaloZero
The best advice I can give is start not at the monoliths that are Google,
Microsoft, Amazon, and the others everyone and their mother knows. Start at
company that is medium sized, you'll find plenty of real stuff to work on
while having the experience of being able to get help from people who have
been doing things a lot longer than you.

School doesn't teach you proper engineering practices and learning from the
mistakes of companies that have already gone through starting troubles is also
beneficial to you in a long term if you want to form your own startup.

~~~
yannickt
Joining an ambitious and brand new project at a large company can offer the
best of both worlds. E.g. first generation Xbox, Kindle, Instant Video, etc.

------
smithbits
What are you like? Do you enjoy digging really really deep into a problem?
Perhaps a big company that provides the stability to work on a problem for
years is the right place? Do you like doing lots of different things, none of
them deeply, but all of them well, with never enough information to make a
solid decision with? Go find a startup. How are you at interacting with
people? Extremely outgoing, always meeting new people? Startup all the way.
Introverted and terrified of sales? (well, work on that, but a safe place to
get better at it is a big company.) No kids, no spouse, no debt? Totally going
to help at a startup. There's no right answer to the question, it depends on
what's best for you. I've done big company and startup and independent
contracting and I don't regret any of them, but I'm also having a fantastic
time at my current company. It turns out that for me, at this time, the best
answer is a small profitable company with wonderful people where I can make
things better with computers. And don't underestimate how important people
are. Your coworkers make a huge difference.

------
rsmith05
What about if you have a lot of student debt? Does that change things?

I have a bunch of student debt and I start paying interest in 6 months. I
elected to work at a big company to get out of debt. The benefits and perks
are amazing...and the learning opportunity is definitely there. It's turning
into a great decision :)

Anyone out there go to a startup while they're in debt?

------
truthseeker
Short answer here: If you don't mind not having weekends off, work for a
startup with some semblance of traction.

If you are interested in going to Tahoe for skiing over the weekend and visit
friends in Florida the next weekend? Pick a large company.

Who knows where each path will lead, go with what you enjoy the most.

------
known
I recommend wherever the pay is high

~~~
yannickt
Blindly chasing dollar signs can lead to very bad career decisions.

------
mbesto
Big companies are great in a few areas and highly recommend them to anyone
graduating.

1\. You learn strict business processes that are reproducible and repeatable.
They don't teach these in school.

2\. You'll be surrounded by senior people who have years of experience. Albeit
(in my experience) these people are not very good at what they do, they do
offer a good mentor model.

3\. You can make an endless amount of mistakes and you won't effect the bottom
line of the business.

4\. You'll quickly build a network of professionals. This is key. Networking
is (almost) everything in business.

Finding small companies that do all of these well do exist but they are hard
to find.

------
johnzimmerman
I started at a medium size company, went on to a large and am now at a
startup. I think it's good to try different environments. Some people prefer
the stability of a large company, but it wasn't for me.

------
rdin
I would recommend clearing out student debt before doing a startup full time.
One can always work full-time at a big company, and do a startup at the same
time on the side

------
cliq
I ask myself this question every day. argh.

------
dotcoma
my 2 cents: it's not - or at least it shouldn't be - a lifestyle choice.

------
glen
Both!

------
MenaMena123
Plain and simple... you can always get a normal job at any time or age, they
will be around for awhile. A startup gets harder to do as you get older and
family or bills come into play.

Start with the startup, no question about it.

------
earl
I'd tend to say big company. Go to google or microsoft for two to three years.
You'll go to a company with strong mentoring to help you dramatically improve
your development skills, and you can almost view it as getting a masters in
software engineering if you work hard and take advantage of everything the
company has to offer. You'll get a great introduction to things like testing
in practice, using and configuring linux in practice, developing good taste in
software development practices, debugging large systems, what large systems
should look like in order to be maintainable, source code control systems,
etc. You should also be able to live relatively inexpensively and save a great
deal of money.

After your two to three years, go to a startup. You'll get the increased
responsibility and have the skills and experience to take advantage of it.

In my view, the problem with going to a startup is they tend to need you to be
productive in a real hurry. There won't be much if any mentorship and often
you'll be left to work autonomously. Frequently you won't even get reviews or
feedback, which isn't as bad as it sounds, because often your boss won't be
able to give good feedback anyway -- remember that at a startup your bosses
are probably learning as they go just as much as you are. If you haven't
developed good taste in software and a sense for how to build big systems --
something virtually no undergrad has, with the exception of people who've done
a bunch of open source -- you can get yourself into a pretty bad place. Bright
people can often overcome bad software development practices, but only for so
long, and when the tech debt hits you it hits hard.

Edit: plus, if you go big company first, you can have little debt and $15k+ in
the bank. There's nothing in the world as reassuring as knowing that if shit
happens with your paycheck, you have 3-6 months to find a new job and won't
have any trouble paying bills meanwhile.

