"Startups right now are nothing more than a 'fad' a 'buzz' word in the tech industry. Get yourself a job at a well established company so you can learn something and have a job tomorrow."

A friend of mine and former colleague made that comment to me recently. He isn't unique in his thinking see below on a comment I saw on this startup advertisement.

As surprising as it may sound, many people with years of experience seem to have this notion that startups aren't worth the Risk/Reward. Leaving only the "kids" to go to startups.

I would like to tell you that startups are absolutely worth the Risk precisely because the rewards are not only quantifiable by money. The notion that they are just a 'fad' is so far removed from the truth and reality, you have no idea. My argument and advice is this; Startups are the best thing that could have happened to software engineers and if you could get into one you should immediately.

Now here is why I think that startups are great.

I truly believe that working at a startup will excel any engineers career trajectory by years. Three months after joining jet.com, a startup in e-commerce, I was invited to give a talk to the Iona College Computer Science Undergraduate student body and in that talk I mentioned that

"I have learned more in three months at Jet.com than I had in over a year at the Bank".

This isn't some gimmicky sales pitch, I'm not selling anything, I'm simply telling you that I have learned a tremendous amount working at a startup and you probably will too. Regardless how far along you are in your career.

In the three months that I had given that talk I had 6 micro services in production, six months later I have over 20 with four other apps that support the business to boot, running in a cloud environment with alerts, logging, dashboards and supported by better than enterprise grade libraries written internally at Jet.com.

I have had the opportunity to learn and use technologies such as Azure and most of its cloud offering. Tech like Redis, Elastic Search, immutable data stores such as Event Store, built lots of RESTful APIs written countless lines of code in a functional language called F#, in OOP languages like C# and used lots of JavaScript frameworks and even Node. Build tons of Micro Services. Worked in a stream based system with hundreds of millions of real time events and managed some fairly large near realtime feeds for partners like Google, Microsoft, and Facebook. Learned about digital Marketing, Retargeting, the different digital and traditional channels that exist in that space. Learned about stream and batch processing technologies such as Storm and Kafka and among many other things that would take very long to detail in this short opinionated blog post.

The point being get yourself into a startup as soon as you can.

As an example of the learning.

We have a feed with millions of price changes that goes out to our partners and the CEO of our jet.com wanted to A/B pricing strategies and see what performs better in our advertisments. At the bank that would have been a six month project, to modify a working feed that pushes out such high volume data. At a startup that was a two day thing.

Essentially the task was to Take this massive near realtime feed and build a cache with a front end so business folks can easily add products for A/B tests. At a startup the solution is yours to build, the problems are challenging but trust yourself you will solve them.

To finish off my example, I took this feed as it passes to our partners then I throw a few branch statements and look in this cache for marked products and finally alter their price and landing pages. This isn't your grand daddy's branch statement though, it's a branch statements on hundreds of million of product updates throughout the day. In F# we use pattern matching to branch and there are several advantages to this. Once I have the A/B test products I can then get the new prices and links to our advertising partners to see how they preform.

This was tested in QA within a day and deployed to production that same day. That test ran for the entirety of the next day. It was extremely successful and confirmed the hunch that displaying prices a certain way would in fact have a significant impact in raising the gross merchandising value (GMV) of the whole company and increasing conversion rates by seventy to ninety percent.

I would have never been able to build something that fast at a bank or any other company I worked at before. Not because adding a few branch statements is hard, but because no one would have ever moved so quickly, only a startup. No one would have trusted an engineer and one Marketing Lead, my good friend and colleague David Wu, to just build that within a few days and get it out into the world.

Startups move fast and that means you learn fast, trust me you have no choice.

The technology landscape has changed more in the last few years than it did in the whole thirty years before that, and it will continue to evolve. The big established corporations like the Banks are not the ones innovating, I promise no matter how good you are or how senior you are you will never get to deploy the kind of code you would have deployed at startup into production and have that level of business impact at a Bank. As much as I loved my Job at SunGard, because of the people I worked with and the responsibility they trusted me with, I would have never been able to make that kind of dent in a company with 17,000 people.

So if corporations like the banks and large enterprise level software companies like SunGard are not innovating who is? Is Google and Facebook? Will you learn more there than at a startup? Not really, No, at least I don't think so. In my opinion Google and Facebook, as innovative as they might have been at one point and as much open source software as they have committed, the reality is they have overcome their challenges. Their software is built, they need you to be a cog in their large machine now. Not a thinking problem solver that can toy around and experiment with this or that to see if it will work for them.

See this excellent article on the verge about Apple, Google, and Microsoft now solving the same problems

"Many of the brilliant minds working at Apple, Google, and Microsoft have found themselves having to fly the coop in order to give full expression to their creativity and embrace the inherent risk of that task. "

At startups they are trying to solve brand new problems. They will let you build tools to solve their problems all the time, internal tools, external tools, tools and libraries that get open sourced, eventually.

Startups are the only place you will be able to experiment, learn and keep up with the blistering pace of technology changes. Technology is going through some fundamental shifts, it always does at certain points in time, this time though is different. It's not really that different but the recent shifts to cloud big data and every other buzz word out there has had some effects and because you work at a large corporation you're missing out on all of it.

Some of the argument against startups.

I've worked at some established corporations in my past so I think I know what the argument against startups is.  As in sure you've guessed two of my previous employers were SunGard and Bank of America, these were fairly large enterprises. That alone doesn't make me an expert in the matter, by any means, but it does lend some value and credibility to my argument, given that I now work at a startup.

The single biggest argument against working at a startup, that I have heard, is that there is inherent risk of it going under. To be fair many do. The startup might go under for not getting funding among many other reasons. I am arguing that None of those reasons really matters. You would have learned so much and will become so valuable that it doesn't matter, the risk is well worth it. From my experience the safety net you get from a large corporation is no safety net at all. Even large corporations let people go all the time, even engineers.

The learning you will do at a startup overshadows any risk and will ultimately makes you smarter, will propel your career forward because of the opportunities that are there if things go well, and will ultimately make you more valuable to any organization large or small because of all the learning you will get out of it even if things don't go well.

Finding a startup.

Look for many of my friends and former colleagues it is not that easy going from being an enterprise software engineer to working at a startup. I had challenges; such as most startups didn't even want me at first. I used too much .NET and Java, not enough Ruby or Python. Maybe I wasn't able to, or willing to solve their puzzle and riddles. Once you get over that And if you can get yourself into one you absolutely should. It's worth all the risk, the pay cut you might have to take, the learning is so worth it.

You won't be browsing Facebook at a startup and you won't get to keep up with what your friends are tweeting about. That's because you'll be working you're ass off and learning like crazy. If you want to make yourself invaluable get ahead on all real tech "fads" that are going to become standard in a few years at all the large corporations out there, then get yourself a job at a startup.