Knowingly playing with fire like this is a sign of a lack of maturity, both on the founders part and the investor’s part. Anyone experienced in the business of building software would have known that:
1. It takes time
2. Time takes funding
3. It’s probably not going to work the first time you try an end-to-end test
Mature founders would have found mature investors to give them both the funding and the time to stabilize the software. They would not have attempted to make their investor demo the first big end-to-end test, and even if they did put off testing they would have communicated that to the investors, who should have understood the state of their investment only six ~months~ weeks in.
That says it all regarding maturity and/or professionalism, that’s the number #1 job of the CEO.
Actually, no, the #1 job of the CEO is "do not run out of money".
But, I agree that this CEO sounds like a complete cowboy. Not preparing properly for an investor meeting is ridiculous, and with that attitude, this CEO will probably run out of money sooner or later...
I suspect the author of this article will be much happier in her new job. Hopefully she knew what kind of work environments to avoid after this experience.
If your CEO can’t ‘sell’ the product / app/ company to an investor effectively, you won’t last.
The CEO should absolutely have the skills, knowledge and energy to sell whatever it is your business does
But, I guess Apple probably has people with better salesmanship skills in each product team than the startup had below the CEO. I'm arguing with myself.
Take a look at the presentation of the original iPhone. It was presented (if I remember correctly) by Steve Jobs himself. But he knew exactly which buttons to press in which order, because otherwise the phone would crash.
I think such an important presentation may/must be done by the CEO, but he must exaclty know that to do and he must prepare very well.
It doesn't matter really whether this is or is not knowingly.
If you are CEO and you don't know something (because you have never had any experience in IT, for example) it is your job to find people that do and give them tools to do their job well enough.
But you would not run a company without at least some experienced accountants or lawyers, I would assume any thinking person should be able to predict the same goes for software developers.
I wish this wasn't such a common trope among the VC, FAANG, or Fortune 500 crowd.
Believe it or not, there exist a million small businesses who don't enjoy the luxury of burning OPM, who can't afford $200k developer salaries, no matter how much they want to.
In one sense, you're ABSOLUTELY CORRECT. But here in the real world, in flyover country, revenue will always constrain resources. Those of us running small, stable businesses are forced to make tradeoffs that FAANGs or cash-burning VC-funded operations don't have to.
That said, yes, the people in this story seem to be the gambling, poor-management types and the OP shouldn't worry overly about losing this "opportunity".
Most small business are not that. If you are running a tailoring business, or an ice cream shop, or a landscaping, you probably don't need a senior developer. Heck, you might not need to hire any developers at all. As long as you have someone technically inclined, you can probably manage your digital presence well enough without it being anyone's full time job.
Part of it is also stingy investors in the ecosystem.
The top-tier investors often give enough cash to hire experienced developers. Unfortunately most companies don't get that kind of money, and instead of getting the $2M round they need, they settle for a third- or fourth-tier VC's $200K check with bad terms and a warrant for the rest of the $1.8M, and then they end up paying their employees crap wages and overworking them with the hope that they can attract a top-tier VC for the next round.
But expectations have shifted and management now expects to get the real thing.
This forum is the closest thing I get to coworkers and I don't even understand what half of you are saying. I'm fortunate for the opportunities that I have, but my antisocial tendencies and lack of professional peers can make progress a bit of a bear on occasion.
> when I'm going to either stop cutting myself on things
Never. You (should) get better at recognising some of the themes and danger signs, but the field evolves so fast that at some point you are going to work with something so new that literally nobody knows what the sharp edges are.
> land a position with some people who can show me their cool scars for a while.
Meetups, slack, discord, IRC, forums. Find the one that works for you and be a regular. Be an expert in one subject and be modest and willing to learn when it comes to others. Nobody has it all figured out.
I have often thought about trying to build a network of like-minded individuals. Of course, it doesn't come naturally. If it did, there wouldn't be a need for it!
My contact info is in my profile, feel free to reach out.
It's a definite time sink to learn these lessons, but it's of real value to me personally.
... I'm still a dumbass...
I wonder... if after 10 years... will I stop being one after 20? 30?
But the feeling of being a dumbass may never leave you entirely. You will need to learn to control that some, and not always let on to everyone around you how dumb you feel at all times. But... honestly, the folks I've worked with who never ever admit to feeling dumb or doing dumb things - they STILL make the same mistakes, often more, and seem to have no capacity for self-reflection or skills improvement. So... understand your "I'm a dumbass" feeling may just be part of you pointing out that you can get better, and help you find opportunities to improve.
As you say, self reflection and skill improvement.
I honestly think it's why I'm a good programmer...
That... and being lazy. I'll work for weeks to make processes easier. IE: a release process that used to be manual and fraught with mistakes is now, more or less, button clicks and powershell scripts.
I hope you find that place in your life too. It's a lot of relief when it happens
While that may be true, you're less of a dumbass now, thanks to experiences. If you were to guide a junior developer now, you'd probably walk them back from a dozen sharp edges, thanks to your experience, but we tend to discount that.
This will have taken your younger self , twice or more to understand the problem and come up with solution
Last Friday learned that Postgres (and apparently MySQL) will effectively ignore an index in a column when combining “ORDER BY … LIMIT …” and “WHERE some_column IN some_array”. I had introduced a query that timed out on a critical prod table , fixed it by removing the limit, and turned it into a teaching moment to others who could have made the same mistake: https://stackoverflow.com/questions/8909163/avoid-full-table...
There really is no substitute for actually making the mistakes and learning from them
I'd take a smart junior who can think logically and who is passionate about the job over someone who has 10x 1 year experience and doesn't want to learn, or is just not smart enough. Chances are a good junior can beat such senior after a few months (sometimes even weeks) of experience on the project. And the junior typically won't fight with the tech lead over something they "have always been doing" (even when it was an anti pattern).
Anyway, it is good to have at least one senior dev who is an expert on the tech stack / architecture used.
I've worked on many projects, some successful, some not. The difference was often that the successful projects had a critical mass of wise people who had learned from past failures and could anticipate the pitfalls and avoid them -- it seems more rare that actual project success comes down to having yet another brilliant programmer.
But all of these qualities only accelerate the learning process that happens in the real world. They don't replace it.
Edit: To be fair, given the choice, I'd rather have an MIT CS grad than some schmuck who barely squeaked through the MIS program at Big State U. But I'd take a good experienced dev over either of them.
Might still make sense because they're cheaper.
I think that's exactly the problem. Re top students I assume we're talking about things like a deep knowledge of algorithms, implementation details of relevant languages, the latest frameworks, being comfortable writing in an object oriented or functional style, being extremely smart, having a lot of working memory, loads of energy and enthusiasm, being able to grasp complicated concepts quickly etc (I've never met a recent grad who is even close to that, but I understand it's at least theoretical).
But experience lets you do things like push back a little on the requirements (because you know that what is being asked for is not actually what is wanted). Or choosing path A instead of path B because you know that path B will come back to bite your team later because you've seen how it played out a few times before. Knowing which things will make the biggest difference to the speed or quality of delivery, whilst costing the least to implement. You know what problems you should ignore and what problems are serious risks. Things like that can sometimes make the experienced developer a 10x programmer, it's certainly not because they're typing 10x faster than anyone else.
“Experience is what lets you recognize a mistake when you’re in the process of making it a second time.”
That "although" is the whole point.
Knowing the technical basics (language syntax, getting things to work) is the easy baseline. What's missing in every studente (unless they went back to school after a solid stint in industry) is the experience of understanding the processes and approaches required to build something lasting and to operate within a larger team.
That is what average means
Let's make this more obvious: Imagine that in you have to produce Nitroglycerine, explosive set off by the slightest of mistakes.
Would you rather it done by someone superbly clever, but straight out of uni, or someone who's average, but has done it for 20 years and survived?
Like they knew it was super dangerous, there wasn't new science discovered since then about this particular setup. Today rank and file engineers know not to do that
But what the seniors have over the juniors is several years of experience making mistakes.
The senior might spend more time doing PRs (juniors might not feel as comfortable), more time in meetings discussing new projects or architecting around arising problems. A junior is generally more enthusiastic so might voluntarily work longer hours to close of tickets, or just take fewer coffee breaks than a senior. A senior might also spend a portion of their time training juniors.
I’m not saying a senior engineer can’t be a prolific at closing off tickets as a junior, but more seniority means more responsibility and that often means less time writing code.
But there are also occasions when I might genuinely expect a senior to be slower. Like if they’re in their mid to late 30s and have young children who aren’t sleeping. People say you shouldn’t bring your home problems to work but the reality is that we are not robots and if you’re not sleeping at home then you’re performance at work will suffer. Whereas most 20-somethings have fewer commitments outside of work.
If we are talking really senior, like 60s, then a sad fact of reality is our mental faculties aren’t going to be as sharp as they were when we were in our 20s. So it might take an engineer a little longer to solve complex problems than someone fresh out of uni. Particularly if it’s an academic problem that one might have studied at uni but seldom need in your career.
So there are plenty of mitigating factors that might affect the throughput of a senior engineer. But that doesn’t matter but you hire them for their experience rather than their youthful motivation. And it’s also why it is important to have a balanced team of junior and seniors.
Bill gates Michael dell Zuckerberg Jobs Dorsey (Many others)
I’m sorry this makes so many people mad but… stop looking down on people
Also, why are people conflating high gpa with being a top student? Top student means “the best at creating software”
The people running the company were playing with fire and they must either be too junior themselves to understand that, or they were just knowingly doing so and hoping to get whatever product MVP they had planned as quickly as possible with the minimum amount of expenses possible.
Don't feel bad for being fired from such a company. It might have been the best thing to happen to you because now you get the opportunity of getting a proper job where you might actually have experienced people to mentor you and help you become a great developer and professional.
With that said: next time a CTO asks you to create something in a month for a demo, just go ahead and implement a mock (no DB, no error handling, just happy path code) that's just about enough for the demo, nothing else. Make it clear to the person who is going to run the demo that this is not the real deal, and arrange for only the happy path to be followed in the demo (add a few safeguards just in case so if the person does something unexpected you just ignore it, never crash!). You could have probably pulled that off in a couple of days :D but yeah, you probably thought you needed to have the real final product ready otherwise it wouldn't be demo-able... Trust me, that's almost certainly not the case.