Earlier quoted context omitted.
I would expect most to be disappointing too, and it's a good idea to avoid those. Proper logging doesn't take more time, it just takes more discipline / giving a damn. People and companies that say: we don't have time to do it right Almost always mean: we don't know how to do it right Talent, not time, is the enemy of quality. (at some point that stops being true, but most companies (startups or not) are soooo far fr…
I think the point Waterluvian is making is that if a startup has all its development practices buttoned down right, it's either not a startup or it's going to go out of business soon. Most people (who are even thinking of working at a startup, at least) would rather have a job that's organized chaos than not have a job at all. The ideal order of tasks for a startup usually looks something like this (and I say "ideal"…
Questions to Ask Before Joining a Startup
301–310 of 348 posts
Re: Questions to Ask Before Joining a Startup
#302Re: Questions to Ask Before Joining a Startup
#303Earlier quoted context omitted.
The answer is hidden in your question: you own common stock. The investors got preferred stock. As the name implies, their stock has privileges. A common one is liquidation preference. They get their money back first, then the common shareholders get whatever is left. For an extreme example, say the VC invested $10M for 10% of the company, and then the company doesn't manage to grow, and gets acquired for the same $1…
Can't you ask for preferred stock instead of common? Isn't it a common case?
Re: Questions to Ask Before Joining a Startup
#304Option piece is misleading. You own 1% of options and company is bought for $10m. Your payoff? Likely $0. He forgot to mention preferred shares given to VC’s with liquidation preferences that likely never disclosed to new engineers. This is what makes new engineer to sacrifice his salary for a possible liquidation even that likely either never happens or there is no money left for him after VCs took their xN ratios o…
Always ask about the preference stack. You'll rarely discover anything interesting, but if you do, it'll completely change how you value your equity grant. https://angel.co/blog/liquidation-preference-your-equity-cou...
"How much would the company need to sell for before my equity has value?"
Key #2 (not mentioned ANYWHERE): "Can you guarantee that my equity will always be worth at least that in case of acquisition for the above value?"
Key #2 stated in writing (congruent with typical verbal promises of implied future wealth) will actually protect you and possibly justify your salary sacrifices.
Without Key #2 guarantees - the next round of funding will likely push your equity value out of existence.
Re: Questions to Ask Before Joining a Startup
#305Earlier quoted context omitted.
I think the point Waterluvian is making is that if a startup has all its development practices buttoned down right, it's either not a startup or it's going to go out of business soon. Most people (who are even thinking of working at a startup, at least) would rather have a job that's organized chaos than not have a job at all. The ideal order of tasks for a startup usually looks something like this (and I say "ideal"…
That might have been true 20 years ago but today basic development practices are a solved problem. Any competent senior developer knows what to do. There's no need to start with chaos and repeat the same unnecessary mistakes.
The point is that in a tech startup, you are attempting to solve a previously unsolved problem. If the problem has already been solved before, why shouldn't your customers just use the existing solution? And there's a generic set of best practices for startup coding, but it basically amounts to "Do absolutely nothing that doesn't help you validate the key unknowns of your business hypothesis." Basically if you know that something is going to work, you shouldn't be doing it - you should be integrating the library/service/tool that already does it, or hiring the person that's done it before.
Re: Questions to Ask Before Joining a Startup
#306Earlier quoted context omitted.
That might have been true 20 years ago but today basic development practices are a solved problem. Any competent senior developer knows what to do. There's no need to start with chaos and repeat the same unnecessary mistakes.
It's a solved problem for a given problem domain . The "best practices" for software development depend very heavily on which particular industry you're writing software for, and senior developers in one industry are basically incompetent when it comes to working in a different industry. I've worked in finance, I've worked on search, I've worked on casual Javascript games, I've worked in compilers & devtools, and I'v…
There will of course be some outliers where these best practices don't apply, but I assert that those are very rare. Most startups aren't special.
Re: Questions to Ask Before Joining a Startup
#307Earlier quoted context omitted.
I think the point Waterluvian is making is that if a startup has all its development practices buttoned down right, it's either not a startup or it's going to go out of business soon. Most people (who are even thinking of working at a startup, at least) would rather have a job that's organized chaos than not have a job at all. The ideal order of tasks for a startup usually looks something like this (and I say "ideal"…
This is very true. But setting up CI is a day's worth of work, and pays off almost immediately. Having reasonable logging in an app of any serious size is a cultural thing; it takes exactly as much time to write as bad logging, and saves oodles of time every day when you have to discover and fix issues. Compare it to building a motorbike. Yes, you want a prototype fast. But if you have all your tools stored as one bi…
Unit/acceptance/integration tests, if done right, capture requirements. They verify that the code does what it should do, and continues doing it even when changed. You can't write meaningful tests until you have some basic idea what the code should do - what would your expected results even be?
Logging, if done right, is about being able to quickly answer questions about the operation of your system. You learn which questions to ask only through the experience of having people actually use it. Logging can easily tell you fine-grained details about how much wall-clock each phase of your program takes. Should it? Well, depends - if you're about to rip all the code out and rewrite it, or if it's just something that runs once to generate some data and never again, it doesn't matter if it's slow.
Similarly, good logging can tell you precise details about how people are using the product. Should it? Here's a counterintuitive lesson learned the hard way: not until after you've answered the question of are people using the product. If you're getting a bounce rate of 100% (which you can determine by slapping Google Analytics on the front page), you need a completely different product concept, and it's a waste of time to instrument each user action with fine-grained logs until people are actually using it. You can always go back and add the logging then.
A motorbike is a poor analogy. The consequences of failure for most tech startups are significantly less than the consequence of a motorbike crash, the software is a lot easier to change than motorbike parts, and the goal of what the software does is a lot more ambiguous than what a motorbike should do. Rather, I'd use the analogy of a novel. Your first draft of a novel is going to suck, it'll barely make sense, and the goal is just to get your thoughts down on paper. When you do revise it, you revise for plot & character first, then pacing and voice and realism and sensitivity, then you might clean up dialogue & wording, and only then do you look for typos. Why? Because there's no point in fixing typos for passages that are going to get ripped out and replaced anyway. Spelling and grammar is the part that everybody thinks of because it's the part everybody can do, but it's really the last part of putting together a finished story.
Similarly, unit tests & CI & logging & one-click builds are the parts that everybody thinks of when they hear "development" because they're the parts that everybody should be able to do, but they're the last phase of building a worthwhile product. The first questions are "Who is using this? What are they trying to accomplish? How does it deliver value? How is it different from other alternatives available?"
Re: Questions to Ask Before Joining a Startup
#308Having worked at several start-ups, I'd say the employment risks are not worth the cost. In most of my cases, when the start-up hasn't raised enough money, you end up with a poor work environment - pissed off/stressed bosses, weird work hours, "do anything" to save the business mentality... Generally layoffs/firings occur pretty abruptly and you're left filing for unemployment without a "thank you". My advice would b…
3-5 years old with $100M revenue is deep into unicorn territory already. I'm sure you can count companies that currently fit those criteria on one hand.
Re: Questions to Ask Before Joining a Startup
#309> A good rule of thumb is 25% of take home pay should go towards housing and up to 40% in the Bay Area. 40% can be done if you minimize costs like going out or have a second income. This is an interesting, and perhaps telling, assertion. 40% can be done if you minimize costs, not only in the Bay Area, but anywhere else. Thus, the implicit point here is apparently that the opportunity set in the Bay Area is so great t…
Re: Questions to Ask Before Joining a Startup
#310Earlier quoted context omitted.
It's a solved problem for a given problem domain . The "best practices" for software development depend very heavily on which particular industry you're writing software for, and senior developers in one industry are basically incompetent when it comes to working in a different industry. I've worked in finance, I've worked on search, I've worked on casual Javascript games, I've worked in compilers & devtools, and I'v…
The vast majority of software startups are attempting to solve previously unsolved business problems using mostly the same technology stacks as everyone else. The basic principles of CI/CD are pretty similar regardless of language or tooling, and should now be understood by any competent senior developer regardless of whether they work in gaming or avionics or whatever. Applying those CI/CD principles absolutely help…
However, my experience is that those opportunities are largely getting tapped out, and the ones that still exist in the market today are increasingly niche. Between YC & accelerators, services for startups (Clerky/Gusto/Stripe/AWS/etc.), availability of capital, and the amount of open-source software available to build systems, it's become incredibly easy to found a startup - which means that lots and lots of people have, and picked clean most of the markets where a viable product can be made by gluing together these components.
Continued success under capitalism means doing new things that haven't been done before. The web, mobile, and tablet were new platforms that opened up computing to huge new markets. However, all the new platforms since 2010 have fizzled and failed to get mass adoption - wearables, realtime web, AR, VR, cryptocurrency. That leaves tech startups founded today trying new things, either leveraging AI & data science for new insights, trying to get access to increasingly unruly data sources that have not yet been tapped, exploring variations on blockchains & cryptographic proofs, or combining various platforms & libraries in new ways to find new uses. All of these take a lot more experimentation and have much less defined best practices than web and mobile development, but the potential upside is much higher than leveraging a database-backed webapp to solve a new set of business problems.