13 ms·
It's hard to overstate how bloated Apple was internally. Marketing had products for every conceivable niche. Engineering was all posturing: great hand-waving
by w10-1 4y ago
It's hard to overstate how bloated Apple was internally.
Marketing had products for every conceivable niche. Engineering was all posturing: great hand-waving plans papered over nasty middle-management infighting. Hundreds of engineers in new glass-walled offices, producing plans. I wrote test code against a component that had been delivered months earlier only to find that it was just a stub. Even the debugger had bugs. Everyone knew it was a mess, but went along with it, fatalistically thinking that any OS-level project would be that messy.
I went across the street to JavaSoft: small teams cranking out code that would last forever. Swing was built in a year. Signs on the offices not to disturb the programmers. ~1,000 classes in 1.1, ~10K in 1.2 the next year. One main engineering manager hired a bunch of kids out of college. The JDK tech lead, Mark Reinhold, is still at the helm today.
Night and day; it was like going from the Soviet Union to the U.S.
When considering a new job, I almost don't care about technology. Engineering culture makes all the difference.
- deleted 4y ago[deleted]
- baby 4y agoWhat do you look at in engineering culture?
- TremendousJudge 4y agoAnd how do you even "look" at it from the outside? Ask interviewers and they will always tell you that they have great culture, teamwork, etc
- Aperocky 4y agoEasy, Ask where the documentation is. Ask how much input engineers have on what they are working on. Ask how many meetings hours they average per day.
- replyifuagree 4y ago>Ask how much input engineers have on what they are working on. This is the way. Ask this question of people working at a legacy company and they won't be able to meet your eyes.
- TremendousJudge 4y agoThank you. These are valuable pointers.
- streblo 4y ago> Ask where the documentation is. I've had a reasonably long career and worked at a number of companies at this point, and I've never seen this 'documentation' that engineers are supposedly producing.
- Aperocky 4y agoWe really have the opposite problem, there are lots of documentations but they are not exactly organized or all up to date. Much easier to fix than not having any of them I would guess.
- baby 4y agoI feel like having too much doc is not really a problem :)
- spaetzleesser 4y agoWelcome to health care. We produce a ton of documents that then disappear into a terrible document management system to never be found again.
- gorjusborg 4y agoI think existence of documentation is a poor metric, personally.
- sfink 4y ago
- n4bz0r 4y agoI would assume there is no one thing to put a finger on. But there are some signs one can take a note of. Generally speaking, to name a few: - The ability and willingness of the management to invest time and resources into development of proper work processes and infrustructure (imagine having to code without version control in a team) - Understanding that things aren't always done the moment they appear to be done - Realization that many things are done to lower the cognitive load exclusively (why do we have to spend 20 hours refactoring the thing if it already works?) - Understanding why it is important to lower the cognitive load - And dozens more These are merely signs, though. One can put 'dnd' signs on doors, but what difference does that make if the same people who introduce the signs still disturb the people behind the doors whenever they feel like it. (no pun intended, couldn't word it better) It comes down to understanding the nuances, and mutual respect, I think?
- gorjusborg 4y ago> It comes down to understanding the nuances, and mutual respect, I think? I think that's a great summary. Look out for companies that try to manage what they don't understand. It can lead to the 'car mechanic phenomenon'. I call it that because it's like the feeling some get when they get the bill from the car mechanic. They can't fix it themselves, so how do they know if someone's pulling one over on them?
- iancmceachern 4y ago100%. The companies and programs I've been a part of that failed, this is why. I've been meetings and made what to most engineers would be a truism, and been told by leaders that didn't have even a basic understanding of what we were trying to make "you don't know that, that's not true". In similar situations in successful management lead to "ok, I trust you" and then success. If an organization spends too much of its valuable resources on internal mistrust and convincing people who don't know, it's doomed.
- quickthrower2 4y agoIf people have to enter time spent into any system then thats an no from me. Which means I cannot work for consulting companies :-).
- jimt1234 4y agoI had a friend interview at "Big Nameless Corp" a few years ago. He said when he saw that the engineers interviewing him all had Windows laptops, he knew immediately it wasn't an engineer-friendly culture. I always thought that was funny.
- prepend 4y agoI try to stay pretty open, but I work on an org with a lot of windows developers. It’s kind of interesting how it’s a totally separate world and the windows devs have their own equivalents to dot files and stuff. The problem is when they insisted that everyone else must use windows and Mac and Linux machines weren’t allowed.
- Tijdreiziger 4y agoI don’t really see how that’s relevant given that WSL exists.
- mindentropy 4y agoWSL in Windows 10 is almost useless. Also for embedded and people working on kernels etc it is really painful.
- deleted 4y ago[deleted]
- 1123581321 4y agoWSL is a business checkmark used to keep engineers quiet. It's not a pleasant surrounding ecosystem and the implementation isn't as high fidelity is the real thing.
- mindentropy 4y agoExactly. It is painful in Windows 10. Nothing beats running natively.
- FpUser 4y ago>"He said when he saw that the engineers interviewing him all had Windows laptops, he knew immediately it wasn't an engineer-friendly culture." "Friend" should have his head examined. This kind of snobbery attitude does not do any good
- iancmceachern 4y agoRespect for the craft and those that practice it.
- hinkley 4y agoRight before that era I worked on Mosaic for Windows, and the Mac developers sat across the stairwell from us. The Mac guys had a very love hate relationship with Macs. On the one hand the lead was infinitely proud of being able to have 2 (or was it three?) monitors on his desk, big CRTs on a desk designed during the Cold War, by a designer who had nightmares about nuclear blasts and wanted someplace safe to duck and cover. You could do that with Macs but not quite yet with Windows. If memory serves, Linux got that ability before Windows did but don't quote me on that. On the other hand they were writing what is ostensibly a concurrent application on an operating system with no protected memory and no pre-emptive multitasking, so the whole thing was using hand-rolled cooperative multitasking via C longjumps. It's no wonder the Windows team had an easier time keeping up with Netscape for that golden year. They were from what I understand cross compiling, and the Windows team could just do Windowsy things with a fifth of the staff. So my experience of this era, through that lens, through learning to hate Macs at the hands of Mathematica, and also through rumor mills, was that a lot of Apple's OS people ended up going to Palm, where they made pretty much the same set of tradeoffs. It was very weird watching subsequent Palm models start to bump up against the same ceiling that NextStep was helping Apple route around. I told my Mac loving friends to talk to me when Apple had a modern OS. So when NextStep merged my ears pricked up. My first Mac ended up being an anomaly. Apple briefly produced a 13" Mac with a discrete video card, which they haven't since. I had been struggling to get Linux drivers for a Fujitsu LightBook, which was ridiculously small, but was practically obsolete by the time I got everything working. That device is the sole time I've contributed to Linux, which was cool but exhausting. So I ran to a pretty UI, works out of the box, but ships with /bin/bash with open arms and never looked back. You could still see the bones of NextStep in OS X for some time. The university ended up with upward of 60 NeXT machines (which I later learned is a lot for one college), in 2 labs when I started, eventually in 3 that I knew of, one of which I ended up with after hours access to. On many occasions they were the only open machines. I had helped too many people who lost their papers to faulty disk drives and learned that the best way to write a paper was to keep my Unix account empty and mail myself copies, so it hardly mattered that I didn't have a floppy for the NeXTs. It didn't hurt that they never figured out how to meter the NeXT laser printer, so while it wasn't the best or fastest printer on campus, it was the only free one. "Your printah is out of paypah."
- hot_gril 4y agoYour description of 1997 Apple sounds uncomfortably close to modern Google. I miss working for startups.
- chubot 4y agoThat was also echoing through my brain while reading through the comment (worked there awhile ago) It would be crazy if someone just shook up the whole company top to bottom, but google is still making money and apple wasn’t So I think it will never happen
- mooreds 4y agoNothing is forever.
- hot_gril 4y agoGood point, it's not a good comparison. > it will never happen I can see it happening. They have just one cash cow in advertising, and it's not terribly secure. TikTok is already a serious threat to YouTube. If this became a crisis, it wouldn't sink the company, but it'd certainly shake it up.
- kypro 4y agoThe "TikTok threat" is so overblown. It's not activity competing with any existing social or video platform. It's competing for time, but that's about it. No one is using TikTok to stay in touch with their Grandmother or watching 2 hour Podcasts on it. They invented a new type of video entertainment which has a social element, that's it - it's neither a YouTube or a social network competitor. I'd argue Snapchat is probably their most direct competitor, but Snapchat's DAU is still growing fine, because even in Snapchat's case I think you can argue they're used differently. Snapchat seems to be used primarily to stay in touch with friends where as TikTok seems to be used to find/share short-form video content with strangers.
- hot_gril 4y ago
- tester756 4y agoYou guys were creating Java? > ~1,000 classes in 1.1, ~10K in 1.2 the next year. 9K classes in a year sounds crazy as hell
- Aperocky 4y agoSounds about right for Java..
- hot_gril 4y agoI disagree with what I call Java's OOP obsession, but I have to admire the drive behind that ecosystem.
- origin_path 4y agoHow many classes do you think it should have, ballpark, given the same feature set? GUI toolkits alone can produce thousands of classes because there are thousands of concepts that make sense to model, then add on security, collections, many utilities, XML handling, multiple RPC systems and so on. It's hard to over-state how large the Java standard library is. And it's not like other ecosystems do better. The standard complaint about JS is that you try to do something basic in that ecosystem and discover you have 10,000 modules in node_modules. Not so different, really, except that the Java stuff comes from a single team with a relatively coherent design philosophy.
- 4y ago
- dilyevsky 4y agoObligatory story how someone tailgated to apple’s office long after being fired to finish his project around ‘94 I think: https://youtu.be/Dl643JFJWig https://youtu.be/Dl643JFJWig
- par 4y ago> Engineering was all posturing: great hand-waving plans papered over nasty middle-management infighting. Hundreds of engineers in new glass-walled offices, producing plans. Sounds a lot like a lot of FAANG companies today.
- abxytg 4y ago[]
- duxup 4y agoSadly just sounds like ... human organizations often get.
- bhawks 4y agoThe iron law of bureaucracy: Pournelle's Iron Law of Bureaucracy states that in any bureaucratic organization there will be two kinds of people: First, there will be those who are devoted to the goals of the organization. Examples are dedicated classroom teachers in an educational bureaucracy, many of the engineers and launch technicians and scientists at NASA, even some agricultural scientists and advisors in the former Soviet Union collective farming administration. Secondly, there will be those dedicated to the organization itself. Examples are many of the administrators in the education system, many professors of education, many teachers union officials, much of the NASA headquarters staff, etc. The Iron Law states that in every case the second group will gain and keep control of the organization. It will write the rules, and control promotions within the organization. https://www.jerrypournelle.com/reports/jerryp/iron.html https://www.jerrypournelle.com/reports/jerryp/iron.html
- bredren 4y ago> When considering a new job, I almost don't care about technology. Engineering culture makes all the difference. This resonated with me. Whether you are recruiting or looking culture is incredibly powerful.
- alecbz 4y agoThis is hard though because culture often isn't very legible. I'd easily trade pay (within reason) and any tech stack for a truly great culture where I felt driven and engaged and was doing meaningful work, but the latter is really hard to understand ahead of time.
- bredren 4y agoIt is. However, in earlier phases people can recruit from their networks. They will only be able to sell their best contacts with trusted tales of good things.
- no_wizard 4y agoAny stories you'd be willing to share from your time at JavaSoft?
- switchbak 4y ago> Swing was built in a year Checks out. I'm still bitter towards Swing though. But impressive what they could put out in a year. That said, I'm absolutely NOT a fan of the JWZ sleeping bag under your desk/get it done whatever the cost mindset that was everywhere in the 90's.
- mixmastamyk 4y agoBitter towards Swing?
- switchbak 4y agoYes. Swing was not good, we had better idioms before and after.
- simoneau 4y agoFYI: JWZ has long-since disavowed this attitude, and much else.
- mradek 4y agoI wish companies would be run in a way that removes insane leveling completely. In my current company there are 7 or 8 levels (depending how you look at it) for ICs. Why? IME it has led to so much “talk” and bloat, and useless meetings led by people trying to prove something who go on and on about things that make no sense. No execution, only flattery and BS. IMO, the only levels you need should be Software Engineer, Senior Software Engineer, and Software Architect. The architects should be rare, and there should be a healthy mix of seniors and juniors focused on building and supporting products internal and customer facing. Why do we have several layers of managers? Out of a dozen managers only two have been good. They’re also the first ones fired. It just seems stupid, even if it’s purposefully done that way (that’s even dumber to consider). Have lean teams with a lead, and a manager who manages several teams, and a director for each product offering who reports to a CTO or something. VP, SVP, EVP. Why? I’m on a team where people waste so much time and yet I see those same people get promoted, while I’m told I’m disengaged because I don’t turn on my camera in bullshit meetings (to plan future meetings or ramble). On the other hand, my team consistently delivers on time or sooner, while those teams take forever. It’s sad, really.
- smugma 4y agoThe IC leveling at Apple is similar to what you have described. ICT 3/4/5 roughly maps to what you have. The problem with this is that while it's relatively easy to go from a 3 to a 4 after a few years, it's a huge jump from 4 to 5, and then after that you've basically peaked for life. If you just care about building great things, it can work, but for many people, feeling like there's growth and not stagnation is a problem. It also creates a problem for managers having to temper those expectations. Limiting IC layers doesn't remove all the other politics.
- gajjanag 4y agoNot really true anymore unfortunately, and the system is converging with other large organizations. For example, to keep compensation in line with market and reduce attrition, there were definitely more people who got promoted to ICT5 last year and the designation has thus been diluted. Furthermore, candidates coming in from other large companies expect the title/leveling prestige in many cases, and ICT5 is a tough sell while trying to hire a Google L7/8. So Apple does have a fair number of ICT6 from that. I also think limiting IC layers and keeping the above politics minimal can work - Netflix did that for a long time and was very successful as a company with their approach. Most IC at Netflix were simply titled "senior software engineer", with pay being a wide band dependent on market value. They no longer do that for some reasons, and have adopted the standard large level hierarchy.
- EVa5I7bHFq9mnYK 4y agoWell, it's much easier to write a brand new language and class libraries. Everything is self contained, there are no dumb users involved, no undocumented external functions, most of the library functions can be ported from existing languages etc.
- cgb223 4y ago> Marketing had products for every conceivable niche. Engineering was all posturing: great hand-waving plans papered over nasty middle-management infighting. Hundreds of engineers in new glass-walled offices, producing plans. I wrote test code against a component that had been delivered months earlier only to find that it was just a stub. Even the debugger had bugs. Everyone knew it was a mess, but went along with it, fatalistically thinking that any OS-level project would be that messy. This sounds like the company I work for presently
- perardi 4y agoMarketing had products for every conceivable niche. Ah, the Performa era. https://en.wikipedia.org/wiki/Macintosh_Performa https://en.wikipedia.org/wiki/Macintosh_Performa Mind you, my first Mac was a Performa, as we sure didn’t know better.
- microtherion 4y agoPart of that may also have been the greenfield development nature of JavaSoft; it's often easier to make rapid progress if you don't have to be backward compatible with preexisting APIs etc. And from what I heard, Sun as a whole was a highly dysfunctional company as well, even during the time in question. The dot com boom just papered over a lot of the dysfunction for a few years.
- tinglymintyfrsh 4y agoI wrote a 1.2 Swing desktop app with a JNI DLL to call Win32 to create a desktop shortcut. The hilarious part is it violated the EULA because a JRE was shipped and ran from a CD. It took about 30 seconds to load, so it seemed very important. :) It was themed with a JPG in the background to paint the window object's canvas.
- iancmceachern 4y agoI agree, not almost, 100% care about engineering culture only when considering a new job. Poor tech design cam be fixed by a healthy engineering culture, an unhealthy engineering culture can't really be "fixed" (only eliminated and re built well).