| Having worked at Microsoft and now at Apple (and a startup before these two), in my opinion The overall distribution of proficiencies and talent across engineering teams (both hardware and software teams) in my opinion were about equal across the three. (One major difference though is finding engineers who don’t mind doing nitty gritty dirty work like Dev ops and/or setting up test automation stuff is harder in big companies because somehow many of the senior engineers at big companies feel that if the setup isn’t given to them by someone else, it’s not their job to set it up for their team, so they just use what’s available/existing even if it’s insufficent for good quality. (Not trying to bash on any oldies on my existing or previous teams of course there were few exceptions) At startups though engineers don’t have this “that’s below me” Attitude and will put in the time to set up automation if it makes the team more agile. In fact setting up developer automation was one of the first things I set up for my team before getting to my feature development tasks and team has acknowledged it made huge difference in the overall team agility and reduction in regressions found by the QA folks every time code was checked in
) Anyway this made me realize the importance of good marketing which Microsoft lacked a lot imo and also engineering leadership product vision Since generally I’ve noticed you’ll get about the same distribution of engineering talent And what really makes the difference are a good marketing team and good engineering management team who believes in the importance of code quality (ensuring things like checkstyle and findbugs are enabled as required to pass for check in and having required code review approvals for check in) and automation in tests (ensuring some set of unit, integration, and functional tests are run to be passed before check in), and automation in deployment. |