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.
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.
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.
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.
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).
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.
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.
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
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.
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.
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?
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
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.
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...
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.
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 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'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.
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.
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.
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.
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.
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.
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).
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."
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
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.
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.
“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
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 ;)
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.
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.
"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."
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.)
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
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.
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.
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.
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”
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.
> 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 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.
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.
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.
> 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.
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.
> 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.
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.
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).
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.
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.
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"...
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
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.
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.
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).
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.
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.
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.
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 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.
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.
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)
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.
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.
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.
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.
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.
> 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.
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.
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.
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.
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
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.
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.
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.
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
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.
> 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.
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".
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.
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.
238 comments
[ 2.9 ms ] story [ 109 ms ] threadFailing 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.
Assuming this was true, it simply screams get out now. Perhaps someone can chime in on its legality too.
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
https://en.wikipedia.org/wiki/Criticality_accident
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”
https://en.m.wikipedia.org/wiki/History_of_Linux
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.
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).
different from
being programmer in a small company?
it'd mean that programmers have to work >8h day and everything is ASAP?
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
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.
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.
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.
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.
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.
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.
This should be retitled "How to self-sabotage your startup" or "If this story sounds familiar then you need to update your CV."
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".
Also a good argument for unions.
> 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.
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.