This is such an important point for people to know when they're joining startups. You're basically investing in the startup.
If you're going to be an investor it's good to know what your alternative investments are.
If you put $50k in the stock market every year for 5 years @ avg. 8% return, your have ~$400k. Over 10 years it's ~$900k.
At 1% equity (after dilution) you'll need a ~40-90M exit to reach those goals. Given that your taxable event will be bigger, it's probably more like a $60-120M exit to break even if you're considering a $50k/year pay cut in return for equity.
Both the market and startups have risks. But if the upside of investing in a startup won't reasonably beat the market then you're essentially taking a pay cut.
But, on the other hand - the chance of retaining even 1% of a startup that exits for >50M is very small. By the time of an exit, almost no engineers will have anywhere near that equity.
If the parent was not accounting for inflation, 8% is low.
I’m not entirely sure it’s an assumption that will be correct for too much longer given the industrialization around the globe has increased competition significantly.
I think the true equity growth rate is closer to inflation / population growth rate; especially once we take the costs of climate change into account (think of it as a loan we have to pay back in either remediation of adverse climate effects or decreased future productivity).
And I’m not saying the US / Europe robbed any of those countries — just that there was a lot of easy growth in those countries in the 20th century, and western companies stepped in to facilitate and got paid a lot of money in the process. That growth is reflected in the stock prices of American and European companies.
My point is that those big, easy growth opportunities aren’t there anymore anywhere; and the growth opportunities in the future will be diminishingly small. We’re no longer bringing a country from the Iron Age mining with hand tools to the industrial era with mechanized mining and smelting; we’re largely just replacing one form of economic activity with another, slightly more efficient version.
Like the OP said, if you look at it only from a financial point of view then joining a start-up is probably a worst financial decision compared to joining an established company.
The OP mentioned that going the start-up way has provided him/her with unique skills that then were of great help in his/her career. I can chime in with my own anecdote and say that joining a start-up/small-ish company has provided me with a greater will to do the actual work, a greater sense of purpose compared to me potentially having chosen to work for en established/bigger company.
I'm in this job (I'm a programmer) for the long run, I genuinely think that had I chosen to work at a big company my mental health would have been in shambles because I would have felt as an insignificant cog in the corporate machine no matter the compensation.
That’s not always the case. Stock market returns are not guaranteed. If you start in the wrong decade you may be losing money.
I think we have selection bias on Hacker News because many of the prominent voices here tend to have high-paying jobs at prestigious tech companies, or at least know that they could get such a job at the snap of a finger. So from that perspective, joining a startup as an early employee is less attractive. For industry insiders who want to work at a startup, it often makes more sense to just raise money and start one yourself. They can do that relatively easily because their insider status vastly increases their chances of raising seed money.
For everyone else however... that cushy Google job is not at all guaranteed, and neither is the 500k angel investor check to be a co-founder. So, although being an early employee at a startup is definitely not for everyone... From an outsider’s perspective it can be pretty damn tempting.
I do hardware (sch/pcb) design in spain, I’m in a lead position in a small company.
When I look at what I’ve built, I have experience with technologies that most of my college mates are still mystified with (e.g. DDR4 or x64 architecture).
Most electronics in europe are industrial/power electronics, and most engineers spend their days doing what amounts to paperwork. In contrast I’ve had to ship new designs on a biweekly basis to keep things afloat, I’ve had to set up databases to keep track of our parts (something most hardware engineers don’t even understand), I’ve had to write reliable python scripts since our build process depended on it... the list goes on.
From my experience interacting with US engineers, you don’t even realize how little some “Engineers” in the old continent actually know.
Bad news: I use Altium
Good news: I’m trying out kicad on my spare time (feel free to take the credit)
As to the question, Altium is quite flexible in regards to using a database as a library, but it is riddled with bugs, workarounds and generally weird stuff. I’ve tried from the extremely simple to the overly complex. In that order:
- Easy level: Excel files on a shared NAS.
Pros:
* easy to set up.
* easy to convince management to try it out.
Cons:
* Not really a database
* You need to close Altium to add parts (this is very frustrating during sch capture)
- Medium level: Acces database (mdb) on a shared NAS
Pros:
* easy to set up (not as quite as excel but similar)
* you can add parts from inside Altium itself (with limited input interface)
Cons:
* because of how buggy Altium is the database tends to get completely corrupted. Almost daily backups are mandatory.
* You need to set up a form for part management, directly editing the mdb files is a path to disaster even with as little as 2 people.
Insane level: SQL server on AWS. Conected to local LAN through VPN. A simple php CRUD on apache for management.
Pros:
* Can handle heavish loads (a T2 micro can support about a dozen hardware engineers working in parallel)
* should be more scalable
* hides a lot of the complexity of the database for the junior engineers.
* small sized NAS won’t suffer while someone is generating a BOM.
* changes to database are more manageable if someone on the team knows sql.
* more reliable and resilient to altium bugs
Cons:
* No internet connection means no one works.
* possibly the most expensive solution
PS: I’m on my phone, I’ll reformat stuff when I get my pc to make it more legible
Startups, on the other hand, were hungry for talent. The pay I got at my first job wasn't great, even by startup standards. But it got me working on a more up-to-date stack (JS, Go, Python, Scala, NoSQL DBs...), taught me how to better handle the tradeoffs between clean, robust code and fast shipping and got me a great network.
A few years later, I got no equity, my salary is only decent (nothing FAANG-level, but better than friends at some larger corps) but I like what I do, got a fancy title, manage people and am considered indispensable enough that I can make my own hours.
I've met a large number of people from similarly non-traditional backgrounds as mine (former nurse, geology PhD, classical musician...) in the startup scene and my guess is they would never had a shot at working in tech if it were not for startups.
Even if more responsibility means more hands on responsibility, it's a mixed bag because your experience tends to be broad but not deep. Still valuable, but not really worth the comp tradeoff IMO.
That's kind of a weird assumption to make.
> However, to me, it’s dubious how many startup successes, especially in India, have been great for, say, 20th to 50th engineer at those companies. Swiggys, Olas and Paytms of the country are infamous for not giving good (or any, these days) equity to engineers.
I wasnt sure, hence stated the assumption. Did not want it to come across as a prejudice. Apologies if it did.
Example: "Defined the technical architecture of the MVP and implemented large portions of it. [Platform-specific stuff here]. Lead the recruiting effort to bring the company from 2 to 10, interviewing over 100 applicants. Participated in raising seed-stage funding from X VC and N seed-stage investors." IMO the thing the Bay Area does better than everywhere else is in the face of failure, the immediate follow-up question is "so what did you learn?"
+100 to this sentiment. It has never made sense to work at a startup to "get rich" it has always made sense (and will continue to make sense) to work at a startup in order to expand your personal skill set and to take on different challenges.
In the Bay Area, and I recognize that this may be completely different elsewhere, when you work at a startup it is often difficult to "hide" if you are under performing, and it is easier to "shine" when you put in the extra effort. It is also generally a place where engineers can try on more marketing roles and vice versa. Moving from "management" to "individual contributor" is often more fluid, and the variety of technologies you are exposed too can be quite diverse. Start ups are generally less 'snobbish' about which college you graduated from or even if you graduated from college, concerned more with results and less with appearance. Turn over (people coming and going) is generally higher so you end up knowing people at more companies which builds a "network" when you decide you want to work somewhere else.
For new engineers I typically advise them to find 'mid-stride' startups, generally something that as locked down a Series A or Series B round so there is "real money" and they can generally make a near market rate base salary. And I advise them to go in with the attitude that they are using the startup to expand their skill set and increase their exposure to various roles.
Generally its a great way to launch into your second (or third) job.
Languages like Python and Ruby are just grossly inefficient. Single-threaded, huge memory profiles, and fully synchronous I/O. Whereas in C#, Tasks and async/await probably provide no shit 10-100x the performance in both compute and concurrency. It would probably be the same deal with Go or Java.
The point is, we tend to hand-wave these kind of choices away on HN. "Just ship it, language doesn't matter". But increasingly, I think it does. You want to make a product with an aggressive free tier, where only like 1% of the user base pays, or some data-heavy analytics thing, these kinds of decisions can be make or break for a business.
As far as language is concerned, Ruby and Ruby on Rails is the usual choice with Heroku and is marketed specifically towards RoR devs (https://www.heroku.com/ruby) and Postgres as db. Most startups who decide to go the RoR route are not going to decide to go with C# as far as the Microsoft ecosystem is concerned, which would be a different set of architecture design choices. If you wanted to market a more performant alternative Go would 100 percent be the way to do it.
I would still somewhat disagree with your conclusion that language choice is imperative though, so much as how well you architect your application and infrastructure. A simple RoR app that pulls in a bunch of static assets from an S3 bucket is going to scale at whatever load compared to an ETL tool like Airflow that might need to process terabytes of data on a daily basis and has to have more planning from the start.
My take is it’s great to use ec2 pricing, likely with beanstalk, and aurora or perhaps aurora serverless for sql. There’s room for moving fast with rails. Then as things grow, splitting off a microservice with the same url via your proxy server which uses go and redis. This way you are not over optimizing one data model before you know exactly what its schema is.
You might even end up with a side project that earns you passive income in the end if you're lucky, but you had to be lucky to get a "break-even" payout from startup-life anyways as you have said.
Source: while taking a stint in engineering project/product management, I was a core developer on a popular open source project for 5 years.
Blasphemy! :-)
whether the increase in the expected present value of your future earnings justifies the present-day lower salary is a question of magnitudes and probabilities
But what I learnt in full stack development even though it was just C# and SQL help a lot!
Arthur Andersen.
Coopers and Lybrand.
Deloitte Haskins and Sells.
Ernst and Whinney.
Peat Marwick Mitchell.
Price Waterhouse.
Touche Ross.
Arthur Young.Because not everything is about work.
So no, its not worth it and hasn't been worth it for some time (I was there nearly a decade ago)...
...financially.
However, what was worth it was the experience I gained. Being the 1st non-founder engineer means you own a whole stack or specialty and you have no one to lean on. You have to figure everything out. Doing so propelled my career immeasurably. Without that experience I'd still likely be a very mediocre engineer. As much as it wasn't a good financial decision it was a great decision in terms of upping my skills, becoming a harder worker, and building a network with VCs and the local engineering community.
I had already worked at the Big 4 prior to switching and I didn't thrive in that environment. The startup ecosystem provided me the opportunity to work hard, network, build skills, and give me the tools & learnings on how to start my own business.
Not everything is about money.