One unorthodox strategy, which I've discussed with investors, is funding early stage such that you can pay comp that BigCo can't easily compete with -- their scale works against them. In early stage, the absolute amount of capital is trivial (and there are trillions sloshing around these days), but the quality of the initial engineering team will have an enormous impact on the success probability of the investment. A few extra million in wages can have enormously high leverage in generating billions in returns. Imagine poaching literally the best engineers in FAANG and the kind of core team that would give you to attack markets no one has attacked before.
I'd like to see top engineers in tech compensated like top professional athletes. Investors pay the wages for athletes because the returns justify it, the scale of the wages is not material if you are chasing results. I believe that model applies in tech as well.
Meanwhile, if you apply the same math to the founders and their equity, in every single case they are paying themselves multiples of what they are offering me and significantly above their own market value, despite them not having done anything yet beyond getting seed funding.
What then happens is that startups like these end up getting what they pay for - they get the appropriate level of talent at market price. This maybe a market-optimal result but the cumulative effect of all these startups doing this is that most top people have sort of written off "working at a startup" as a reasonable career option, because of pay and what pay implies about the talent level of the people they would work with. This hurts all startups, even those that are willing to pay up to get the right talent. And if top engineers won't even consider your company, offering top-tier comp may backfire - you run the risk of overpaying for the same talent you could've gotten at a lower price. It's hard to break out of this cycle - consider how the same few schools are able to persistently attract the best students - and I suspect the entire startup ecosystem is trapped in it.
The behavior of startups is not intrinsic, it is the product of incentives. If I created a startup tomorrow, I am confident that I could pull world-class engineers out of FAANG. But to your point, I would not play games with compensation. I hire the people I would hire because they are clever, they aren't going to be fooled by bullshit nor would they respect me if I tried that. That is an essential quality of good startups that should not be lost in this mix.
This is easy. Offer relatively competitive TC with a real potential upside to the equity package and a work environment that's attractive. BigCorp is mired in politics and decision-making that's grounded in risk mitigation. Do something legitimately interesting and folks will come. Give them some agency and the ability to really get things done and they'll stay.
It's easy to deduce that those folks would be more interested in hard tech than any paint-by-numbers startup. I've worked at startups and well-established companies, and have found it surprising how easily really good engineers will turn down lucrative but uninteresting opportunities at well-established companies and how readily they'll take an "interesting" role for less or sometimes way less money.
As an aside, I’ve just re-read a Terry Pratchett novel and your description of the good engineers’ behavior made me think of Leonardo da Quirm :)
https://www.tandfonline.com/doi/abs/10.1080/00221546.1943.11...
To my mind that's an engineer whose curiosity is uninvested in the outcome of the exploratory work.
I've known good engineers and great engineers and to some degree, they were all like Leonardo da Quirm, though not all quite as naive.
The past 2 years I was working part-time for a startup as I am running a business of my own which is almost on autopilot and allows me time to work on other things as well.
After 2 years I realized the positive and negative sides of working for a startup that is hard to find out before working for one.
First of all there were 3 main guys running the show. Only one of them was a tech guy, the other two came from a business background with no tech knowledge wanting to build up a tech startup. Joining that startup as an early employee didn't mean much apart from getting close to 1% in options (which is nothing considering my contribution to the cause was worth way more but obviously 1% is an industry standard).
The work became increasingly more demanding, although they knew I had other things to do and I was part-time, I was asked to work more than what was normal and almost reached working full-time helping them out (which was stupid of me, I was sacrificing time that I could be doing other things). The paycut I took also from my previous part-time gig was about 40% which is almost half. The cause of the startup also started changing increasingly and although at the start I was keen to have the paycut etc it felt like I didn't belong anymore (thats important for others wanting to work at a startup to know. The idea is not gonna remain the same as it is especially with business people driving research all the time).
The only positive was that I got some more experience on as a fullstack than before as I had to work a bit more on aws and backend systems and also was using "newish" tech.
My honest opinion and advice to anyone that is willing to try out working for a startup is:
Don't compromise your salary and well-being.
Startups will offer you options which is usually crap unless you are a co-creator. If you are taking a paycut but you support and like the cause of that startup then ask for a bigger %. Realise that most likely the startup is not gonna vest or sell and generally think of your options as a gamble.
Its most likely that the chances of you making real money out of your options is the same as you winning the lottery. If you are asked to work hard and stupid hours, then reconsider your well-being and ask yourself if its worth it.
Also look at the composition of that startup. For me personally it was stupid thinking that 2 business guys having the biggest % in the company would ever work for a tech startup. They contributed in writing long essays and doing research all the time, but at the end they couldn't attract more engineers by paying shit salaries and giving out 0.2-1% in options. The product failed because it couldn't be delivered on time due to having less people working on it than it initially required, and because those business people in order to justify their own % to the company were going on heavy research and constantly deciding shift changes on the product completely out of the blue just because they had nothing else to work on. (we were supposed to release within the 1st year which would be a year ahead of our competition. We released after 2 years which gave competition the lead of releasing before us and a much better product)
All in all - don't sacrifice your salary, thats how you feed yourself and your family and someone elses weird-ass dream is not gonna make you silly money out of the blue. And also remember that working should be taking some part of your day, but you also have one life and working your ass off for someone elses shitty dream aint worth it.
Every person taking equity needs to justify their value now
This means that a setup with two "business people" founders need to justify their worth immediately. Not with promises of future sales. Not with vague research.
Worthy ways to prove their worth could be raising a giant amount of funding, or putting their own money into the startup as a sign of skin-in-the-game, or purchase orders standing ready to purchase the product once it is complete, or paid PoCs. Or serious track record of delivery/wins.
If you find a setup where engineers are taking all the initial risk while "business founders" stay on the sidelines waiting for a product to be built until they start to work -- run away. Think about it this way -- they have all the upside (they can choose later to work or to flee) while you have all the risk (you invested your pay-cut for vague promises of future work.)
Damn, this is exactly what I want to do. Computer vision too.
Do you have any advice other than "don't"?
Would basing the company on the East coast near a tier-1 research university help with talent?
Could you have strong software engineers support the research roles? Does that pattern work effectively?
Another thing I really want to do is offer a 4-day work week with the promise of sabbaticals and/or remote work. That might not be attractive to everyone, but it's something that would speak to me and that I would want in addition to equity and salary.
Are you still interested in computer vision? Want to chat sometime?
I think this would be a very strong advantage in the hiring market (assuming you can raise money from investors who're okay with it).
I'm not your target market (I'm just an in-demand software engineer who happens to be learning ML, not a top computer vision researcher), but this is something I'd be willing to accept substantially lower comp for.
Unfortunately most startups seem to require even higher work output than big tech.
The catch here is this will potentially enable you to hire those 10x people. Even at reduced productivity, 80% of 10x is more than double productivity for 100% of 3-4x people, and perhaps this work environment will foster other people to increase their productivity as well.
With the right people and product, I see this as the ultimate weapon against big tech, most of which will have shareholders that will act a lot more conservatively when it comes to risks compared to startups.
This is not something big tech will be able to accommodate in the current macro-economic environment, no board will approve basically a 20% salary bump to all employees and while risking a potential drop in productivity.
FAANG don't have offices here and don't offer remote positions, so no one is competing with them. As a result senior developers are getting like $130k or something, and seem to be happy with that.
Some people (myself included) don't want to move anywhere else even for $500k. So it seems like a nice little arbitrage.
I think the answer is, know exactly how you want to exit before you start and plan for that. Realize also that is 180 degrees polar opposite of how the major VC's want you to approach it - so if you wanted institutional money from Sequoia etc... they won't invest if they know that is the case. There are a lot of good reasons why they take that approach, power law and all.
The reality is, your best case scenario is most likely an acquisition. Which might be exactly what you want, and if so absolutely go for it, but you need to really understand how and why and when the companies you are targeting do their acquisitions. This is incredibly hard to do if you haven't gone through multiple acquisition Due Diligence processes before, but I know of people who have repeatedly done this, so it can be done.
As to the other points, there are too many variables to say whether those are good ideas or not, totally depends on what you're trying to do.
My advice is to find a technical co-founder who has built and scaled a CV system at a larger tech company, but who is looking for a new challenge. There are a lot of annoying problems that can be solved with CV as long as you create a way for users to help you get labeled data.
1) Kuberentes 2) Microservices. 3) AI
All of them are based on open source, and all of them are permissionless (I.e. the startup does not need permission from a big company, e.g. an app store owner).
They also erode the build-in advantages of big tech:
1) Kubernetes erode cloud lock-in on compute/storage. 2) AI is best serve on the edge.
I would say that everything today is up for grab.
Microservices are unix pipes but slower.
AI is linear algebra that costs x1000 because of the brand name.
There is no revolution in software. We are just building crud as high and as fast as we can because the quality of developers tends to zero as the number of developers increases.
Not if you're a 1,000+ engineer org with an SOA.
> Microservices are unix pipes but slower.
Humans are way more expensive than the machines running our code. You can always spend more on spinning up additional instances. In reality the overhead isn't that bad. The principles of immutable stateless deploys free up so much mental energy when it comes to thinking about how to get your code out and not break things that it more than pays for itself.
> AI is linear algebra that costs x1000 because of the brand name.
Tell that to my real time voice conversion system I just wrote. There's a lot of new magic happening right now.
> There is no revolution in software.
I'm on a fucking phone responding from hundreds of miles away. We're launching satellites that beam internet.
> We are just building crud
You can't speak for everyone here.
Are you in adtech or a social spyware company? Maybe don't work like that then.
Find meaningful work that speaks to you.
> quality of developers tends to zero as the number of developers increases.
I work with brilliant people.
That's the problem. With a sane simple architecture instead of 40 years of crap on top of crap you wouldn't need thousands of engineers to spin up instances.
>In reality the overhead isn't that bad.
Over 1e2 times if the solution is in software, over 1e5 times if it's an fpga. Around 1e8 if you do it in silicon. You make the savings from not hiring the 1000s of engineers to deploy your bloated horror.
>The principles of immutable stateless deploys
Has nothing to do with k8s. Nixos and Guix are two systems that are as close to functional as possible and they sure as hell aren't 'stateless', even though they come closer than any of the sexy trending tech.
>Tell that to my real time voice conversion system I just wrote.
Thank you project librevox for proving a near infinite training corpus, thank you nvidia for gpus to do linear algebra 1e5 more efficiently than you can on a cpu.
>I'm on a fucking phone responding from hundreds of miles away. We're launching satellites that beam internet.
Like everything else you listed there this is a hardware improvement. A Casio watch from the 90s had the same order of magnitude computational capability as the first generation IMPs. Good luck getting it connected to the internet using any software you could write for it.
It's all new.
> wouldn't need thousands of engineers to spin up instances
If thousands of engineers had to worry about deploys, that'd be a problem. The deploy team is small. K8S makes this dead simple.
> Over 1e2 times if the solution is in software
That's ridiculous. Where did you get those figures?
> 1e5 times if it's an fpga. Around 1e8 if you do it in silicon
If you're writing code for FGPAs or burning it to silicon, you're far removed from application server development. That would move at a glacial pace.
> bloated horror
Our containers are thin.
> Has nothing to do with k8s.
You're just hating on k8s at this point.
> Like everything else you listed there this is a hardware improvement.
Kubernetes. :P
Honestly there's been a metric ton of software improvements. Literally everywhere.
Git, modern kernels, Rust, Paxos (popularized in the 90s), LLVM, modern game engines, tmux, Wikis, bittorrent, blockchain, protobufs, gRPC, Bazel, Redis, modern PL idioms, futures, TOTP, U2F, Markdown, RSS/Atom, so many algorithms, seam carving...
> It's all new.
Now I’m tempted to reply, “No wonder that 1000+ engineers can pile up crap that fast” :)
> Not if you're a 1,000+ engineer org with an SOA.
The fact that most FAANGs (Amazon especially) developed their own systems that are not Kubernetes, and often much simpler, should make you think. Many don't even use containers - by design.
(Source: direct experience)
These companies had deployment needs that weren't at the time met by off the shelf open source software.
That's not what I wrote.
I wrote that the systems they came up with are much, much less bloated and provide very comparable features - if not better.
I disagree. Maybe it's because we haven't gone "full Kubernetes" where every cronjob is now a Kubernetes cronjob, or what have you, but for all the complexity we've had to overcome, we've seen substantial benefits.
For example, autoscaling instances of my data pipeline apps based on Kafka lag.
Was it complex? Yes. We had to expose Kafka topic lag as a metric to Prometheus, then configure the k8s metrics server that HPAs (Horizontal Pod Autoscalers) use to scale to pull that in from Prometheus using k8s-prometheus-adapter as a custom metric, then set reasonable scaling limits in the data pipeline apps HPAs.
Was it worth it? Fuck yes. We no longer have to worry about data arriving out of time at our data warehouse, because the scaling we've configured (in YAML, god rest its dirty soul) ensures that our data will always arrive at the data warehouse within 5 minutes, which is ideal for a near real time reporting product that greatly enables our end users.
Is Kubernetes worth it? For us, definitely. For anyone else? Really depends on your use case, don't cargo cult this shit.
Where do you work? I'd like to pitch my radical idea of edge consolidated cloud computing.
Yep, we could handle it easily on one machine, if we gave it unfettered access to all the resource, but our throughput varies during the time of day, so dedicating a machine to it to handle the peak throughput wouldn't make financial sense at 3am at night. So it's far simpler to scale pods with known resource usage as needed.
It also helps prevent issues when throughput suddenly doubles because of a business decision that you're left out of the loop on.
So autoscaling pods is ideal for our use case.
Is your aws bill really under $500 a month?
Will see if history repeats itself and we will see be imperative systems.
I was doing "microservices" on QNX using MsgSend/MsgReceive for hard real time over 15 years ago. It doesn't have to suck; the mainstream is just using the wrong tools for doing it fast. The QNX people managed to shoot themselves in the foot by going closed-source -> open source -> closed source -> open source -> closed source, after which their developer community was fed up.
Machine learning is not linear algebra. It's nonlinear. That's what makes it useful.
Not that you're wrong per say, but personally, I think you should take a look at the HN guidelines. Like don't be snarky, and don't post shallow dismissals.
Just categorizing the arguably most popular way of building software as "crap" doesn't seem like thoughtful or curious conversation.
I completely get the hate for modern web, but in this case I think it's unrelated. The whole Kubernetes/microservice world exists basically to serve JSON and similar protocols. Maybe rarely some static HTML.
For HTML->CSS->JS->Webasm stuff it is more fashionable to compile at build time and service as static assets. That's the polar opposite of Kubernetes/microservices.
This doesn’t even make sense because it can be said about anything involving numerical work on a computer and it’s still roughly true. Also because all of the libraries are free anyway.
Sure, but we've learnt to apply linear algebra to achieving things we could only dream of 10 (or even 5) years ago.
Contrary to your points, I don't see any way this will change until some big technology revolution happens that puts power back into the hands of creators - though that might be a pipedream.
Note, that doesn't mean you can't start and be successful with a company. What I'm trying to point out is that the days of a scrappy upstart coming along to "unseat the leaders" doesn't seem anywhere near realistic.
The only counter to this might be worldwide competition - so for example I could see Tencent getting bigger than Facebook in total user numbers. I'm not sure if these are comparable because they are in segmented markets.