6 ms·
> The engineers in charge of these systems have been "at odds," which has created friction, according to The Information. > Uber’s chief technology officer, Th
by cjslep 11y ago
> The engineers in charge of these systems have been "at odds," which has created friction, according to The Information.
> Uber’s chief technology officer, Thuan Pham, later wrote to his staff that the mistake “reflects an amateurism with our overall engineering organization, its culture, its processes, and its operation.”
This makes it sound as if the two engineers in charge of the Node.js and Python systems are bickering over which technology stack is better and refuse to compromise. I get there is worry about career progression if your backend option loses, the glory of being the engineer in charge of the entire backend of Uber, and the different specs of different technologies. But to hold the entire company hostage seems like it would be a career-ending move to me, regardless of sides. Then again, I am not in management.
- munin 11y ago> But to hold the entire company hostage seems like it would be a career-ending move to me, regardless of sides. It would be, if you lose. If you win, you are rich beyond the dreams of avarice. It would also be a career ending move to admit that your system is less than the other system and everyone will remember you as that loser whose system was done better by the current VP of engineering.
- ericfrederich 11y agoEasy... choose Node and put the Python engineer in charge or choose Python and put the Node guy in charge. Or redo the whole thing in Go.
- munin 11y agoThere is definitely some degree of executive decision their management could make but it would shred one of the two leads careers. This kind of hard call is why you're boss, so it says something about someone when they don't make this call (although we don't know the full story here, this situation happens enough in general). The post I was replying to was asking why an individual lead engineer in this scenario would do this. They have reasons to fight and no reason to concede. Their bosses have every reason to, at minimum, get both sides to "hug it out" so why haven't they?
- thedevopsguy 11y agoOr move everything to a microservices architecture and use the best suited language for each subsystem. It would force both camps to engineer for composability and open service apis. My tupence.
- rco8786 11y agoI assure you that Uber is built using "micro services". That doesn't mean there isn't value in having some language uniformity in the org and it doesn't solve the language preference between people problem.
- gansai 11y agoLooks like Uber has moved to a microservices architecture. Check their engineering blog: (https://eng.uber.com/soa/ https://eng.uber.com/soa/)
- thedevopsguy 11y agoWasn't aware of their move. A microservices architecture then makes the technical conversation about the service, it's latency, performance rather than implementation details. Is it such a bad thing to have many different languages in play as long as the SLAs are met?
- deleted 11y ago[deleted]
- brobinson 11y agoI have a friend in SF who works at Uber and writes Go there. He said they're using it for a lot of things internally.
- threeseed 11y agoIf you are choosing a whole new language why not one of the JVM ones. It is faster and more scalable than Go plus it has a usable debugger.
- jheriko 11y agodecent engineers aren't tied to one platform, so this is not really a valid argument imo. career progression goes faster if you aren't limited by these sorts of choices. being able to learn something new fast and apply the same principles all over the shop is something that engineers do... you work with what you are given.
- FilterSweep 11y agoOn the level of senior engineer, having chosen the Wrong platform would give the other senior engineer the promotion, at best, and at worst, get you fired. Regardless of your capability to build on a different platform.
- martingordon 11y agoJust because it's wrong now doesn't mean it was the wrong decision when the decision was made. Choosing X over Y could have meant they got out the door quicker than a competitor and got them to the point they're at now, even if Y makes more sense now at the scale they're at.
- boothead 11y agoThis sounds very much like two little pigs arguing about the merits of straw vs twigs when they should be building in brick to me.
- snissn 11y agoBy brick, which language would you want to use?
- celticninja 11y agothe best one for the job, I am assuming that is what Pham has been brought in to identify.
- bliti 11y agoAt that scale my choice would be Java. Proven, reliable, plenty of devs, vendor support, good type system, and plenty of open source code to leverage. Plus it's it's a mature ecosystem.
- PopeOfNope 11y agoJava the language or any language that compiles to the JVM and can leverage existing Java libraries?
- bliti 11y agoI'd go with Java itself. It's the most mature and stable. Uber is not a startup. It needs an enterprise solution.
- unethical_ban 11y agoScala, Go, Python, Haskell, Erlang.
- extc 11y agoInstagram seems to be doing OK with python.