Three programmers got fired, including me, due to a single app crash
betterprogramming.pub
betterprogramming.pub
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.
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.
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?
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...
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.
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.
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.
> 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.
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'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.
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.
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.”
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”
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.
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.
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.
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.
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.
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.
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.
But expectations have shifted and management now expects to get the real thing.
Unlike here I have no qualms about naming and shaming praktice.ai
That sounds like wage theft.
I’m sure the time has long passed for you, but it’s worth noting for any other people reading this who might end up in similar circumstances.
But this demo - her bosses ran out of money, and even if the text field did work, but they didn't get the money from this investor, they were going to be fired.
That aside, as other commenters have noted, junior developers need instruction. That's easy to say if you're Facebook, and every 22 year old you hire is "junior" but also went to Harvard. They're not really the same kind of "junior" as the 50th percentile 22 year old college graduate. In my experience Facebook hires these "junior" developers because they thrive despite receiving little to no meaningful instruction - as if "code reviews" or a month of onboarding on Mercurial really teach anyone anything. The small startup is gambling that maybe they can find these 22 year olds that Facebook has missed, which is a reasonable gamble, there are a lot that were missed. But it was never about finding someone who needed instruction.
Also, it's never been my experience that paying bad developers more money made them better. Paying good developers more money does. It's tough.
I know this may sound contentious, so read carefully.
Junior developers, BY DEFINITION, cannot be trusted with important projects. If you do, you are responsible if something fails, not the developer.
By "important" I mean anything that may significantly impact company. If you would fire for it then it is important.
By "cannot be trusted" I don't mean they can't do it. Maybe they can, maybe they can't. You need to have somebody experienced to make sure there is no technical surprises, that you are getting what you think you are getting and that you will get feedback if something is not happening right.
My personal distinction between senior and junior developers is whether they can be trusted with important projects. A senior person is somebody who is experienced enough, intelligent enough and mature enough to recognize something is not right and come back to you for direction.
I work with a lot of people who get a label of "senior" but are not. This is a problem.
It is interesting, that at one known company people who can be trusted with important projects are called "officers". So basically you have junior developers, senior developers and officers. I guess "senior" is given just to pacify developers who would be called junior with a lot of years of experience but "officer" as a real recognition of maturity.
People take this because they are deluded this is worth anything and company gives it because it does not cost anything.
You can’t trust something done in a hurry, by a junior, by a senior, or by a chief officer of rockets and things. Of course I would test for gibberish in fields, but only because I have OCD to fix crappy frameworks or glueware before using it for anything. I don’t usually dare to use as-is from-scratch methods for presentations, only parts of already tested projects. Management knows this and feels very relaxed at their shows, which allows for what I described above. Deception is a team work, and if you want to succeed, just follow the damn script. Make it threaded, excessive, whatever, stress your brain matter and foresee the questions, we’ll harden the path. But I “double dare you” to step off it. That’s just not realistic.
Failing to prepare for a business-critical demo was absolutely the CEO’s fault.
I mean the general toxicity was awful, but even in a functioning company with sensible timescales and staffing that's 100% how to end up with a mid-demo disaster.
Best lesson I ever got in business was when I saw a highly touted exec get hired, then actually hire a few folks on his team, then quit after 2 weeks when he saw he wouldn't be able to work with the existing exec team. A lot of lower level folks think that leaving is somehow a mark of failure, and while I would see a string of very short tenures on a resume as a red flag, bailing out of a bad company once or twice wouldn't bother me at all (and, if the tenure is less than a month, no reason to put it on your resume anyway).
I don't agree, especially in today's market where I see companies snapping up junior level devs that can actually code. And importantly, if you're working in a place where you are getting 0 mentorship and/or growth opportunities, it is all a net negative for you in any case.
Just three months of experience made it so that recruiters barraged my LinkedIn.
See, people keep saying this, and insisting that it’s a sellers market for programmers, but stories like this one continue to be the rule rather than the exception. If we’re so in demand… why is the treatment so poor?
Couple points:
1. I'm not sure the treatment is "so poor". A post that goes "Hey, I got a job, mentorship is pretty good, my boss is good, I generally like my co-workers but a couple rub me the wrong way" is a lot less likely to hit the front page than "We all got fired when our program crashed".
2. Information asymmetry. Most junior developers right out of college don't have a good understanding about the broader industry, don't know how to negotiate, etc. I think the best thing you can do if you are a junior dev is to find someone more senior who you trust to review any job offers and also to review your job hunt tactics generally.
If you are forming an opinion based on articles that come to your attention, then you are getting a highly biased view of the world. Nobody writes articles about how their programming job is great, everything is fine, and they're treated with respect and paid well. If anybody did, they wouldn't be upvoted or shared on news-sharing sites. Due to this, you'll basically never see or hear about people who are happy and doing well. Only stories about things that seem outrageous get written and shared.
There are probably hundreds of thousands of people working as full-time programmers in the US alone. It only takes maybe like 5 stories a year making it into your reading to shape an opinion. But one-sided stories from 5/100,000 = 0.005% of the population don't reflect reality. Have any of these stories even been investigated to see what other people involved in the situation think? It's fairly common for horror stories to be exaggerated and to leave out equally poor behavior by the author. Some may be entirely made up in an attempt to get karma or fame or to trash somebody they have a grudge against for some other reason. Not in every case for sure, but it's common enough that you shouldn't just take such stories at face-value.
If the vast majority of working programmers on here tell you that it's a seller's market and treatment and pay is generally very good, that's a lot more likely to reflect reality than a trickle of one-sided horror stories that go viral. Just in my personal experience, I've worked with hundreds of other professional programmers, and never seen anyone be mistreated in such severe ways. Everyone I know has been quite comfortable with quitting for reasons like not liking the culture enough or not getting big enough raises fast enough, and everyone who has will have another offer for work in hand already before they actually quit.
Negative manipulation tactics are an accepted best practice in management.
Obviously not the only (or even a good) way, but it's definitely just how many people "lead" and "manage."
That's possible, my assumption was they didn't offer enough to get any senior developers on board.
Imagine if you were building a house and said "We can't afford to hire an architect so we'll just hire a bunch of kids right out of college because they're cheaper".
But I've encountered so many men who recognize bullshit jobs for what they are and openly just coast and get while the getting's good, while a larger portion of women seem to behave earnestly.
It's also more of a thing with juniors, too. When you've been around for a while, you realize that no-one gives a shit about a 2 month gap on your resume.
Getting fired instantly and paid for two months feels like a win here. Getting fired vs having your company shutdown affects you more personally. It takes a strong person to not think I suck and this was my fault.
Being in that situation I wouldn't know how to explain it. Looking at it now I would be honest and say we created an a and the team was let go after the demo to investors.
> He didn’t even try the app once before presenting it to the investors.
It's this that really floors me. Ok, not everybody is going to be Steve Jobs and rehearse like a madman to try and put on a spectacle, but at least try an app before a key meeting.
The part about getting pay docked for showing up late does sound pretty abominable, though. If the workers are "exempt", their salaries shouldn't get touched for any situation except to lay them off.
I would bet small sums this didn't take place in the US.
I worked for one briefly as an intern many years ago. The "CEO" had a self directed and "burn and churn" strategy, working interns as hard as he could till they quit, I saw him make one cry for not working hard enough. He would also split interns into cohorts to prevent communication between the groups, eventually interns wisened up by communicating through linkedin and quit en masse. The owner even got reported to and investigated by the labor bureau although not much came of that. Afterwards I ran into a couple other similar startups while looking for other intern/junior positions and knew to avoid them.
The people who run these companies know to target students/bootcampers. They hangout on beginner forums, discord channels, and college campuses, I remember going to my state university's job fair and probably 80% of the booths there were for some sort of pyramid-scheme/scam.
Ive never seen a software one come close to working, but sadly some people do find success with these shady business models, a good example would be "College Pro Painters". Once they hire you, you are required to pay them thousands of dollars up front for overpriced painting equipment, you are then expected to manage finding clients and painting all on your own. They keep a significant portion of what you earn plus charge all sorts of hidden fees. Most students who join end up painting a few houses before discovering they are only earning like $2/hr and quit, the company is also apparently quite good at scaring students into continuing to work for them by threatening legal action for not paying the "quitting fee"...
The $100 / month thing was for an internship, and I've seen plenty of U.S. startups straight up assume they can treat interns as unpaid labor.
And if you are "salaried" normally that means no fixed hours of work its literally one of the defining characteristics in labour law.
And for professional jobs aka "Cardere" as they are called in France the WTD doesn't really apply
Investors aren't looking for a bug-free app, they're looking for an idea with market potential. Sounds like the CEO wanted a scapegoat so he wouldn't have to admit to his/her mistakes.
https://www.youtube.com/watch?v=er8g6D_PqvY
They got rid of the only people that, assuming it was your error, wouldn't have made it twice. Making mistakes is part of learning, which is part of doing things. Also, you had been put under excessive workload due to absurd time constraints, and the pay was ridiculous. Your only "error" was to accept from start working in that environment, but that's an error most of us do as young devs; sometimes the enthusiasm after landing the first job plays tricks on us. Been there done that.
In some traditional legal systems, if an object causes a death, an anthill for example, the aggrieved family may put the object on trial. If the antill is found "guilty" it's destroyed. This is true for a car, a bat, an appliance whatever. The object doesn't need to be defective or inherently dangerous, just assigned blame.
Companies can be similar to this, especially at the executive level.
This story would have had a much better end had the CEO not been counting on getting the investment. Sounds like the CEO spent his last powder on a moonshot. Bad form blaming the developers.
Assuming this was true, it simply screams get out now. Perhaps someone can chime in on its legality too.
I worked in such a company, many years ago. The workload that was totally disconnected from reality, the humiliation and punishments, the scapegoating, the improvised demos based on products that were not expected to work. We also had to cope with a CEO who was... very imaginative when it came to facts and a CTO who didn't contribute much besides repeating to the CEO what the CEO wanted to hear.
When the entire team got laid off (to be replaced by other people, with less experience, to do the same job), it was actually a relief.
I had just taken the job, being a nice upgrade from the previous one: it was a bit more in my personal interests, and I could get a "hands-on architect" or "senior systems designer" or whatever you want to call it role. The team was small: a front end designer, me, one trainee with a BSc in CS who wanted to learn more, and a team lead annex director of the local branch. But the chain didn't end there. There was an account manager (although there wasn't an product yet) stationed 6000km away, there was a team working on a product that we were supposed to incorporate, 1500km south from him, and the overall bosses were 2000km further west. All had different expectations. So, three months in the job, the CEO from the mother-mother company came over, and fired the whole team working on the new product, because reasons. They apparently had almost 200 people working on similar products (in various companies), and they were going to build it. As a European, I was shocked. And embarrassed.
In hindsight, it really was an absurd project. Not that it couldn't have worked, but it was just set up to fail. And it turns out that, years later, the company is still selling the old product, and has bought one or two more companies in the same field (library software, if you want to know).
Strangely enough, it opened the way for me to work on a wonderful project, which unfortunately never was a commercial success.
Again, highlighting the importance of who you work with over what you work on.
There is nothing to be gained by teaming up with the wrong people, irrespective of how much effort you put in.
Comments like this make me feel fortunate myself that I always walk in with the mentality that I can be fired at a moments notice or I am willing to quit if a better opportunity arises. It's relieved an astronomical amount of stress off my shoulders even though normal people would consider that absurd. I frankly don't care. It's out of my control so why would I be worried about an employer that threatens to cut my salary in half if I'm late due to unforeseen circumstances? Unfortunately, nobody ever tells you about these events or how to handle them. You just gotta figure it out on your own.
After I left, I hear he's rebuilding the Apache Spark data pipeline stuff "so we can scale".
(This problem they were solving was embarrassingly parallel and could have been shared like crazy to make it way cheaper to host)
Just update the US version of the PAF file every month.
Source: was a nontechnical founder at one point.
When a startup is the founders' first one, unless they are very experienced, you are looking at long odds even if the idea is great. The reason is, no business experience. Like not understanding that you only demo things you've already tried.
I've also seen CEO's appoint what I can only describe technical yes-men to this position. eg: "I have a product described in this 20 slide power point. No real mockups or anything. Can I launch in 6 months?" - The first person to tell them yes got the job.
You start a company, hire your buddy, and call yourself a CEO and CTO.
To start, there really aren't CEOs and most startups until they have 20-30 employees. There are only founders. Maybe they have some management experience, maybe not. Once you do get big enough you need and can afford a CEO, sometimes a founder grows into the role. Sometimes not.
>How could a CEO find an investor and not find a tech person who can foster/grow a team of engineers?
I've been on the other side. I can build a great engineering team. I had to find a cofounder that was good at finding investors to make my current startup go.
The woman who wrote this article shouldn't feel shame: that's the goal of an inadequate manager (in this case the CTO and/or CEO) and not her responsibility.
Regardless, I think anyone who's had more than a few jobs in programming can relate to some of this.
Aspiring entrepreneurs: If you get funded, learn to manage your emotions, engage in the best practices of your industry (including testing), and learning to find root causes of failures rather than blaming people. At the end of the day, it is YOUR responsibility if the app didn't work. Firing the people who developed it won't fix your failure to test your product and budget adequate time for fixes.
It sounds like a case where very junior developers were pushed way beyond their abilities and since they were junior, did not not know they could push back or say no to things. If you're getting paid peanuts and being pushed hard, you have a lot of leverage to walk.
Also, if a job is so bad, you need to make time to attend those interviews at other companies (even feigning sickness). Don't prioritize your current horrible job over a potential opportunity to jump ship.
2) they did you a favor firing you
3) silver lining: you probably got to learn a lot, both in rapid skill development, experimentation, and, more importantly, how NOT to do things.
4) You probably got important exposure to the machiavellian and narcissistic aspects of managers and executives. It is very difficult to learn these through testimony or second hand description, it is such a visceral thing to see the psychology of these individuals who have survived or thrived in society with these exploitative traits. And in larger companies you are generally shrouded from them to some degree by dev orgs and IT-focused managers that aren't quite as bad (but definitely can be).
I'm not saying one should aim to be fired, but if you smell an abusive company, it's sometimes better to wait for the axe, act professionally, and come out ahead.
This should be retitled "How to self-sabotage your startup" or "If this story sounds familiar then you need to update your CV."
Things do sometimes go wrong and it’s the presenter’s job to make light of it and carry on like it’s not a big deal.
Symptoms: ceo + cto being unable to successfully pitch non-existing products, building prototypes for investors vs customers, and customer revenue being from purely custom services
it's easy to spot basic warning signs like these for people who have been around, but not for new grads :(
Too much power is held by the employer, and workers are just resources that can be abused, mistreated and replaced at will. While laws might exist, the rule of law does not, leaving employees open to abuse (in some cases without pay) without recourse.
This is a failure of society and workers collectively to provide and demand decent conditions. It also reflects that software development is a commodity skill in oversupply.
You normally have the right to take your employment elsewhere, but what to do in an abusive culture, where “junior developers” are a dime a dozen? Where dozens of eager applicants are ready for abuse just for your chair in front of a computer?
I did a job like this 20 years ago and consider this a bit of a rite of passage, but back then the job market where I lived was horrible.
Seriously: programmer && unhappy && leave();
She's not a designer, she wasn't told how to plan, she hasn't been put in the right project etc etc.
I suppose she's young but she's bound to get some agency in her life as an adult at some point. We're not just passive drones waiting for clear and easy tasks to be added to our backlog and executing them in an orderly manner.
When something like that happens to me I usually starts anti selling it immediately. There s not a day I spend without uttering the word failure publicly.
Sometimes by miracle a short term demo idiocy turns out profitable, but most time it requires rework and I get picked as the guy who never lied and tried everything...
You need to be clear from the get go and act as q contributor at all layers - if programming was task execution they wouldnt take junior developers, they d take high schoolers during summer vacations.
You might have been able to improve some small aspect of the mobile demo that would have prevented the crash (ie: error handling on that field), but your C-team was obviously playing Russian roulette, and if the demo hadn't blown up, then attempting to productize it almost certainly would have.
In a way, you should feel better about the outcome you got; your CTO was obviously trying to bluff the investors that there was more product maturity than actually existed. If he had succeeded, he would have burned through a bunch of other peoples' money, and the outcome would have still been failure.
I’ve seen far too many non-tech managers and founders discredit the needs of their team: expecting the moon and paying them less than market rate.
That’s how startups make money: undervaluing talent and paying them less than market rate so that their exit is profitable. But you don’t have to be that callous and exploitative about it.
If anyone sees these kinds of behaviours I hope you get out as fast as you can. It’s not worth the BS and the therapy bills.
https://www.amazon.com/Phases-Project-Coffee-Ceramic-Wellcod...
Then she missed 2 interviews because she didn't want to take time off? There comes a point where you're enabling your abuser...
The crucial difference in my case was that the CEO was whipsmart, and a natural salesman; he knew his market, he knew his audience, and he knew our work. He ran through the app enough times in advance of the demo to know it inside and out, and he prefaced his demo with boilerplate warnings that it was an MVP/prototype and that bugs were to expected - he did this so effectively that it almost seemed like he had them excited about the prospect of seeing bugs. When the inevitable faults in the application / backend did occur, he was able to gracefully roll with the punches and sustain the momentum: he joked his way past it and adjusted his approach as he ran through the failed step again (having correctly guessed at what the problem was with his input the first time around). The investors could see - as our CEO had emphasized up-front - that the shortcomings were superficial, and that both the app and underlying system were fundamentally solving the problems they were meant to solve - and doing so in novel ways for the vertical we were in, with much better UX than that vertical was accustomed to.
That company succeeded by any measure, and is still running strong today. And at least 80% of why it succeeded, imo, is because of the quality of its earliest employees, both C-level and technical. A CEO may not need to be a one-in-a-million kind of guy or gal, but they definitely do need to be one-in-a-whole-lotta-thousands, at the very least - if they're just another thoroughly average individual with an oversized ego and a 'fake it till we make it' ethos, you are screwed - no amount of unpaid blood, sweat and tears in the trenches will save you. We were lucky enough to have an inspiring and intelligent CEO who brought in critical voices rather than yes men, and who at the early stages of the company's life would often directly interface with the coders who were designing the apps and systems he and his sales people would be pitching to potential investors, partners, and customers. And when your company has ~5-20 employees, that's absolutely how it should be - all doors should be open. Rigid management hierarchies are no more than adult make-believe at this stage, and indulging in them is inherently toxic.
Anyways, I suppose OP's story is really just an old and universal one: bad management will fail, and it will always find someone else to blame for its failures.
Also the thing about being junior, even a bright one, is you go down a lot of dead end paths. You learn a lot, but you also eat up a lot of time. This is the risk of hiring juniors, and the CTO should have known.
Ah ah, so classic. It just happened to a client I have (I only manage hosting for them)
<slack alert> : we have this one page down with an error, but it's the landing page of a mailing we just sent ! <me> : do you had the error when testing before launching mailing ? <client> : mmmm.....
Problem was solved by the developer in a matter of minutes, but it's always a good lesson.
They are lucky the app crashed before signing the agreement. It was garbage, and deserved to die.
Personally, I am of the opinion, that the practices written about in this post are actually quite common, and the output shows it.
Glad to be out of the rat race. Even the food pellets sucked.
Also a good argument for unions.
I've left a job before that I considered toxic, and this sounds 10x worse.
Similar story, I wasn’t paid overtime and I was a new developer. I worked like crazy. I was the full stack dev slash designer. If my work didn’t meet a standard or I made a mistake, I’d be kind of coerced into recording less hours for the effort. I don’t think this is uncommon in software.
I’ve come to believe I was fired for a few reasons, but none of them really reasonable. The main two were that my CTO learned that I found our product morally reprehensible, and he simply didn’t like me. I was never rude or argumentative with him at all, but it became quite clear over time that these things were creating a divide between us.
I ended up having a health issue eventually, and I mostly kept it to myself. I became quite depressed because I was facing an operation which might change my life permanently (loss of sex drive being a major risk) and my output dropped for a couple months. It was like hitting a switch. After nearly three years of work and a team who really valued my work (and many even kept in touch to this day), he called me into a meeting and literally had me escorted out. No one understood or saw it coming. My project was passed on to several others out of the blue.
At the time though, it crushed me. I blamed everything on myself. The new team would message me for help and I’d actually do it! I felt sure I must have left a legacy of garbage and I owed it to them. Although they expressed that my leaving created a major bottleneck at the company, I was still sure I must have been fired because of incompetence. I must be a failure. I contemplated leaving software for months, convinced that I’m terrible at it.
The experience was eventually incredibly helpful though. My filter for people like that CTO is extremely useful. I use the experience as a reference to avoid treating people the same way and to remind myself how hard juniors will work despite bad conditions. Am I treating less experienced people properly? Am I making sure I don’t take advantage of their enthusiasm, making sure I credit them properly for their efforts? Making sure they don’t work overtime and simply learn instead to be realistic and content with their output?
Inexperienced people in competitive industries are vulnerable. They often feel like they might never find another job. Sometimes they feel inadequate. They work harder than they should for the compensation they’re given, and tell themselves they’re lucky.
Being able to reflect and recognize how crazy I was is helpful in teaching myself how to be a better mentor, and generally a better person to work with. So I’m grateful for that at least.
There is still the part where I need to value myself and my work more. That’s the hardest part. I’ll get there eventually.
P.S. There's no crying in software! C'mon, people! I'm old enough to have many people close to me die. I cry about them. Not about software. I might get mad, I might get frustrated, I might get discouraged, I might have to go out for a run to calm down, but for crying out loud, no crying!
When I had a dubious run of bad job interviews and crappy life choices just post-PhD, my wife delivered what we still refer to as the "living in a van by the river" speech. :-) No-one cried, but it is very easy for inexperienced people to wildly extrapolate from a small set of data points to a trajectory of disastrous life failure.
Isn't that illegal for exempt employees?