Hacker News new | past | comments | ask | show | jobs | submit login
Three programmers got fired, including me, due to a single app crash (betterprogramming.pub)
337 points by signa11 on July 11, 2021 | hide | past | favorite | 231 comments



A company which only hires junior developers is not a company that values quality development practices and it cannot expect to get stuff done on time, let alone with high quality and industry's best practices... not that junior developers cannot be good (with proper guidance they can be awesome), but without experienced people around to guide them, and without them having experience of their own, they are bound to make every possible mistake in the book no matter how smart.

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.


> 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.

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.


> The second fault was the CEO’s. He didn’t even try the app once before presenting it to the investors.

That says it all regarding maturity and/or professionalism, that’s the number #1 job of the CEO.


> 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.


The CEO should not be presenting the app in the first place. Product demos should be done by someone who knows the product inside and out, knows where the unfinished bits are (if any), and has experience presenting products to investors/buyers.


Have to disagree on this a bit. The meeting in question was with an investor. The CEO should be the point person for all investor relations... especially the first meeting with said investor.

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


Oh of course the CEO should be involved with the investors, at a business level. I'm saying the CEO is not the best person to actually do the demo, in most cases. Bring along a product and sales expert to the meeting do that. Steve Jobs is the exeption that proves the rule; most CEOs do not have his showmanship.


This reminds me of the WWDCs. Tim Cook is there to introduce the products, but their engineers (or management of the individual product) are the ones to demonstrate it.

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.


Maybe yes, maybe no.

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.


You can let the CEO handle the overall presentation and let someone else do the demo. The CEO should focus on the overall picture and selling it as a product, while a more technical person should do the demo. I have seen this multiple time in presentations.


> Knowingly playing with fire like this is a sign of a lack of maturity, both on the founders part and the investor’s part.

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.


> A company which only hires junior developers is not a company that values quality development practices and it cannot expect to get stuff done on time

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".


If you are a software company, then paying market rate for quality developers is table stakes. It is an expensive market to operate in and you care competing with very well funded global competition.

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.


> A company which only hires junior 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.


It may be a blessing in disguise, until an employer asks you why you left your only work experience, and you have to dance around a bit to persuade them to give you a shot.


Nah. Just tell them there were only junior devs and no seniors and people will understand why you left.


Unless that new company is also [...]


lol yeah, but then you're just dodging the next bullet.


> next time a CTO asks you to create something in a month for a demo, just go ahead and implement a mock

But expectations have shifted and management now expects to get the real thing.


Depends on the students. The top students in a graduating class can be extraordinary compared to the average experienced person, although there is a lot they don’t know


It doesn’t depend on the student. Every developer starts out as a dumbass. There are an infinite number of sharp edges in software and we all cut ourselves on all of them.


I'm almost two years into self-employment and I'm wondering when I'm going to either stop cutting myself on things or land a position with some people who can show me their cool scars for a while.

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.


It never ends, unless you stop advancing/keeping up. That's the frustrating thing about this field, you are never an expert because the technology advances so quickly.


I'm somewhere between two and three decades in the field.

> 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.


It's just as important to develop the soft skills as the hard skills, and I think you've just quite nicely summarized why that is.


I'm in a very similar situation, just a few years further down the road. I would gladly show you my cool scars.

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.


I like your spirit. Welcome to the party.


Couldn't agree more. The only reason i'd call myself employable as a developer is because i've taken on many self-projects and reinvented many wheels, which resulted in lots of sharp corners and hard lessons learned.

It's a definite time sink to learn these lessons, but it's of real value to me personally.


"starts out as" 10 years in and I'm still a dumbass... I work circles around most and I'm still a dumbass... I'm close to being honestly a full stack developer - server, database, api, windows services, websites (I know Asp.net MVC... but not deeply... finally learning Angular)...

... I'm still a dumbass...

I wonder... if after 10 years... will I stop being one after 20? 30?


No. 25 years in here. You may think you're a dumbass even then. Other people may think you're a dumbass. You will still make stupid mistakes. You will probably make fewer than other people, and there will be many mistakes you don't make any longer, because you've already made them and have learned your lessons.

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.


Well, I honestly use the feeling of being a dumbass (AKA: imposter syndrome) as fuel to learn more and do better.

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.


Honestly the feeling hasn't completely gone away but I've slowly stopped thinking of myself this way as intensely as I did before. What it took was strong mentorship from a really good boss and exposure to all levels of the stack and strong architectural and technical principles to building robust applications. Taking some interviews I felt much better about myself than I had in years cause I was actually able to answer things that I couldn't have a couple of years ago

I hope you find that place in your life too. It's a lot of relief when it happens


> ... I'm still a dumbass...

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.


i feel also with time, you get better from recovering from these stupid mistakes faster and also come up with better solutions/fixes faster.

This will have taken your younger self , twice or more to understand the problem and come up with solution


You also getting better at owning mistakes without making them sound like a big deal. You just say stuff like “that’s an interesting edge you’d only learn by querying a table with millions of rows” instead of anxiously shitting your pants in shame.

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...


"A stupid person can make only certain, limited types of errors; the mistakes open to a clever fellow are far broader. But to the one who knows how smart he is compared to everyone else, the possibilities for true idiocy are boundless."


Few things as frustrating as coming back a year later to uncommented code written when you thought you were being smart.


One thing that is slightly more frustrating is saying “What dumbass wrote this code? How did this ever work?” And then looking at git blame and realizing the dumbass is year-ago you. (Or even five years ago you.)


Or sometimes six months ago…


Not everything is written in books or taught in classes, even the most accomplished genius is going to have gaps. Depending on the person and they're penchant for studying outside of the curriculum, those gaps could be relatively smaller between people, however it's not going to erase them. Someone who has already built a live system, potentially multiple times, is going to have experiences you cannot just intuitively reason through, you must live them. You don't need a majority of folks like this on the team but one or two could save you a lot of wasted time and effort.


The top student in any grad class is probably still going to make a ton of mistakes compared to even an average dev with 10 years of experience though.

There really is no substitute for actually making the mistakes and learning from them


The average devs with 10 years of experience also make ton of mistakes, even when developing the 10th project. Projects are not all the same. I've met people with 10+ years of experience, labeled as seniors who write horrible code.

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 agree that recent graduates can be extraordinary, but a team with no seasoned developers is still a major red flag to me.

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.


There is a reason years of experience matters more than class GPA or school rank. Being a good student in many cases just means being able to cram for exam week, it says nothing about your consistent habits. Software is a marathon not a final exam.


GPA doesn’t have anything to do with being a good student


They may have extraordinary potential, extraordinary problem-solving ability, extraordinary communications skills, and extraordinary critical thinking skills. They may be tremendously resourceful and almost entirely independent.

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.


I don’t think it would take long for the MIT CS grad to start out performing this “good” experienced dev. The experienced dev could be a principal engineer by 20 years if they cared more about CS.


Most projects don't require some deep CS knowledge so even if the MIT CS grad was great at getting up to speed they still lack experience of edge cases and gotchas. Most companies don't have Principal level roles.

Might still make sense because they're cheaper.


What makes you think so?


There're very few extraordinary students who can start contributing from the start. But those students are already stars of their own, not the kind you can hire. For the vast majority, there's a very long journey from graduation to professional developer. This applies also to PhDs, and yes, also from the best universities in the world (I have those in my team often). A company that only hires junior graduates as devs is a company that doesn't take software seriously. Such companies often collapse under their own weight


I've worked with all sorts of brilliant people and genuine 10x developers, and it's true both that students can achieve great things and that anyone can make a mistake - and that low-quality work environments like that of the OP can force anyone to make mistakes.


Others have to fill your gaps. I have no problems telling people their methods are wrong even if they might fire me over it. We either fix it or I'm gone.


> although there is a lot they don't know

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.


I agree with your assessment.

“Experience is what lets you recognize a mistake when you’re in the process of making it a second time.”


> although there is a lot they don’t know

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.


An app like the one the author of the article is talking about doesn't need "extraordinary" coders. The reason for the crash was that someone entered invalid data. That is a very simple, and very common, problem that you only start to understand with a bit of experience. You don't need to be a brilliant genius to understand it. Literally every dev whose worked on a few apps can deal with it. But you do need to have worked with real QAs and real customers in order to understand that people do stupid things that you need to protect against. No one is teaching that in a compsci class. Juniors learn that from seniors. If you have no seniors, demos failing on "obvious" things is exactly what happens.


I know exactly why you’re being downvoted: most developers identify as the average experienced developer and can’t handle the fact that they can be outperformed by an extraordinary rookie (although such people usually have a lot of experience from working in their free time).


"most developers identify as the average"

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?


Well if you are happy that you found someone that can follow a checklist then fine. I doubt the top tier grad would want that type of job anyway.


Out of interest with your name Google234, are you a student or early employee? You seem to be very certain about things in your comments here but I'm unsure if they come from experience or speculation.


Do you know how many hundred top tier chemical and nuclear scientists died while "following the checklist"? Look up Demon Core


IIRC the work with Demon Core was described as "tickling the dragon's tail", not "following the checklist". Wikipedia also mentions "Slotin's own unapproved protocol".


You are right, it's a different point - just trying to illustrate that being some of the smartest people on earth doesnt mean you wont make a terrible mistake or will have good judgement.

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


Also how could there be a checklist? They were literally pioneers


An easy way to create one would be to ask "what could go wrong" and "how bad would it be", then develop procedures to minimize the risk.


Not calling you out, but where did you get the number deaths > 100 from?

https://en.wikipedia.org/wiki/Criticality_accident


Problem was, there was no real checklist. They were part of a huge number of people who have created the checklists, partly as a result of lessons learned after making mistakes resulting in death and destruction.


1, you are now really exaggerating. 2, this analogy is really straying far from software engineering. 3, what is your point here?


Most senior engineers expect to be out paced by juniors in terms of raw throughout.

But what the seniors have over the juniors is several years of experience making mistakes.


“Raw throughput” like what? Mashing on the keyboard? Then - sure. Sorry but that’s just not true ime. On some tasks jrs are even infinitely slower than srs because they just can’t make any headway at all


On some tasks that’s true. I was making a generalisation rather than defining an absolute.


I’m having troubles imagining how more experienced eng could be slower than junior provided their code is reviewed and tested to the same standard. Unless the task is so soul crushingly rote that your senior is looking for another job rather than working on it ;)


Raw throughout isn’t the same as speed.

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 don't think that was the point. Rather, it's that many rookies, including bright graduates, think "meh, I can run this SQL script without making a backup first."


The hinge of this analysis is on the word "outperformed". Performance of what you're measuring exactly? If our sole performance criteria was churning out LOC and subsisting on adderall, any new grad can kick ass. But you wouldn't entrust them multi-million-dollar man-hours of headcount to a steer multi-quarter project to actually work and bring in money. Without such steering, any code is mere dead matter, for which the performance of making is irrelevant.


Despite the deluge of downvotes, recent grads and dropouts formed many of the worlds largest companies, and many you work for them or for their successors. Linux was started by Linus while in school as well. I don’t know why this is getting so much hostility

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”

https://en.m.wikipedia.org/wiki/History_of_Linux


I'm not sure why this is being downvoted. There's no evidence that the kind of instruction that e.g. Facebook gives its junior developers is meaningful for performance on average. However I bet hiring from top universities is definitely meaningful for performance on average.


It isn't the instruction on the job that is important, it is the experience of actually doing things in anger


A junior developer is going to have a lot of blind spots because of unknown unknowns. A team with both talented junior developers and experienced senior developers can utilize the raw ability of the junior devs while having the senior devs cover the blindspots. A team with only talented junior devs will likely make some great things but they’ll also wind up having crucial problems that will only late into the project.


This is probably true, top university admissions is a function of innate ability, and programming is too apparently.


I have a similar story but since it wasn't an internship and I had about 5 years experience in far better companies, I reacted with relief that I got out. I only stayed in the company for 2 weeks in which the CEO and his wife, who was the COO, yelled at me multiple times. I was yelled at for not understanding the code base and delivering a feature within 3 days of joining, trying to relax in my chair when they were talking, using their stash of tissue paper cause they didn't bother keeping some in the bathroom for wiping your hands etc. In retrospect I wonder how I even got through those 2 weeks without quitting on the second day. I just stopped showing up and the CEO came to my house, banged on my door to try and get me to delete their crappy code written by a mountain of interns from my personal laptop. I pretended I wasn't home and we later had a call where I deleted it all. I also wasn't paid for the time I worked there. Everyone who wasn't me was pretty much an intern writing awful code because they really didn't know any better

Unlike here I have no qualms about naming and shaming praktice.ai


> I also wasn't paid for the time I worked there.

That sounds like wage theft.


The effort it would have taken to try and get that money would have far surpassed what I was owed so I really didn't give a dog-diggety. I considered it payment for learning experience and moved on to better things


State labor boards can be extremely harsh on these cases. It could have been as simple as making a report to your state’s labor agency and letting them handle it. If nothing else, it sends a message to the company that they can’t get away with it.

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.


And that’s exactly why wage theft exceeds all other forms of theft. If someone steals from the cash register, the state bears the cost of proving it and punishing them. But when the boss steals, it’s up to the victim to foot the investigative bill, and it’s rarely worth it.


+1 for use of "dog-diggety"


"Wage theft" would be if you weren't paid overtime you were owed. This is just theft.


Wage theft is denial of _any_ wages owed. Overtime or not.


“Hopefully the company aren’t working in an important area like healthcare” ... oh, that’s exactly what there are working in


Sounds the typical "I have an idea" leadership who wants slaves to implement their "vision", but who have no clue or skills to make a real product.


incredible. Thanks for naming and shaming; I hope this person is never able to fuck someone else like this.


I want to point out glassdoor is incredibly helpful for this. I already dodged a bullet because of that.


It doesn't sound like the writer was fired for doing her job. It sounds like she did a really good job, given the circumstances, and that her bosses used two pretty quintessential management techniques - deadlines and negging - to motivate her and her colleagues to outperform.

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.


Big tech can also support lots of junior developers, because they can scale their teams. They don't need to operate lean, they could have one dev per Class if they wanted, so even if the code base is a big mess, they can just throw more brute force at it by having two, three, four teams, or as many as needed to work on the code base and break it down into smaller services each team can focus on.


To add some more context to how Facebook hires juniors - Yes Facebook now only hires juniors once they complete an internship where they have to thrive with very limited instruction. And yes it’s mostly elite college graduates.


The problem is really simple.

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.


Heh, my experience is two decades of for-business custom software development. But no matter how much you brush the 1-month-old half-project and how strong you stress them on not diverging from the script at the presentation, there will be some idiot who will tap randomly to show all critical issues of a not-yet-product to investors, including the ones that you warned them about in capsbold beforehand.

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.


I had something similar but not quite at the company I worked previously: about 90% of the developers there were senior, and some had only 1 or 2 years of experience. However there were levels and a level 5 Senior was paid about twice as much as a level 1 Senior. In the end it was more about making everyone "happy".


I forgot to mention, half my team is currently Vice President and other half is Associate Vice President.

People take this because they are deluded this is worth anything and company gives it because it does not cost anything.


Steve Jobs had to follow a very narrow happy path in his first iPhone demo because the product was still very buggy. It still amazes me that the iPhone shipped so (relatively) soon after.

Failing to prepare for a business-critical demo was absolutely the CEO’s fault.


I saw Jobs give a demo of Enterprise Objects (when he was at NeXT) at a trade show. He wasn't actually operating the keyboard and mouse, but he was on stage directing and explaining and suddenly the whole demo crashed with a kernel panic on the big screen. He handled it pretty smoothly, just said "oooops!" and waited for the reboot and then continued.


He was also Steve Jobs. Not some random entrepreneur.


Yeah, the demo malpractice was the thing that stood out to me as peak idiocy.

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.


You only had to hold it differently and you'd have no issues ^_^


It's a shame you're getting dogpiled for echoing something Jobs himself suggested. Let it live in infamy, "you're holding it wrong"


There's nothing wrong with the keyboards.


You're kidding, right? Google "macbook butterfly keyboard"


"Everybody gets a case." - Oprah Jobs, Humility Inc.


When Jobs demoed the original iPad, half of the NYT front page failed to load because it used Flash, and Flash was not supported (and in the end, never was).


That was clearly a deliberate choice on his part to emphasize Apple’s decision to not support Flash. He lingered over the blank content.


There is a very simple solution to things like this: just leave. Software developers are currently fortunate enough that there is enough demand that they don't need to work for shit-shows like this. Other red flag: if a shop is only hiring junior developers, it's because any senior developer can smell the stink for miles and wouldn't want to join.

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).


It's actually harder for Junior developers to just leave. Until you have 2-3 years experience under your belt, you're just not that attractive to employers; and your competition for those lower-level positions is fierce.


> Until you have 2-3 years experience under your belt, you're just not that attractive to employers; and your competition for those lower-level positions is fierce.

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.


You need at least a minimal amount of experience for that though. It took me a couple months to find a not crap junior job out of school.

Just three months of experience made it so that recruiters barraged my LinkedIn.


Junior dev out of school maybe be more valuable for those companies than junior dev with a few months experience: the first one will more likely accept things than the other one, plus a first experience that ended shortly may not look very positive to a recruiter


It got a lot easier for me to find new jobs after my resume was two jobs I held for three years. The tech job market also got a lot hotter around then, but hearing how hard it is to break into the industry, those six years really make a difference.


I have no problem hiring junior developers if they are coming off a short stay with an employer. Honestly, junior employees are not very good at picking an employer, and there are lots of employers that are just horrible. Treat every candidate like they might just be your next hire... until it is clear they are not. And even then, treat them with courtesy, respect and dignity... after all referrals are a thing.


In 2014 I had four competing offers before I even graduated. I was coming from a mid-tier school with a just-okay GPA. And my impression is that things have only gotten more lucrative in the years since


Similar era and state school and I had a 3.99 gpa, and I only got 1 offer. Most companies are more thirsty for experienced devs.


> there is enough demand that they don't need to work for shit-shows like this.

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?


> 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.


How do you know that they "continue to be the rule rather than the exception"? Have you done a statistically valid survey of programmers working or seeking work and what their working conditions are?

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.


> If we’re so in demand… why is the treatment so poor?

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."


Not everyone has the experience to quickly find another job or the savings to weather a period without a paycheck. The business as described is a modern day sweatshop.


> if a shop is only hiring junior developers, it's because any senior developer can smell the stink for miles and wouldn't want to join.

That's possible, my assumption was they didn't offer enough to get any senior developers on board.


Related to that, any company knows what they're doing easily knows that a competent senior developer (key word being competent) is easily worth multiple X of a junior developer with 0 experience, especially when it comes to setting up your initial project and architecture.

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".


The company described in this post is clearly highly dysfunctional, however the self-sabotaging pattern–scheduling an important meeting before even starting to build the make-or-break thing that will be demoed in the meeting–is one I’ve seen in plenty of ostensibly functional organizations. Nobody should be surprised when something brand new built by an under-resourced team on a non-negotiable timeline blows up in front of whatever important {investor, client, prospect} it was supposed to impress.


It seems like it might have been workable if they tried it out in a practice presentation beforehand, but they seemingly didn't even do that.


One thing I've noticed in a number of different contexts is that women seem to disproportionately feel shame and guilt in circumstances where the majority of men would just cynically punch the clock and collect cash until it's time for the next thing. It wouldn't surprise me if childhood conditioning (where girls are meant to 'make nice' with people) and different standards for male/female behavior ("he's independent" / "she's a ruthless bitch") contribute to this too.

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.


I noticed this too. When the author mentioned crying all day that stuck out as unusual.

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.


I don't blame the CTO too much for taking the project: startups need to take risks and try and make money and if something is physically possible you usually have to try. On a tight deadline, you put together a proof of concept and succeeded so it seems like a correct decision. You did your job.

> 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.


Every experienced C-level I've worked with will rehearse investor demos with greenfield software. The only time they don't is when they're giving the investor the same demo they've given prospective customers dozens of times before. Some will even ask "What should I avoid?"


I used to work in a software factory when I was young. Only one guy in the sales department used to approach us (developers) when he was preparing a demo for a big client of a new development. He wanted to know what to avoid, what not to do, which dataset worked better for the demo. Today I remember him as the most professional salesperson I met.


The only thing I see here that's surprising is that pay was docked if you arrived late to work. Everything else seems pretty typical of an early stage contracting firm, and start-up life generally.

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.


It almost certainly wouldn't have been legal in the U.S. to dock an exempt employee's pay, but I've seen plenty of U.S. startups with absolutely no understanding of wage and salary laws.

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.


Well, it clearly didn't take place in the US since she had an employment agreement that required a two-month separation notice from the employer.


$100/month pay surprised me as being way too low.


I'm Brazilian, I once interned (when I was still in college) for a 33 million pounds Star up for $200 dollars a month. They would pay me through Paypal who took 20 dollars as cut, haha. Those were dark times.


Not pounds, euros. Sorry


The behavior described means it was not a first world country, couldn’t be US, UK, EU, Canada, or Australia. The amount of money is also too small for those places.


You would be surprised by a lot of the shit that some US/CA based startups pull, theres no shortage of self-funded (broke) pipe-dreamers trying to create the "next big app" using cheap/free intern labor.

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 was for an intern. There are tons of unpaid internships in the US, so I wouldn't assume it wasn't there. Though in the tech world with talent in demand, if they aren't paying interns then that may be a red flag. However, from sentence structure, I would guess that English was a second (though well known) language.


Legally it's not necessary to pay an intern anything (at least in NL). I probably earned 3x more when I did my internship. I think they should at least pay minimum wage


Internships in the US must either be unpaid (part of the educational process, intern can only do very limited work) or must pay at least minimum wage.


I would guess Europe possibly India

And if you are "salaried" normally that means no fixed hours of work its literally one of the defining characteristics in labour law.


Huh, i don't know which place of Europe you're thinking about but this seems highly unlikely. You can't exceed 48h/week in the EU, and 100$/month (84€) is just stupidly low for countries in western Europe, it would even be illegal in a lot of them: For example, in France, an internship longer than two months has to be paid 3,9€/hour a minima (for reference, minimum wage in france is 10,25€/hour).


I was thinking eastern Europe.

And for professional jobs aka "Cardere" as they are called in France the WTD doesn't really apply


Yeah, and probably these companies also depend on the student having the government's free public transport card


It certainly wouldn't be legal to dock an employee's wages in any central European country. Labor laws here are too good to allow that kind of abuse.


Not only red flags, but most likely it sounds like seriously illegal wage theft was occurring. What company?


If she has not put the name in the post it was most likely on purpose, however I would be interested what country this was.


Most likely it does not exist anymore. And, if it does, you never heard of it. Companies run like this do not go far.


I agree with everyone else, but also, isn't the only way to lose an investment because of a bad demo to have basically misrepresented the state of your product to the investors?

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.


You should have showed this to that idiot CEO, just before the middle finger.

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.


>They got rid of the only people that, assuming it was your error, wouldn't have made it twice.

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.


> 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.

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.


> If anyone came to the office five minutes late, he cut their pay to a half day’s salary.

Assuming this was true, it simply screams get out now. Perhaps someone can chime in on its legality too.


Well if you’re 5mins late then just come in after lunch, might as well take 1/2 day off if you’re only getting paid for 1/2 a day.


It’s apparently legal in Japan. If you are late to some companies you automatically get charged half a day off. I presume that means that you lose half a day of salary if you run out.


I sympathize.

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.


Wherever you go, there you are.


What a story of abuse. One of the arguments I've heard generally for small businesses being valuable is the flatter structure allows you to be closer to higher ups and thus higher ups can be more human and decent to worker bees because of the closer distance. Experience of course suggest it varies.


No reason to feel ashamed. I had a similar-ish experience. At first, I also felt bad about it, but looking back, it's a good thing we got fired.

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.


I had a job like this 20 years ago and I did learn important lessons - mainly how to spot toxic work environments and people. These days, in pretty much any part of the world, one can get a job as a programmer in a matter of days. My company is now handing out $100k in deferred comp (stock, not even options, vesting in 3 years, with a performance-based multiplier of up to 3x) to key devs despite being a large company with a $30bn topline that, until quite recently, considered programmers an expendable commodity. Well, not anymore -- covid accelerated shift to 'fully digital' business processes and companies are struggling to find devs in all the western world.


A few days of process time maybe but not wall time. Gotta take longer than that to get an interview arranged and contracts done by HR?


>...If anyone came to the office five minutes late, he cut their pay to a half day’s salary.

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.


>I missed two interviews because I couldn’t manage time to attend them and I was not in a position to take the risk of losing this job.

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.


Something that has always puzzled me: how do so many incompetent CTOs get into the ground floor of startups? I've met more than one and I just don't understand it. There's readily many extremely competent technical people I know who want to start a company but have no idea. How could a CEO find an investor and not find a tech person who can foster/grow a team of engineers?


Because they are friends with CEO/board/investors. I interviewed three startups that are exactly like that. One of the CTO asked how I would validate US zip code. I told him there are around 42K zip code, just store them in a hashmap and do lookups. He thought I was crazy and insist on Trie tree.


And this is a solved problem I remember working on a product that did UK Postcode validation 20 years ago and we brought in a product to do that for us.

Just update the US version of the PAF file every month.


I've spoken to some who say they need real time stream processing off of MQTT backed by a Spark cluster..... To store ~10 messages/second. I've reduced infra costs and improved perf by just turning it into an API with a retry on the client and storing into a database.

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)


> how do so many incompetent CTOs get into the ground floor of startups?

You start a company, hire your buddy, and call yourself a CEO and CTO.


Or get 50k from Daddy and play at being entrepreneur - I remember hearing that at First Tuesday back in the day (late 90's)


I've seen at least one CEO going through several CTOs until he found one who would say "yes" to everything and make the proper impressed noises when the CEO showed their latest iDevice. Needless to say, that wasn't ideal.


Because "CTO co-founder" means "person who will program for just equity".


Many startups are basically a group of people who already knew each other. When one of them is any kind of technical, that's the CTO. The others aren't and so they don't have a way to vet technical people even if they wanted to.

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.


Startup founding teams are not a meritocracy. So it's not uncommon to see someone who is functionally a junior developer become the company's CTO because they were the only founder who knew how to code.

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.


If you’re a nontechnical founder looking for a partner, at a certain point you’ll learn to work with anyone who will pay attention to you at a price you can pay.

Source: was a nontechnical founder at one point.


> how do so many incompetent CTOs get into the ground floor of startups?

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.


This is just a case study in bad management.

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.


That sounds like a horrible place to work. I hope the author learned a lot from the experience and is cautious around future employers. I chalk up this post to a young dev not knowing what options they really had available to them.

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.


1) still got two months salary!

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).


Getting fired from a predatory, horrible company like what the author describes is not shameful at all. It’s a badge of honor.


It's also better to get fired from one than quit. Author was going to depart either way, but in firing case got severance to relax and job hunt.

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.



I can't imagine graduating college and having this be my first job experience. Abusive bosses deserve to be publicly flogged. But based on the threads, it seems the psycho-genius trope is still being idolized, when it needs to be buried.


Fired? They did all of them a favor. No senior devs, overworked team, a-hole CTO, etc.

This should be retitled "How to self-sabotage your startup" or "If this story sounds familiar then you need to update your CV."


It seems crazy to me that someone would demo something that important without first doing a practice run-through.

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.


Once I asked my Lead if I was going to get fired for what (in hindsight) was a pretty superficial bug. Response? "Gawd no. I'm going to make you stay here, figure it out and fix it!"


Wow! This sucks. At Stripe I felt a similar thing. Crazy schedules, being yelled at, being told I’m terrible over and over again. I quit after 5 months.


It sounds like everyone is going to get fired because of the leadership team not being able to secure payroll, whether through a stream of customers or investors

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 :(


Sometimes you are on the Titanic and no matter what you do the boat will sink anyways. It’s important to learn to recognize those moments and prepare for the freezing water. When I found myself in those situations, first asked for a raise, and then started analyzing alternatives. But sometimes after hitting the iceberg, the mood and the environment were unbearable so I resigned. Peace of mind is everything.


My first thought was what country is this in? Different countries and cultures have different attitudes to work and workers. My first guess was India or one of its neighbors, where I have witnessed such abuses first hand. As a westerner I have to my horror even seen rows of 30 developers, with overseers walking up and down with a large stick behind them hitting those that do not meet some unknown (to me) standard.

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?


The most important advice: leave any job thats toxic. If you are a programmer you are fortunate enough to always be able to get a job, especially now with remote-only positions opening everywhere.

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();


Reading this person, I still find her a little bit passive.

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.


Reading that story, I feel like you were sabotaged at every step by a CTO that was so insecure that they were afraid to succeed, and would rather fail on their own terms.

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.


That sounds like a horrible place to work. I think the OP’s instincts are correct to lay the blame at the feet of incompetent management. As a general rule you can pick two from: fast, cheap, and good. But you can’t excuse the kind of behaviour where you blame people for your failures and treat them so poorly.

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.


A live demo is the most effective way to find bugs. For best result let someone else use the app... And don't test the app beforehand, and do not repeat a path/script that you know do work. You do not need tests or static analysis, just demo your app regularly.


This used to be a "meme spread by copier" back in the 80s/90s.

https://www.amazon.com/Phases-Project-Coffee-Ceramic-Wellcod...


If your client does not want to pay the price of development, he usually also does not value your work. I guess the same is true for employees. The worst clients have allways been those who have complained about the price beforehand.


$100/month for 60h/week? Why not just go to work at Walmart or McDonald's?

Then she missed 2 interviews because she didn't want to take time off? There comes a point where you're enabling your abuser...


I've been in largely the same situation as OP - early-stage startup, rushed work on an MVP requiring far too many bells and whistles, CEO doing a crucial demo before potential investors who would likely make or break the company.

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.


It sounds pretty unlikely that they didn't get the investment because of the demo going wrong. Investors aren't crazy, they know the product isn't don't yet and small things can crash it before it's polished. More likely the management were not convincing about the investment case.

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.


> He didn’t even try the app once before presenting it to the investors

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.


Any company that sells "enterprise" solutions, and only has a small staff of all junior, underpaid developers, is an automatic dead pool winner.

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.


More red flags than a May Day parade in Pyongyang.


I had a job a bit like this in the early days of Chegg. I got fired after a week mostly due to incompetence in new areas I had never worked in before. But I learned a lot and at least got paid for the week! Interesting that they checked my reference and my referee told me that I should avoid working there under any circumstances!


Jesus fuck that sounds like a shitty working environment with a super abusive boss.

Also a good argument for unions.


Normally I understand the need for professional discretion, but this situation sounds... frankly insane. Honestly I would name names so nobody has to work under these people ever again.

I've left a job before that I considered toxic, and this sounds 10x worse.


I understand this was a tough experience but this wasn't a job. It was a volunteer opportunity with paid lunch ($100 a month). You don't even need to mention it on your resume.


I was fired once, and it really crushed my self esteem and morale for a long time.

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.


I’ll pay for a paywall for the WSJ and The Economist but I’m not gonna bother even bypassing the paywall for some rando blog.


The executive described here is clearly a psychopath/narcissist.


Every team should be a mix of old hands and junior devs. I've learned so, so much from the old hands. As the auld faht today, I have the privilege of working with the young guns. They don't agree with me initially, but as they get experience they tend to change their minds. And sometimes even I learn from them, too.

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!


Younger people catastrophize; she's not crying about her software job, she's crying about what she perceives as the "obvious failure of her entire career starting now".

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.


> If anyone came to the office five minutes late, he cut their pay to a half day’s salary.

Isn't that illegal for exempt employees?


What's that "CEO" doing now? If they didn't get funded, they're probably no longer a CEO.


you have a senior developer who is also the CTO..but he did not do anything and that is the problem.


Sounds like being fired was the best thing that could have happened from this hellish job.


Seems like management was more junior than the developers.


In the article it mentioned she made 100/month as intern. You can make more money working at McDonalds. It must not have been the US. I think developers in the US have it pretty good.


Based on another article written by the same author that features stories from South Asia, I would want to believe she is also from South Asia.


Assuming the lowest wage possible at $7.25, you can make $100 dollars in one week; that's only 14 hours of work... 3 hours per weekday.


In 2017 Germany I made net ~570€/month (~1€ more than minimum wage) working 15h weeks in a supermarket for around 3-4 months while studying. It was pretty mindless work (apart from always looking out for the use-/sell-by dates) and also nice working in a colder part (dairy and frozen products) of the supermarket during the hotter months.


A sack of asses does not a company make


I'm not gonna care care about your story if you try to force people to install some wierd app to read it.


Open in app. Lol sure.


[flagged]


"The experience of being a programmer in a start-up" is almost quintessential HN material.


is being programmer in a start-up

different from

being programmer in a small company?


Yes. (Small companies aren't usually hustling for investors, for example).


and how does it affect programmers?

it'd mean that programmers have to work >8h day and everything is ASAP?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: