Hacker News new | ask | show | jobs
by radmuzom 4145 days ago
In my experience, bad advice (though I agree it may work for some).

I made the mistake of joining startups early in my career. I still suffer because of those decisions. It is much better to work for a big brand when you are young. Yes, in startups you get to wear a lot of hats but unless you are really lucky, you never learn anything in depth. Big companies have enough good people to learn from if you are motivated enough (as I was). And worst of all, unless you are one of the founders, and the startup is reasonably successful - then they will bring a "VP of Engineering" from a big company after two years irrespective of how much you have helped them build their systems and probably deserve that role.

4 comments

I guess my startup experiences were different. In one startup I worked at, I learned A LOT about data, databases, JDBC, connection pooling, JVM tuning, etc, because the volumes of data and we were working with were just unheard of at the time and the traffic to that data was not cacheable. I had to disassemble a vendors JDBC driver and tell them why it crashed all the time for instance.

In another, it was lots of JVM knowledge (both threading and memory management/garbage collection), caching, distributing work which needed to be calculated, etc. We found several JVM thread locking bugs and worked with Sun to fix them. I worked with some really great people in their 40's at this one and learned a lot from them.

I suppose the majority of startups are different these days though? Mostly RoR and Node based social things. The biggest worry is if the Facebook Like and Share buttons work.

If you are working somewhere that is only a CRUD website at it's core and doesn't have anything else going on, I suppose there isn't much to learn on the backend side of things.

I think the sweet spot for a brand new developer is a company with about 50 people. That way there are other, more experienced developers you can learn from and yet there aren't so many people you're doing someone else's job when you step out of the very narrow confines of your own.

Some of the people from my graduating class in college started at really large companies and learned nothing because they were such a small cog in a really large machine. I went to a company which varied between 40 and 50 people and had the opportunity to learn as much as I could soak in.

Anyway going to a startup is a lot like gambling. You'll most likely be looking for another job soon, but if it pays off it may pay off really big. Who cares if they bring in a "VP of Engineering" if I can cash out my options for six figures?

If it's been two years, the options are worthless, and it looks like you're going to end up a low level employee at a larger company, then it's probably time to move on.

Truth is, YMMV. I have only worked at startups and smaller companies (& a mid-sized non-profit for my first job), and I mentor my junior developers quite frequently on improving code quality & code design. They also get the space to work on features & sink or swim based on their decisions so the lessons hit harder - the responsibilities are great, and they aren't just siloed into maintaining existing code. They also get to see the difference between excellent code & code that they have written.

It is hard to speak for all startups since they're a dime in a dozen.

My hypothesis is that working in small companies (or startups) like Fog Creek where the goal of the founder is to be sort of "be happy and make some money at the same time" is going to be a far better experience than the typical company whose goal is "Let's acquire users so that there is potential to display ads which means that I get funding or get acquired". Of course I have no data to back that up.
But aren't the big companies often very slow and boring to work in? Of course they have some interesting projects but if you really want to build something from the ground and work together where the whole company is in the same team it will hard to achive in a big one
Yes, they usually are.

The sweet spot is to find a company developing a new product or something of the sort.

Where I work now I started on a new product that was young, and since moving on from that project, we have replaced many legacy applications/products. I've done my longest employment stint (4 years) of my career because it's been my best job at this point.