Skip to content(if available)orjump to list(if available)

I couldn't submit a PR, so I got hired and fixed it myself

b8

Reminds me when I got banned from Amazon for suspected fraud (had an old account, but deleted my email and number since it was in a lot of DB dumps). After I got hired, I reached out to the guy in charge of the anti-fraud team at Amazon, and got unbanned. Emails to support etc. did nothing before I reached out internally (unbanned by 1am the next day).

hansvm

Interesting. I still have a bricked phone from my onboarding at Google, and no internal people cared either. There's a tool I could have used to fix it, but it's accompanied by a message saying that if you use it without permission you'll be fired.

xmprt

> accompanied by a message saying that if you use it without permission you'll be fired

Probably why none of the internal people cared either. They didn't want to be the person on the line in case it was determined that the usage wasn't valid.

I'm curious how you bricked it beyond repair though. Most devices have a way to enter a recovery/flash mode where you can upload your own firmware from the bootloader. And if you haven't unlocked the bootloader then I don't get how you could have bricked it unless there's an Android bug... which would have probably triggered a more serious look.

odo1242

Most likely, the tool to upload the firmware from the bootloader required some sort of hardware signing key, which was present within the tool that he wasn’t supposed to use without permission.

bongodongobob

A company the size of Google will for sure have it enrolled in MDM that prevents that.

hamandcheese

> There's a tool I could have used to fix it, but it's accompanied by a message saying that if you use it without permission you'll be fired.

Sometimes I name certain APIs/function names/whatever with a "do_not_use_or_you_will_be_fired" suffix. Generally for hacks I don't want people to copy-pasta. I can't actually fire anyone, but it gets peoples attention (especially more junior folks).

userbinator

FRP? Plenty of ways to bypass that, even without any official tools.

emmelaich

I'd love for this to happen for me. I lost my Amazon account because they miswrote my phone number - having a single leading digit invalid for international use. So couldn't use text MFA and my phone with the OTP app had died the previous day.

rmonvfer

This is the level of epic I aspire to in life

makeitdouble

Except they're working at Amazon now.

danillonunes

Next level epic is hand your resignation letter right after you get unbanned. "My job here is done."

naniwaduni

tbh you could probably easily have enough gripes with Epic to do this too... but then you'd have to move to Wisconsin.

ants_everywhere

Yes, but now they have free bananas

jcgrillo

seems like they could turn this into a lucrative side hustle "super premium secret support" embrace the technofascist feudalism!

stevesimmons

If Google Maps would like to hire me so the km/miles switch can remember I only ever want to see distances in km, my contact details are in my HN profile.

I must have changed that back from miles once a fortnight since Google Maps launched 20 years ago. That's 500 times. Totally ridiculous for a company who core goal is profiling their users...

jasonkester

While you’re at it, can you find and punch the guy who thinks it’s a good idea to zoom the map to “actual size, 1cm = 1cm” mode for your entire trip?

I assume he’s also the one that taught it to spitefully let you drive off the side of the screen if you ever zoom out manually so that you can see more road on the phone than you can in real life. (With a “recenter” button that will zoom you all the way back in).

Satnavs had this all figured out in 2005.

jldugger

> That's 500 times. Totally ridiculous for a company who core goal is profiling their users

Seven interviews later and 1 PR later: Fails in A/B due to declining user engagement

mhss

It's funny cuz is true. Except it'd probably be one long design doc with 10 rounds of review, 15 CLs (PRs) and months of rollouts later ... fails A/B due to declining user engagement.

sreekotay

Nailed it in one. Or (similarly) never makes the priority/cut-off list because "what metric does it move?"

BuyMyBitcoins

Well, the setting is for kilometers, so the metric is metric.

olalonde

Also the currency in Google Flights... It always defaults based on your IP geolocation.

kirubakaran

When I was traveling in Mexico, it drove me nuts that even though I was signed in, Google Flights switched my currency from dollars to pesos every single time I opened a new tab! I think they really don't care.

bapak

You know what's even more annoying? Google Maps app on the iPhone uses the local currency for hotels and it doesn't let you change it at all.

Oh, "local" as defined by your IP too, so enjoy your VPNs.

The only solution is using the website instead, it has a currency dropdown.

CamelCaseName

This is super frustrating when you travel a lot. You can change it back to your preferred currency, but it doesn't really stick.

galangalalgol

I think they rely on ip for a lot of stuff they shouldn't. Getting a local esim switches me to km until I switch back to my old one. Have no idea about Australia.

Edit: after typing this realized this isn't ip, its provider. That maybe does make sense to cue off of.

bombela

When I worked at Google; 10y ago!; I used the internal googler feedback form to open an issue for this bug. No replies.

Every year I fill up the feedback form on Google map to complain about this bug. Some years, I even did it twice. For good measure.

This bug is shameful at this point.

392

Also accepting gmaps work, if only it could preemptively cache the return trip for any trip longer than an hour, so that I'm not stuck with no service trying to remember how I got there.

jraph

Suggestion to use an offline app that will save you from such surprises.

https://www.comaps.app/

EspadaV9

Wait, there's a setting for this? I've lived in Australia for over 16 years now but everything is still in miles instead of Kms and I have never been able to find a setting to change it (although it sounds like even if I did find itz it would be mostly useless).

fooker

Google Maps core functionality is sort of in maintenance mode, and things have been slowly bit rotting over the last 3-4 years.

Unless you want to launch some AI feature (used to be chat app for ten years and then Google got bamboozled by ChatGPT…) you’ll not find allies and your career will not progress.

11Spades

It's hilarious to see the old joke actually playing out in real life. Kudos!

On a meta note; would you consider adding a left margin to your site? Reading from the very edge of my screen feels somewhat strange.

kulahan

Clicking through the links in his article, I came across a guy who apparently did the same thing at Apple - he introduced the "auto remove" feature for expired passes added to your wallet, then promptly quit. I had no idea that's how that feature came about, but now I'm going to send a little mental thank you to him every time I get off a plane. That shit was FRUSTRATING.

chatmasta

That reminds me, I need to apply for a job on whichever team hasn’t added a toggle to remove contact names from the autocorrect dictionary…

justsid

Crazy because I remember that the first few iPhone OS versions had really bad autocorrect dictionaries, especially for German. The workaround for that was to make contacts for missing words because contact names never got marked as misspelled.

Carrok

Oh wow. Guess I need to get a job at Apple just to add a `Mark all as read` button to voicemails.

xp84

I need to get a job at Apple to stop “omw”-> “On my way!” (Complete with the `!`) from reappearing in my Text Replacements every month or two, no matter how many times I delete it.

(Try typing “I’m omw to the car” or something to see how annoying this is)

lstamour

And the ability to undo deleting voicemails. And record voicemails client side using AI transcription to deliver thnesss

skeptrune

Hotz said this, but I couldn't find any actual evidence so didn't include it.

troupo

> he introduced the "auto remove" feature for expired passes added to your wallet, then promptly quit

This still didn't work reliably, unfortunately. I still have expired passes, tickets etc. in my wallet

judge2020

Personally I don’t see why you would want to delete these expired passes. For the longest time they haven’t shown up alongside active passes.

Rendello

Well, now you know the drill!

nixpulvis

Maybe you should get hired by OP and fix it yourself ;)

skeptrune

Site is actually open source lol - https://github.com/skeptrunedev/personal-site

Vilian

>Get hired by github > force push the pr > get fired > profit

inopinatus

I am not a fan of sites that waste screen real estate.

bigstrat2003

> On a meta note; would you consider adding a left margin to your site? Reading from the very edge of my screen feels somewhat strange.

What!? I love the fact that it's left-aligned. That's the way text should be!

Crespyl

Alignment and margin are different concepts. You can be left-aligned and still have a comfortable margin.

bigstrat2003

True enough, but considering most websites these days consider "a comfortable margin" to mean "4-6 inches", I'm delighted to see a site which actually lines things up close to the left side of my monitor. Like I said, that's how text should be.

SoftTalker

> I added an AbortController to the debounced search function, so that it aborts any previous queries when a new one is made. This means that the search results are always relevant to what the user is currently typing.

To me one of the most annoying things an application can do is go off and do something before I'm done telling it what to do. Filters that apply themselves without an explicit indication that I'm done setting them up, or searches that are constantly re-executing as I'm typing. Wait for me to stop.

yellow_lead

I think a good middle ground is to wait a few hundred ms at least, for the user to stop typing, before sending off the query. Or maybe, still send the query, but don't populate results until they stop.

theandrewbailey

When I implemented search-as-you-type on my blog, I decided to wait for the current search suggestion request to complete before doing a new one. Seemed like a reasonable balance between responsiveness and not overloading the server.

db48x

When I implemented one I simply filtered the results that came back from previous requests to see if they matched what the user had typed in the mean time. That way the UI might get relevant results with lower latency than would otherwise be possible with no risk that a non-matching result would show up to confuse the user.

netsharc

The video showing the problem in the article seems to show an avalanche of queries towards the server, I'm surprised no one cared about it, but I guess it's frontend people thinking "It's the backend/ops that have to deal with the problem!".

I wait about 250 ms before firing the request, if the user (well, me) continues typing, then the timer gets cancelled and the app waits another 250ms.

fy20

Firing queries all the time is especially annoying if your users are in another continent, and you don't have proper state management to only show results for the latest query, as opposed to the latest response.

RTT from Europe to AWS us-* can easily get to multiple seconds during peak times.

tom1337

I hate this on booking websites. Especially if the filters are in a sidebar on the left and do not fit your viewport and every god damn time you change something it scrolls up, starts loading, puts filters into read only mode until it's done just so you can add the next filter...

zac23or

The software quality is so low that if a bug bothers you, it's easier to get hired to fix it than for the company to fix it! Wow.

It reminds me of the programmer who mitigated the GTA 5 loading time problem. If even with a lot of money of GTA 5 the quality doesn't improve...

stavros

The article says nothing about the hiring, which is kind of the most important part of the whole escapade. Right now, it's a bit "something was bugging me, and when the company hired me, I fixed it", which, great?

bayindirh

I think his company is acquired by the currently he's working in, so he's acquihired.

skeptrune

exactly

bayindirh

Congrats!

hinkley

In the reverse situation, I've worked at places where the IP lawyers basically made it impossible to submit PRs to open source code.

But sometimes explaining the exact inputs and the line number where you know the problem is can grease the wheels enough that you can convince someone else to write the fix for you. I didn't technically give you any code. But I did give you free QA.

cosmic_quanta

> It reminds me of George Hotz’s legendary single week at Twitter in 2022, where he joined just to fix a login popup that was bothering users, then bounced.

The author remembers this, uh, event differently than I remember it... George Hotz boldly claimed that he could "fix Twitter search" faster than those lazy Twitter devs, only to bail almost immediately. Hubris!

On the way out, he removed that login popup as a sort of consolation prize.

llbbdd

Yeah, what? He seemingly joined Twitter, did fuck-all and quietly bounced. Embarrassing and completely self-inflicted.

skeptrune

Updated the post to tell that story more accurately. Simultaneously took down the damn blog because Github pages has some freak bug, but oh well.

rs186

Time to join GitHub

skeptrune

TRUE haha

cnst

Well, that's a bit of my time gone (re)looking into GeoHot, patent trolls, and now comma.ai.

Comma.AI by George Hotz sounds very interesting, it's basically a $999 "comma 3x" smartphone with an OBD-II connector and a $99 wiring harness that can add an equivalent of a Tesla Autopilot to many cars manufactured in the last 10 years (even Tesla's own cars, too), for a total cost of $1098, whilst being OSS and available on GitHub, and — get this — even having ssh access to your car! Optional cloud subscription plans are $10/mo for your own SIM, or $24/mo with bundled cellular data.

Sadly, it does NOT have an equivalent of Tesla Sentry Mode yet, https://github.com/commaai/openpilot/issues/29912, which is kind of unfortunate, because Tesla's own implementation of Sentry Mode is using 250W of power — depleting the entire 80kWh battery from 80% to 30% in like 7 days (".5*80kWh over 7 days" = 238W) — openpilot would have been a nice alternative at what'd presumably be around 5W or less ("40kWh / 5W" is 333 days).

drexlspivey

And then he was trying to pitch rewriting it from scratch to elon

pyman

I followed the whole saga on Twitter. He shared a video of his browser saying, "I fixed it in 5 minutes," and 5 days later he was still trying to figure out why his PR was failing the build. When Twitter engineers told him to write tests, he rage quit.

It was embarrassing to watch.

buggy6257

I specifically attempted to get a job at Discord so I could submit a PR to make giant emojis be a toggle setting rather than automatic. I know the feeling.

(If anyone works at Discord, please me and the rest of my server are begging you)

miniBill

I don't know if this helps but I've been adding a full stop next to emoji exactly for this. It doesn't fix it for ~new people but it's something for yourself?

buggy6257

This is what I’ve been forced to do for years and I’m sick of it lol

xmprt

Discord is an electon app IIRC so in theory it should be possible to make a client side mod which fixes this. Not sure if that would result in your account getting banned though...

echelon_musk

This PR is quite the PR move.

PantaloonFlames

The cancellation in the denouncing seems … sort of obvious.

skeptrune

yes, i was very annoyed

Sytten

Good PR, but AbortController doesn't really help with stopping the server from processing the request. I have seen so much of this type of search that just continues processing in the backend even if the client has long gone caring.

hinkley

There's nobody who really has a library that's set up to feed a sequential task into and have it force a synchronous call to be async with breakpoints to check for early termination.

This seems like a problem Sorhus should have a library for, but he does not.

I've had the conversation too many times in the last couple months about how setTimeout() does absolutely nothing to fix this problem in NodeJS. Even Java had trouble with this and tried to delete the API that seemed like it should support this problem, due to undefined behavior.

throwaway0665

The sever should cancel the request handler when the client drops. Otherwise you're just opening up to accidental DOS.