14 ms·
Software Engineering Grads Lack the Skills Startups Need
- logfromblammo 7y ago“When you join a startup, there’s a lot of emphasis on the design of the application, reusability and clean code, and the ability to conduct and undergo code reviews, as well as the ability to think of and build systems that can scale based on users and geography,” he says. I got a good, long laugh out of this. This describes the exact opposite of my experience in a startup. None of those things were ever a concern until I worked for a company that already had a revenue stream.
- ben_jones 7y agoI would best describe software development at startups as speed jenga. The cool thing is the objective of the game isn’t to build a functioning tower but to instead convince more people to join the game.
- CodeCube 7y agoI mean, early stage startups fit your description, sure ... but I can't imagine many startups surviving much traction if those things don't start being looked at soon enough. Of course, some do (see twitter's Fail Whale), but I'm guessing the vast majority of startups that fail to scale ... well, they fail
- logfromblammo 7y agoThere may be some confusion in my mind between companies that are only recently embarked upon a new business venture, and those who are already bringing in sufficient revenue to bootstrap further growth, but are adopting a generic "startup" branding strategy in order to shape their work culture and attract further investments. That is, after being an indisputably young startup, the business declines to transition its identity into being a growing small business, and remains a self-described "startup" because it is secretly a huge business that is still in its second or third instar, ready to moult, and to also seem like a cooler place to work than it actually is, now that the HR department has multiple permanent employees. The emergency all-hands pivot brainstorming meeting just doesn't seem like it can even take place in the same building as all those design discussions and code reviews. Does anyone else think that "startup" has become a branding strategy rather than a descriptive term?
- commandlinefan 7y agoWell, there's lots of emphasis on the design of the application, reusability and clean code, and the ability to conduct and undergo code reviews, as well as the ability to think of and build systems that can scale based on users and geography... as long as all of those things cost no money and take no time, because we pay you to crank out features, code-monkey.
- bazooka_penguin 7y agoWow, universities arent job training programs that churn out cattle for people farms, who could have guessed
- ascales 7y agoI think that at an even more basic level than hard skills, some graduates lack knowledge in things like basic problem solving, abstract thinking or the ability to switch between languages quickly. It's interesting to see how straight-A students who study well and test well don't make the transition from the academic environment to a job.
- peterlk 7y agoI have a pet theory about this. Your whole life has goal posts laid out for you. You go to elementary school, get good grades so you can get into honors classes in middle/high school. And you do this again for college. Everything is quantitatively measured. How many questions did you get right? How many days did you attend school? How many extracurricular activities did you participate in? How many hours did you volunteer? All check boxes that other people hate laid out for you so that you can be measured in the funnel. And, artually, for some people this process can continue in their career. You get good grades in college, then you get an internship at BigCo. Then you get a job at BigCo. On and on until you die. The problem is, you never had to figure anything out. So if you ever decide to do something non-standard or if randomness hits you too hard, or if someone along the way deems you "not good enough", now you're off the track. And you have never had to set your own goal posts. If you have to be constantly told what to do, employers are not going to want to hire you. I think the lack of critical thinking goes hand in hand with an inability to function without rulebooks and structure.
- nercht12 7y agoOn the right track, but even moreso of a factor is the personal relations in one's life. A kid straight out of school being told constantly to "go get a job" has trouble trying new things and getting a startup going. They end up trying to please these other naysayers and at the same time trying to pursue their dreams, thereby splitting their efforts and cutting their productivity of both in half, resulting in fewer successes over a longer period of time, further demoralizing them.
- ascales 7y agoI think this is somewhat right, but I also think that there aren't enough project based learning opportunities in school, and there certainly is not enough opportuntities to fail in school. A number of universities are implementing a limit of 3, sometimes only 2, on how many times you can fail or drop a course. So there is definetly a comply-or-die academic environment that just doen't exist in most tech jobs nowadays. I'd love to see a curriculum where there is a class each semester that is 100% project based, where the end result isn't as important as the process.
- paxys 7y agoThe skills startups want are taught at coding bootcamps, not universities. The degree is called computer science for a reason.
- hildaman 7y agoI disagree with this. A good Computer Science program must have enough software development curriculum that people actually learn to write code.
- ericd 7y agoMIT's was (is?) heavy on theory, light on coding practice. I still think it was a pretty good program, they just expected that you'd learn to program outside of class.
- ghaff 7y agoI took the 6.001 edX courses a while back. Introduction to Computer Science and Programming in Python--actually broken in 2 parts for edX. Yeah, it came across to me that the expectation was that you'd learn to program mostly outside of the course. Or, really, that you already had a reasonable grasp on the basic concepts. Otherwise I think that course would feel to most people like being tossed into the deep end of the pool from a great height. To be sure, with the campus version of the class there would be recitation sessions and other resources to get help on the programming side. There's also a companion textbook that goes into more Python details. But that's certainly not a class to "learn to program," much less how to work on a command line, use an editor, etc. That may be reasonable for an MIT CS curriculum but most other majors probably don't have the same degree of implied prerequisites.
- ericd 7y agoYeah, that was a pretty common feeling in 6.001, especially among those who hadn't done much programming in high school. At the time, it was taught in Scheme (a Lisp), which no one I knew taking it had any experience in, so everyone was on sort of equal footing there, at least. And more generally, it seemed to be a pretty common approach there to throw students into the deep end and let them figure it out - people liked to compare the experience to trying to drink from a firehose :-D. I'm not sure if it's optimal for learning the material itself, but it does make jumping into new subjects seem less daunting after you've gone through that a few times.
- dentemple 7y agoThis is a valid reason to consider a trade school model ("coding bootcamps") to fill this niche. Let Computer Science programs focus on the Computer "Science", while trade schools focus on fulfilling direct company needs. Of course, we need a _ton_ more oversight involved to ensure that bootcamps are actually graduating people with a job-ready skillset.
- dyarosla 7y agoThis won’t happen until the signalling that comes with hiring from [elite school] diminishes and/or the signalling that comes with hiring from [code bootcamp] surpasses it.
- dentemple 7y agoThe signaling from [elite school] doesn't matter as much (to that applicant's competitors) if there aren't enough elite school graduates to fill positions. A startup can hold out for MIT grads for as long as they want, but they ain't getting one if every other startup is doing the same. _Someone_ is getting hired at the end of the day. A company that's looking to grow rapidly can't hold out forever.
- dyarosla 7y agoI mean yes, some bootcamps have started cementing their own signal too (see Lambda) but I don’t know whether that many code bootcamps will surpass [second tier schools]’ signals. You are right tho that there will be a supply problem either way.
- bdcravens 7y agoIf bootcamps churn out employees who are productive from day 1 that will fix the problem. However, when you see a resume from a bootcamper who over the course of 4 months learned Linux, AWS, Javascript, jQuery, Node, SQL, Ruby on Rails, and React, it invites skepticism.
- bdcravens 7y agoAs long as you can avoid the bootcamps that try to teach you 3-4 frameworks/languages in a 4 month program. You could spend 4 months just getting good at bash.
- geebee 7y agoReally? Cause it seems, based on my interviews, startups couldn't care less about my background in leading customers through beta demos, collaborating with scientists, participating in sales presentations and outreach, writing documentation, or any of the issues described here. They do seem awful interested in whether I can find all matching subtrees in a binary tree, though. Which, now that I think about, is the one thing I learned in college but haven't done even once on the job once in 20 years (I have had to find minimum cost paths in a tree, though. I couldn't have done it on the spot at the whiteboard, but my data structures and algorithms class was helpful in researching and figuring it out years later).
- DevKoala 7y agoYes the software interview process is broken; the skills evaluated are rarely the ones that measure the success of an individual at an startup. I prefer to ask system design questions.
- kradroy 7y agoI require systems design questions for anyone with >3 years of experience. We also do a coding and PR exercise. My team manages some machine learning systems, but I couldn't care less if they know how to implement SGD in some form. Can they recommend how to reduce the memory footprint of a system/model? Our customers don't care how our system works; only that it works reliably and consistently.
- cameronbrown 7y agoThe questions FAANG ask should not be the questions a startup asks... FAANG have to deal with measuring candidates at huge scale, and have literally too much talent coming through the door. A hiring decision in a startup can be a series of life or death decisions. I think algorithms questions are an OK litmus test for being able to program, but it shouldn't be everything or even 1/4 of an interview at a small company.
- cle 7y ago> FAANG...have literally too much talent coming through the door From first hand experience, I would strongly disagree... I won't beat the dead horse of the sad state of tech interviews, but just wanted to point out that this statement does not align with my experience at all.
- manfredo 7y agoSome highlights that I felt were very on point: > Students are taught formal testing methods such as static analysis, which checks code without actually running it. This helps them understand how to test software programs, but it doesn’t address the testing of distributed systems, web services, and infrastructure resiliency. Examination of these types of user interfaces and back-end systems is essential, Devadiga says. This is a good observation. In my experience, the biggest hurdle new grads have to overcome is to learn to develop in a context where users and co-workers are going to depend on the projects they build, and need to be maintained. I didn't learn how to set up instrumentation, deployment pipelines, outage alerts, and other important pieces of infrastructure in keeping a web service online in my university classes. > Because startups are heavy users of cloud computing platforms, it’s assumed that most software engineering students understand how these systems work—but that’s often not the case, Devadiga says. Students need a practical understanding of infrastructure architecture design patterns, DevOps, and cloud platform services like compute instances, object storage, and queueing services. The ability to create applications that can execute in services like Amazon Elastic Compute Cloud is important. Another one that I think is on point. I did use AWS in a networking class, but that was just because the class instructors didn't want to deal with building dev environments for windows, mac, and linux. I didn't really get exposed to deploying and running a web application on a cloud computing platform. For how universal cloud computing is nowadays, it's surprising how little I was exposed to it in university. I think it'd be great for universities to offer a "practical software development" class that didn't really focus too heavily on any one particular academic topic, but was more emphasized on imitating the kind of work that developers do in industry. It'd be cool students went through the whole class building, maintaining, and extending a single web service over the course of a semester or quarter. It'd be neat if grading was based not just on application functionality, but also uptime, average latency, and similar metrics - though that would probably be too variable to be fair, a student's site might go down while they're away on a sports competition or something like that.
- dentemple 7y agoTWO practical software development classes. One for hard skills, and one for soft skills. The latter is another complaint I've heard from company owners. Too many graduates who just don't know how to work with a company's non-engineers, as they've told me.
- lalaland1125 7y agoOf course. The software engineering grads lack the essential skill of willing to be paid peanuts.
- Ancalagon 7y agoIt could be that schools cater to large companies' needs because they pay their employees the most and offer the highest number of jobs, and thus offer the best graduation statistics for those schools?
- WalterSear 7y agoIME, it is because colleges, and specifically tenured college professors in CS and software engineering departments, remain woefully behind the times when it comes to relevant engineering skills. And the latter have little motivation to stay current.
- deleted 7y ago[deleted]
- cephlanod 7y agoThis seems obvious to me since most of the jobs seem to be in web dev, maybe I'm wearing blinders but there doesn't seem to be much out there that isn't CRUD work. Computer science is almost a different field, to me its like masonry vs geology
- nineteen999 7y agoWeb dev seems to be the majority, but there is plenty of work out there in other sectors, eg. banking, finance, day trading, emergency services (my field). The jobs are out there but you have to look for them. And oftentimes they can be much more secure than a role in a startup as well. It really depends on your skillset. I've got over 20 years experience, and honestly, I don't feel like I have the skills that most startups need either, nor the desire to forgo a decent salary in the hope that they "make it big" someday.
- zaphod12 7y agoI didn't even know schools had 'Software Engineering programs. I've met plenty of Computer Science grads, though. It's truly different. Engineering is more like trade school, Computer Science is foundational. I'll probably hire you with a CS degree, but I know I'm going to need to teach you how to be a software engineer.
- dhosek 7y agoMy wife got her masters from the Software Engineering program at DePaul University. She taught me a lot of the skills that make me hirable.
- pjmlp 7y agoIn Europe computing university degrees tend to be mix of CS and Software Engineering. If you want a pure CS, usually it is a maths degree with major in computing.
- hysan 7y agoDepends on the school you go to as others have pointed out. I spoke to the head of the CS department at a local university this year; he wanted to pick my brain as a bootcamp instructor on the industry. I learned that they had already copied parts of what bootcamps were doing and had many plans to try and stay ahead of other universities doing the same thing (lots of ads for these follow me around). It was a very interesting conversation and it left me believing that the future wave of CS grads will have a much better mix of theory and application.
- 6thaccount2 7y agoEngineering is nothing like a trade school if you mean Electrical Engineering, Chemical Engineering, Mechanical Engineering... etc (probably not what you meant here by context, but I felt I should clarify). You basically do 4 years of math and physics with several years of calculus, differential equations, numerical methods, programming, and solving difficult problems. It is nothing like a trade school (no offense to that line of work...they probably make more money than me :)).
- deleted 7y ago
- mreome 7y agoIsn't this just observing the fact that college isn't the same as work experience, and only provides the base skill-set needed to enter enter the industry? "When you join a startup, there’s a lot of emphasis on the design of the application, reusability and clean code, and the ability to conduct and undergo code reviews, as well as the ability to think of and build systems that can scale based on users and geography" I can't help feel that if you're expecting a recent grad to hit the ground running with this level of insight and experience, your doing something terribly wrong. You should expect to train and mentor a recent graduate, not put them in charge of a project. * Good design requires having an insight into the requirements of a system, often with an incomplete spec and unclear long-term goals. You can't really do this without actually designing and building real-world systems, and over-time understating where the possible failure points and missing requirements may be. * Reusability is a double edged sword, if you generalize every bit of code into a a reusable configurable component you miss deadlines and end can end up with an 'Enterprise' mess of OOP code. It takes experience to know when to generalize, and when to KISS. * Code reviews, best practices, and requirements are different at every company and in every industry. Even someone with experience has to be brought up to speed on this when taking on a new position. * The "ability to think of and build systems that can scale based on users and geography" ... this is incredibility specific. I work on embedded industrial systems; they're massively complicated but are single user and often only on an isolated network. Knowing how to "scale based on users and geography" is a specific requirement for this person's industry, not software engineering in general. If you want specialization, you don't hire a recent grad (unless maybe your doing research and hire a PhD). Edited to expanded on a few parts.
- mr_tristan 7y agoI'm not sure why some think that a university degree should mean you're ready to be an effective professional engineer from day 1, let alone year 3. I swear this is another facet of agism: some think that the 22 year old with a 4 year degree is nearly as valuable as the 40 year old professional, just needs some language experience and wham! Ready to go!
- digsy 7y ago
- jahewson 7y agoI’d much rather hire someone with a degree in computer science than a degree in AWS. I can teach them AWS.
- ProAm 7y agoThis is because most grads are one step higher than interns. They really dont know much (and shouldnt be expected to) because they lack real experience. Startups higher them because they are cheap and will work hard long hours without question. It's the trade off they are willing to accept.
- bdcravens 7y agoVC often puts pressure to increase headcount, and unfortunately, those doing the hiring are willing to look the other way when that's the standard for accountability as opposed to productivity.
- ProAm 7y agoYeah I agree, it makes sense and Im not saying its wrong either. In the atmosphere of move fast and break things its often okay to turn out bad code and fix it later once you get your hockey stick of momentum (which in some cases is perfectly acceptable). Hiring truly senior people might slow that down because they know better and want more polish or thoughtfulness put onto a product. I can see it both ways. Im not sure if Ive ever encountered a hiring manager that expect much out of a recent college grad, especially if its an undergrad. But they can learn fast and are usually eager, which is good for a startup where positivity and attitude are needed to keep moving forward.
- deleted 7y ago[deleted]
- sharadov 7y agoVery funny! "When you join a startup, there’s a lot of emphasis on the design of the application, reusability and clean code, and the ability to conduct and undergo code reviews, as well as the ability to think of and build systems that can scale based on users and geography"? I don't know which startup he worked for that was doing all this and still managing to stay afloat! Startups want you to crank out features and get clients in, everything else is a failed strategy!
- toomanybeersies 7y agoWe do none of the above! We just keep tacking on new features to snag more clients. On the plus side, I work 38 hours a week and not a minute more, and I get paid above median for the privilege.
- sharadov 7y agoWe're a Series D/E company, and we still don't do all that!
- slothtrop 7y agoEven startups should be willing to train. The skills really aren't that hard to pick up with the right mindset and knowledge a CS grad ought to have. We had an intern come in that was still stuck in that student-mode of needing to be told everything and not asking pointed enough questions. After a few weeks they were up to speed and productive. Frankly even experienced workers will still require a period to absorb specific knowledge. I think the time required for fresh grads to be productive is way, way overstated and overestimated provided they have the right direction.
- shagie 7y agoThey should. Often, they aren't. There are a number of reasons there - some don't have the time. > Because startups need to bring their products to market quickly, applications are built iteratively, with rapid prototyping. The timing of the product release is crucial because it has a direct impact on acquiring customers and affects the bottom line. Significant delays can put a company out of business. While time to market is also vital for large companies, their software releases are typically for established products, and if they run late, such companies usually have the money to survive. --- Some don't have enough people to properly mentor and train a new hire. The page for the startup of the engineer featured in the article: https://www.linkedin.com/company/datarista/about/ https://www.linkedin.com/company/datarista/about/ > size 2-10 employees I would contend that any company in the 2-10 range hiring a new grad is a mistake for both particles. --- Some acknowledge the "they get a job, they get trained, and they go on to greener pa$ture$." In this case, the mentoring is a lost ROI in many cases. --- My reading of the desires of the person featured in the article... they want to hire a person at new grad wages who knows how to debug a legacy code base, architect a cloud solution, come up with new product ideas, do market research, and be a participant in the "devops means we give developers root" culture... and be able to do this within single digit number of days. Those are things that come with experience and failure. No class or boot camp will teach those things to a point where the person is competent in them without some good time to work on those skills (side note: this is where college often produces better candidates than boot camps - they've got more time to learn the tools). Rambling on the above... I now have a one question that will distinguish a good candidate from a poor one: "How do you set a breakpoint in your preferred debugger?"
- coybanana 7y agoDuring my undergrad, I took an elective course from a visiting Professor on TDD. I found that directly relevant to work experience afterwards. That said, I wouldn't say my core CS classes were useless at all.
- deleted 7y ago[deleted]
- halis 7y agoYeah they lack programming skills. Because they've been going to school, not programming for a living. But they can Google. They can study for interviews that quiz you on computer science trivia. The interview process on the coasts is broken. In the midwest I don't have to deal with that shit.
- adjkant 7y agoWhat's funny to me about all of these comments is that practically focused CS programs can hit the best of both worlds. There's a reason there's a direct Waterloo to Google pipeline beyond just the 4/4/4 timing. Co-op programs and practically focused programs work great for building that industry know how in a meaningful way while still getting the core CS taught better than you'd get at most if not all bootcamps.
- rdlecler1 7y agoIf you learn a language in four years you can have a conversation but you’re certainly not going to be fluent.
- dannykwells 7y agoColleges are not here to serve startups. Colleges are to help students build a skill set that will serve them throughout their lives. If a startup does not want to invest in a recent college grad, there are many other more experienced hires they can make. Thinking that free training which is being provided by someone else should fit your custom needs is, well, maybe not the best business case.
- ailideex 7y agoCollege is free?! TIL. I guess in that case nobody can complain.
- curiousgal 7y agoFree for the startup.
- SavageBeast 7y agoSo startups want to hire kids right out of school for entry level wages and expect them to command the skillset of a Sr. Developer... Makes sense. I too would like to hire a low cost, plentiful resource thats identical in skill level to a more experienced person while paying them less.
- GhostVII 7y agoAt least in my program (University of Waterloo Computer Science), there is barely any emphasis on practical things like modern tooling, different roles of a software engineer, etc., with the exception of some of the upper year courses. Instead it is largely theoretical - data structures, calculating runtimes, how the networking stack works, theory of distributed systems, etc. You learn practical things, but only enough to help you learn the theory. So yes, this absolutely doesn't prepare you for a job, but I don't think it is supposed to, it is a university program, not a bootcamp. Instead it gives you the foundation to do more research and learn practical applications of the theory you have learned. Through internships, I feel I've learned the practical I need in order to work full time, and what I learn during internships is complimented by the theory I have learned through my degree. So I guess what I am saying is that if you are doing a university program, you shouldn't expect it to give you the practical skills for working, that's not what it is for. Instead do lots of internships if you can, they are fantastic.
- ipsum2 7y agoAnecdotally, I've heard many startups (and large tech companies) enjoy (and prioritize) hiring Waterloo grads because of their expansive work experience, due to Waterloo's unique co-op program that mostly doesn't exist in U.S. universities.
- toomanybeersies 7y agoI don't know about the University of Waterloo, but at the University of Canterbury, we had separate Computer Science and Software Engineering degrees; you could get either a B.Eng (hons) in Software Engineering or a B.Sc in Computer Science. Software engineering students had to do process and design papers, they (theoretically, at least) learned about agile development, UML diagrams, and all that other SDLC bullshit. As a computer scientist, I instead took fun papers like computer graphics and cryptography. All the things I missed learning because I did computer science, I picked up as I needed at work. Learning how agile development works doesn't take a semester of reading books, and what you learn in theory about the SDLC at university doesn't reflect reality in any company.
- ummy 7y ago
- habosa 7y agoAlternate headline: "Startups lack the job training that new software engineering grads need"
- deleted 7y ago[deleted]
- doggydogs94 7y agoIt appears that startups need top level experienced people that they can pay next to nothing.
- madhadron 7y agoMy observation is that the CS degree starts making a difference about five years after young programmers start working in industry. Those without the formal background hit a wall in their technical development.
- mnazim 7y agoRevive apprenticeships - where learner goes to master and learns directly from the one who practices the skill on a daily basis. In modern wold, this responsibility should rest on tech giants, who should have dedicated apprenticeship programs; and they should pay apprentices an honorarium for investing their time in studying their area of their, instead of their competitors. For some reason, I don't know/understand, this responsibility got shifted to taxpayer.
- bra-ket 7y agonah, leetcode skills is all they need
- rbanffy 7y agoThere is a relatively simple solution, one that's been the norm in many other industries where there are shortages of field-specific knowledge and skills - in-house training. This may not be an option for startups but, then, maybe startups should focus on hiring more experienced professionals who can, with time, bring freshly graduated engineers up to speed, as well as helping design systems and processes tailored for the company and product.
- mettamage 7y agoEdit: I wrote a whole post but now realize that software engineering is a much more conceptual master than computer science. I'll leave the following below still here since it might be interesting. I mistook the perspective though, since I talked about computer science and not software engineering. /edit What I'm wondering is: doesn't university prove that one is capable of learning programming/computer-related topics? The hardest things I've learned about were: - rowhammer/cache sidechannel attacks via the GPU with C and then porting that to Javascript and do it over the web - creating a computer graphics engine from scratch (I did this in Java which made it easier) - reproducing a simplified version of Kevin Mitnick's attack on the Boston super computer (? not sure, memory is vague) with C, libpcap, tcpdump and other tools/libs - being passable at reading x86/x64 assembly and understanding how a computer is built from the architectural level to a modern programming language, playing around with creating an MUL instruction for a toy ISA - compilers and reading a toy ISA to then be able to read the toy machine code made for it Is this practical? No. Is this a lot harder than creating a new web app for a startup just starting out? Yes, if you know a programming language or two, then it's easy to hack things with JS together and also fairly easy to get up to snuff with ReactJS and ES<whatever_year_it_is> since it's mostly syntax features. I don't have experience working with legacy systems or 1 million users large scale systems, so I can't comment on whether that's more difficult. However, since this article is about startups. I've worked for startups that existed 2+ years, and becoming productive on the job didn't take me long and I'm not an amazing programmer by any means. My bachelor though, yea, that was a lot worse. My master in CS saved me by following security courses where the professors expected you to learn almost anything on your own.
- jkingsbery 7y agoI currently work at Amazon, but spent most of my career before Amazon at startups. Here are just a few things that, in my experience, this article gets wrong or over-states: 1. "They [start-ups and next-gen tech companies] want grads who can build scalable systems and program for large-scale, distributed, data-intensive systems that leverage cloud computing." - For start-ups, this is only true if your startup is in that space. Most "start-ups" are trying to find product market fit, and the systems are generally not large scale as a result. 2. "Engineers at established companies mostly work within their specialty areas." - While there's some truth to this, I think it's overstated. In the start-ups I worked with, "engineers" did not do market research. I worked with plenty of specialists at start-ups that worked with language X, but if you asked them to debug an issue in language Y, they'd refuse. In some cases, it can be the opposite of what this article states - engineers at a start-up can often focus on hands-on engineering tasks, whereas in a large company I find a larger portion of my time is around writing documents to align more people around an idea. 3. "The timing of the product release is crucial because it has a direct impact on acquiring customers and affects the bottom line. Significant delays can put a company out of business." - In a large company, you won't go out of business if your release is late, but it could mean that your product gets de-funded. While the change to the company might not be so much, a project getting de-funded certainly affects the daily lives of those involved. So I think this difference is overstated. 4. "Engineers for startups are more likely to play a significant role in defining the system architecture" - My experience is that this depends a lot on the start-up and the seniority of the engineer in question.