Live data from Hacker News

I built Excel for Uber and they ditched it

basta.substack.com

81–90 of 565 posts

Re: I built Excel for Uber and they ditched it

#81
post #62

> He simply couldn’t believe that I’d written a full spreadsheet engine that ran in the browser. I can't believe it either, and I don't mean this in a good way. Apache POI lets you run headless Excel. You import and interact with sheets programmatically in Java. We used this in my old workplace for exactly the same reason (functions, cell references, the whole thing), it worked great. You found the ‘circ’ problem wit…

> It seems to me like a bit of googling and >90% of the work here could have been avoided.

I had a deadline and the only idea on the team for shipping a working product, and I shipped a working product on time.

Uber ran (runs?) their own data center. Getting a Windows machine/VM procured to actually run Excel would have taken an act of god. I was able to spin up a new front-end service in about thirty minutes. And I had some code that sort of kind of already worked, so I wasn't starting from scratch. Keep in mind that this system needed to be used by multiple people with different sets of data simultaneously.

> Are you really going to build and maintain a full blown Excel clone in JS? Is this really the objective of the frontend team?

If they'd have kept asking for more features and Excel parity, I suppose we would have considered it. But they didn't.

Certainly I don't expect many people would have chosen to do what I did. But the thing worked (and surprisingly well). If all you took away from the post is that it was a big complicated project, I'm afraid my writing has failed to convey the message it was attempting to convey.

Re: I built Excel for Uber and they ditched it

#82
post #59

I'm confused about the circular reference thing. Like, was there a reason to do the linear regression that way? Is there a secret story in a story where next week, in a spinoff / sequel episode, the data scientist responsible will explain why they took the weird/surprising choices they did?

It's a common excel trick in finance. For example, let say you have $0. If you borrow $1,000,000 at 5% interest, by end of year you'll be short $50k. That means you actually needed to borrow $1,050,000. But the extra $50K causes more interest ($2,500)... so you needed to borrow $1,052,500, which causes more interest... and so on.

Instead of doing some Excel Goal Seek or Solver or VBA macro, it's nice to let the excel "reactivity" handle it for you.

Re: I built Excel for Uber and they ditched it

#83
post #62

> He simply couldn’t believe that I’d written a full spreadsheet engine that ran in the browser. I can't believe it either, and I don't mean this in a good way. Apache POI lets you run headless Excel. You import and interact with sheets programmatically in Java. We used this in my old workplace for exactly the same reason (functions, cell references, the whole thing), it worked great. You found the ‘circ’ problem wit…

I think one of the biggest growth areas for junior engineers to reach mid-level and senior is recognizing when you're re-inventing the wheel. E.g. If you are given a programming task to do anything related to Excel or the Microsoft Office suite, it's worth googling it first, because some engineer somewhere was probably tasked with doing the same thing a decade ago and has written a blog post or made a GitHub repo for it.

Re: I built Excel for Uber and they ditched it

#84

Earlier quoted context omitted.

Cool -- if one of the companies wants to issue a takedown request, they're free to make the case for it. It's funny there's this idea that a company _might_ be potentially injured over code they do not want or know they had being made open source by its actual author, even though many of those companies will gladly use open-source tooling without ever contributing anything back. Perhaps more soundly, though, in Calif…

There are gray areas but I do not think you are in one. > and then later adapted and expanded upon that code (or even started over, with the knowledge of what you learned from others' work) These are extremely different scenarios. Starting with a copyrighted material and modifying it is not at all the same as reading material and starting over. The first is violating copyright, the second is a derivative work. If I r…

I wrote the comment above, though I'm not the author of the code that you appear to think I am. But I am in agreement with him.

> Their employment contract for-sure states they own any work produced by you during your employment, and you agreed to this.

There are many open legal questions as to where this line is drawn. Surely the line falls somewhere between "every character I've ever typed on a keyboard" and "the verbatim code". I personally don't think he's crossed it. IP ownership is much more complex than portrayed in HBO's Silicon Valley. That is my opinion.

Furthermore, when I worked at GitHub (now acquired by Microsoft, so I'm sure things have changed drastically) -- there were very lax IP ownership agreements in the employment contracts around code ownership, because the legal department was worried that if found in any way conflicting with California law it would render the entire IP claims null and void (which does have precedent in California).

The point is we don't know, and I think OP would know better than us if it was disallowed or not.

Re: I built Excel for Uber and they ditched it

#85
post #45

Earlier quoted context omitted.

Especially the brazenness with which the author basically says "if they want to sue me for this verified and admitted IP theft, they can." Sure, they probably won't. But they might. And if they do, you'll lose immediately. Seems like a pretty high risk no reward scenario.

And if you lose immediately, you likely owe damages. Those damages, even if trebled, appear to be $0 here.

Pretty sure that's not how copyright damages work. Don't take legal advice on HN folks.

Re: I built Excel for Uber and they ditched it

#87
Just a heads up for anyone who finds themselves with a similar requirement, there's a very robust set of office APIs available in .net. I would be surprised if you couldn't open and run a whole workbook with them though I have only used them for more tangential tasks.

Re: I built Excel for Uber and they ditched it

#88
post #49
post #33

Earlier quoted context omitted.

Your employment agreement or contract likely has some clause saying you transfer ownership, rights, etc to the organization. Which likely means your "free time" code you decided to do to make your job easier now belongs to your employer since they asked you to write it (albeit indirectly in this situation). Will anything come of it for trivial stuff? Probably not, but that doesn't mean it's ok. Unless you have someth…

> Which likely means your "free time" code you decided to do to make your job easier now belongs to your employer since they asked you to write it (albeit indirectly in this situation). Especially when you have problem A at work, then some time later write "generic code" that solves problem A, then some time later "import" the code to your dayjob to solve problem A. And double so if nobody else ever uses this generic…

Ethically, I'm not sure how to slice it. I'm operating on what you wrote here rather than this specific story.

Some contracts stipulate that anything you write while employed is owned by your employer. (I'm settled in that this is unethical, but it's reasonable to comply.)

But let's suppose there's no such stipulation.

You get an idea while at work. Everyone gets ideas. You take your brain home with you (I hope) and start developing that idea. You think it's generally useful and doesn't depend on any or reveal anything about a trade secret or other proprietary work, nor reveal anything about them.

Is it your choice to contribute that idea to your employer or to use it in an open source or some other unassociated project? Why or why not?

Is it OK if you never use it for any of your employer's projects?

If not, then is it OK to wait until after your employment to develop that idea on your own or for your next employer or even turn it into your really awesome startup that definitely won't fail? (I think all of you are willing to do the first, and most of you the second.) Why does that change the ethical quandary, or why doesn't it?

Alright, so your employer specifically asked for this solution and you wrote one on the clock but it was minimal, maybe you didn't have enough time to make a more elaborated one, and you write a better one and did one of the above with it. Is that OK?

I don't think this question is all that cut and dried.

Re: I built Excel for Uber and they ditched it

#89
post #33

Earlier quoted context omitted.

Quite the opposite. Software written off the clock that does not compete with the employer is not only not the property of the employer, but any contract attempting to gain such ownership is unenforceable. Many businesses even actively encourage their developers to contribute to open source projects.

Your employment agreement or contract likely has some clause saying you transfer ownership, rights, etc to the organization. Which likely means your "free time" code you decided to do to make your job easier now belongs to your employer since they asked you to write it (albeit indirectly in this situation). Will anything come of it for trivial stuff? Probably not, but that doesn't mean it's ok. Unless you have someth…

I don't.

Re: I built Excel for Uber and they ditched it

#90
post #23

I read this article looking forward to the complex bespoke code to be ripped out and deleted - but the author clearly grew as an engineer in a way I didn’t expect: > Sometimes that’s just how it is. The devops saying “Cattle, not pets” is apt here: code (and by proxy, the products built with that code) is cattle. It does a job for you, and when that job is no longer useful, the code is ready to be retired. If you tre…

> (from the article) - Having Excel in the browser was a useful solution, but the problem wasn’t showing spreadsheets in the browser: the problem was getting a specific UI delivered to the right users quickly. > (from the above comment) - A good engineer can solve any problem with clever code. A great engineer knows what problems aren’t really problems and probably an XLS download link updated daily would have been f…

> "Just make it like Excel" is a super low quality answer from someone who has a completely different set of objectives. The only way forward would have been to consult with someone closer to the actual users and counter-argue from there.

The only contact we had with "actual users" was over WeChat because they were on the other side of the planet.

> What's missing here is the courage to recognize weak assumptions and deliberately avoid writing any code until enough details are pinned down to get to an agreement from all parties, not just say yes to the person "in charge".

Uber was pathologically bad in this sense. There was no time to get details pinned down. We had a product to ship in two weeks for non-technical stakeholders. If we didn't, the stated consequence was millions of dollars in losses to the business. Throwing up your hands until you get product clarity when you know you can solve the problem as-is is a great way to find yourself with a PIP.

Post reply on HN