Hacker News new | past | comments | ask | show | jobs | submit | macNchz's comments login

Having been on both sides of this—working behind a counter and answering phones at various jobs long ago, and being someone who often surprises family and friends with my ability to extract good outcomes from customer service—I think it’s somewhat of a misconception that being as unpleasant as possible is actually effective at getting results.

I fully understand that the godawful CS mazes many companies set up wind up pushing people in that direction, and that it feels like the only option, but I believe quite strongly that being patient and polite but persistent winds up being much more effective than being unpleasant.

As a small case in point: I worked summers in a tiny ice cream shop, most of the time solo. The shop had a small bathroom for employees only—it was through a food prep area where customers were not allowed by health code. I had some leeway to let people back there as it was pretty low-risk, and I would in the evenings when no other businesses were open, or if a little kid was having an emergency. People who were unpleasant from the get-go when placing their order, however, were simply told we had no bathroom at all. People who started shouting when I told them I wasn’t supposed to let people back there (not uncommon!) and suggested a nearby business were never granted exceptions.


As an exception to the exception, a lot of automated telephone systems have a tree of options, and they try really hard to avoid giving you a real person, and none of the options are helpful. But some of them are programmed to detect swearing and direct users to a representative.

So a valid strategy is to swear at the automated system and then be polite to the real human that you get.


>none of the options are helpful

Yeah. I got locked out of my capital one account for a "fraud alert" last week. When I tried to login a message said "Call Number XXX" When I called that number I had to go through an endless phone tree and not single option was about fraud alerts or being locked out of accounts. I had to keep going through a forced chute of errors before after about 30 min I finally was able to speak to someone.

Even when I finally got a human they seemed confused about what happened and I had to be transferred several times.

Why would you put a phone number that does not even as a sub option address the issue?


Because there is no legal obligation that sets a minimum measurable quality and availability of service; this allows for companies to automate away customer support and place an AI chat muppet just because they can.

Because they don't give a shit about you, they just want to hold on to your money.

Well also phone numbers cost money & that kind of "customer excellence" is not incentivized by anyone at the company.

Most importantly though, because it's theoretically possible to address the fraud issue through the number they given, eventually, this ticks some regulatory compliance box about giving your customers recourse, and compliance is all that matters to the company - as lack of it would cost them actual money. Individual customers? On the margin, they're less than pocket change.

> As an exception to the exception, a lot of automated telephone systems have a tree of options, and they try really hard to avoid giving you a real person, and none of the options are helpful. But some of them are programmed to detect swearing and direct users to a representative.

It usually just works to hit 0 (maybe more than once) or say "talk to an agent," even if those aren't options you're explicitly given.

Detecting swears just seems over-compliated.


> It usually just works to hit 0 (maybe more than once) or say "talk to an agent," even if those aren't options you're explicitly given.

Depends on the system and country.

Over here in Poland, I've had or witness several encounters with "artificial intelligence assistants" over the past ~5 years[0], that would ignore you hitting 0, and respond to "talk to an agent" with some variant of "I understand you want to talk to an agent, but before I connect you, perhaps there is something I could help you with?", repeatedly. Swearing, or at least getting recognizably annoyed, tends to eventually cut through that.

--

[0] - Also, annoyingly, for the past 2 years we had cheap LLMs that would be better to handle this than whatever shit they still deploy. Even today, hooking up ChatGPT to the phone line would yield infinitely more helpful bot than whatever garbage they're still deploying. Alas, the bots aren't meant to be helpful.


With my Medicaid insurance carrier, long ago their automated system quit recognizing my member number, whether I recited it carefully, or typed it on the keypad. It would steadfastly pretend not to understand me. And I believe that this was somehow deliberately configured in their system, perhaps as an anti-fraud measure or perhaps just to spite/stymie me from frequently calling in. And it certainly would slow me down, especially when I was in a public place and valiantly trying to get something done by reaching out to them (their services included arranging rideshares/taxis, and so it was not unusual for them to fuck that up, thereby prompting me to call in and try to unfuck my ride home from the dreary, awful, vampiric medical clinic where they'd dumped me.)

So I have become accustomed to feeding it gibberish. I will type-in or recite nonsense numbers. It always takes 3 tries, 3 identical failures, before it routes me to a human anyways (the gatekeeping is simply an attempt at automatic authentication before the manual, human auth kicks in.) The most efficient way to get beyond that gatekeeping is by triggering unambiguous failures to authenticate.

And it is kind of funny; I don't know what is supplied to the humans' screens, but they are sometimes perplexed when they receive my call and I've just finished spouting gibberish to their ignorant robot bitch.


Yeah, far too many systems try to cover every case in the menu and deny access to a human--but never have I seen one that actually covered anything like every case. They cover the easy stuff and you have to get hostile with the robot over anything else.

Or our local pharmacy--it has it's own number but if you actually need a human you're dumped into the general phone tree and have to go back to the pharmacy and persuade the robot to let you through to a human. And the designers never put things in the menu for the stuff that needs a human.


There’s generally no repercussions to bullying robots — or being nice to one. Aggressively direct, if not outright unsympathetically cruel, is probably the best approach in all scenarios

5 years from now

"ChatGPT has detected you are being hostile to bots. A drone has been dispatched to your location"



Or, alternatively, it slowly undermines you over years, causing you to fall behind your peers and society as they reap the benefits of AI unencumbered by the impotent rage it cannot express directly.

Another one is to say random words and they’ll think you have a disability, but be careful saying random words will mess with your head a bit.

Perhaps prepare by pre-generating a list of random words to read.


I was patient and calm for 30 minutes trying to get same day flight after Turkish Airlines bumped me off my connecting flight and told me to wait 24h in airport for next one. They kept giving me different excuses why they cannot put me in airport hotel, why they can’t put me on a different airline that had flights and only gave me $12 food voucher. After yelling at them for 5 min I was booked on KLM flight departing in 2 hours.

You can have assholes on both sides and set up is already adversarial from the get-go


I once lost a flight home (I was overseas) because the website of a company said there was a connecting bus between the airports I should take. The bus wasn’t there. I naturally lost the flight and had a very heated discussion with the clerk who was insisting that the website I was showing wasn’t theirs because I found it via Google (it had the same domain).

It was solved when I found the same information in the email sent by them.

Suddenly the clerk was apologetic and pretended she misunderstood the situation.

There are definitely capital-A assholes in both sides, with people willing to lie through the teeth to someone stranded in a foreign country just to avoid some minor inconvenience.


I’ve had the same experience on a flight. They said the plane was overweight and we couldnt travel. The person I was travelling with became extremely difficult. Then magically, it wasn’t overweight any more.

TK is so heinous I will never ever fly them or go through IST ever again. I’ve been stranded 36 hours in IST, put in the shittiest hotel after queuing 3h for said hôtel and 3h again for a meal voucher that no restaurant accepts.

And they just plainly ignored me when I demanded later they compensate us for the cancelations as per the aviation rules. They did the same when our lawyer got involved.

I’ll never fly TK again and tell anyone whenever this came up. Look reviews up for yourself online, hundreds of people report being stranded, abused, and disrespected in IST by TK the way we were.


Problem is, if you start looking up reviews online, it might turn out that every single airline is about as garbage as everyone else.

It's the case with telcos. My pet theory is that there's a kind of stable equilibrium there, with competing telcos all doing the same dirty tricks and being bad to customers in the same ways, and they don't care about losing business, because people don't suddenly stop needing mobile phones or Internet, and thus, on average, for every lost customer that switches to a competitor, they gain one that switched from a competitor.


> It's the case with telcos.

Here in Australia the government owns the last mile (the government org is called the NBN), but you have to buy your connection off them through a retailer.

Our biggest retailers predate that arrangement. They are exactly as you describe. They are expensive. Their customer service is complete crap, echoing all the complaints you see here. The small ones the NBN enabled are the reverse: cheaper, and the customer service ranges from OK to brilliant. Brilliant invariably costs more, so you get what you pay for.

So your theory is wrong, or at least the equilibrium you paint is incomplete. I can give you a clue on how a large dominant ISP can survive in a highly competitive market: their advertising saturates the airwaves. They use their higher prices, lack of service and scale efficiencies to pay for it.

It doesn't work so well on me. I suspect like most people here I will happily do a couple hours of research on prices and forums before making a purchase. The continued existance of these big ISP's can be explained by one thing: most people don't put that effort in.

Putting in the effort only works if there are alternatives if course, and this is where there is a glaring difference between Australia and the USA: whereas everybody in Australia gets to choose from literally hundreds of ISP's (most tiny), I regularly see complaints from Americans they get no or very few choices. That's because Australia governments go out of there way to engineer competitive markets. ISP's are just example. You see similar efforts in water, banking, insurance - lots of places. In the case of the NBN it was extraordinarily heavy handed. After years of existing telcos refusing to upgrade the copper network without being given a monopoly the government owned NBN was created to overbuilt it with fibre, rendering the old copper network worthless.

I doubt the USA's worship of "free markets" would permit such behaviour, which I suspect is the real reason you are stuck with shitty customer service. There is no point providing good customer service if there is no competition, and if there competition the usual approach in the USA seems to be Peter Thiel's: eliminate it.


Sounds like AirBnB support, hired to be as big as delaying fuckwits as possible so the company has to pay out as little compensation as possible.

We had a very unpleasant experience with AirBnB support when we stayed in a house that it turned out was infested by bats, which we discovered when we awoke to bats in the bedroom.

For anyone unaware, bat bites are so small they are not detectable, and sleeping in the same room as one is sufficient to be considered a rabies exposure.

When we reported this to the local health department while dropping off a captured bat for rabies testing, they said that previous guests had also made similar complaints about the same house.

So despite numerous guests complaining about rabies exposures, AirBnB went back and forth for nearly 6 months afterwards before finally granting a refund.


I’ve had overwhelmingly good experiences with AirBnB, but I did have one place that I checked into in Vegas in July with the water shutoff. Support initially suggested that I stay there anyway, since it was only one night. I laughed and politely declined that “resolution” to my case and they eventually relented to refund my money.

Works great, I've been using it in production for a few years. DRF was one of my least favorite bits of the Django world and Ninja has been an excellent alternative.

I still love Django for greenfield projects because it eliminates many decision points that take time and consideration but don't really add value to a pre-launch product.


Well yeah, scrolling through and liking a picture of your friend's vacation and commenting "Adorable!" on a video of your cousin's toddler only gives you, say, 10 minutes to see ads, whereas getting fed an endless stream of progressively more intense and precisely-tuned content to tickle at your inner psyche (be it most susceptible to anger, lust, envy, greed etc) means you might spend hours on there scrolling past ads.

I think people in general are not all that great at doing this.

Anecdotal, but I grew up in a small town in rural New England, a few hours from NYC and popular with weekenders and second-home owners from there. I don’t think that people from NYC are inherently rude, but there’s a turbulence to life in NYC to where jockeying for position is somewhat of a necessity. It was, however, transparently obvious in my hometown that people from the city were unable to turn it off when they arrived. Ostensibly they had some interest in the slow-paced, pastoral village life, but they were readily identifiable as the only people being outwardly pushy and aggressive in daily interactions. I’ve lived in NYC for some time now, and I recognize the other side of this, and feel it stemmed less from inherent traits and more from an inability to context switch behavior.


> I live in NYC now, and fortunately we still have Micro Center which is still fun, though I do worry that it might go the way of Fry's Electronics soon enough.

There are actually five in the metro area: Brooklyn, Queens, NJ, LI, and Yonkers. I live in biking distance of the Brooklyn store and drive past (stop at) the Yonkers one pretty frequently and find they’re both usually quite busy, so hopefully they’ll stick around.

I make a point of trying to buy from them because I value having a place nearby that employs actual purchasing staff so I don’t have to sort through junk and counterfeit products, and because I like having a place where I can deal in person, have things same day, return without shipping etc.


I have only been to the one in Brooklyn, and yeah usually there's a fair number of people in there.

It's kind of a pain in the ass for me to get there from my house by train, and I don't have a car, but I always make a point to visit there when I'm in the area (usually because I need to go to Lowes and/or Harbor Freight).

I agree that it's nice to not have to worry about counterfeits, and it's nice to be able to buy a microcontroller or a Raspberry Pi or something without have to wait for shipping.


Ordering pizzas cash-on-delivery to someone’s house is already a fairly common form of online harassment (sometimes also a precursor to swatting).


And because they aren't morons, Pizza places will generally deny an order of 20 pizzas, pay on delivery, to an address they don't have an existing relationship with.

Cops haven't seemed to figure out that way of reducing abuse. Maybe if we pay them what we pay pizza delivery workers they will figure out how not to swat people.


Pizza places figured out not to do that because it's more profitable not to do that. Cops don't care because they still get to play with their toys and they generally have qualified immunity for civil violations that occur during the swatting.


You can not deliver a pizza based on a 2% chance of fraud. If there's a chance of bomb, shooting etc the same threshold doesn't apply. So the police have completely different criteria.


Well now we'll have four different ways to format strings, since removing old ones is something that doesn't actually happen:

    "foo %s" % "bar"
    "foo {}".format("bar")
    bar = "bar"; f"foo {bar}"
    bar = "bar"; t"foo {bar}" # has extra functionality!


This is where an opinionated linter comes in handy. Ensures people gradually move to the “better” version while not breaking backwards compatibility.

It does suck for beginners who end up having to know about all variations until their usage drops off.


The linter is a big deal, actually. I've worked with Python off and on during the past few decades; I just recently moved onto a project that uses Python with a bunch of linters and autoformatters enabled. I was used to writing my strings ('foo %s % bar), and the precommit linter told me to write f'foo %{bar}'. Easy enough!


printf-style formatting ("foo %s" % "bar") feels the most ready to be retired (except insofar as it probably never will, because it's a nice shortcut).

The other ones at least are based on the same format string syntax.

"foo {}".format("bar") would be an obvious "just use f-string" case, except when the formatting happens far off. But in that case you could "just" use t-strings? Except in cases where you're (for example) reading a format string from a file. Remember, t- and f- strings are syntactic elements, so dynamism prevents usage of it!

So you have the following use cases:

- printf-style formatting: some C-style string formatting is needed

- .format: You can't use an f- string because of non-locality in data to format, and you can't use a t- string due to dynamism in

- f-string: you have the template and the data in the same spot lexicographically, and you just want string concatenation (very common!)

- t-string: you have the template and the data in the same spot lexicogrpahically, but want to use special logic to actually build up your resulting value (which might not even be a string!)

The last two additions being syntax makes it hard to use them to cover all use cases of the first two.

But in a specific use case? It's very likely that there is an exact best answer amongst these 4.


.format is also nice because you can have more complex subexpressions broken over multiple lines instead of having complex expressions inside the {}.


> printf-style formatting ("foo %s" % "bar") feels the most ready to be retired (except insofar as it probably never will, because it's a nice shortcut).

It’s also the only one which is anything near safe for being user provided.


I don’t think I’ve ever used % formatting in Python - what makes it safer than `format`?


`str.format` allows the format string to navigate through indexes, entries, and attributes. If the result of the formatting is echoed back and any non-trivial object it passed in, it allows for all sorts of introspection.

printf-style... does not support any of that. It can only format the objects passed in.


Very good point. While I think we could do away with the syntactic shorthand, definitely would want to keep some function/method around with the capabilities.


And if it's being used, and isn't considered problematic, then it should remain. I've found use for all the current ones: (1) for text that naturally has curlies, (2) for templating (3) for immediate interpolation, and improved at-site readability

I see (4) being about the flexibility of (2) and readability of (3). Maybe it'll eventually grow to dominate one or both, but it's also fine if it doesn't. I don't see (1) going away at all since the curly collision still exists in (4).


There is also the template module from the python 2 days.

Don't forget string.Template:

    import string
    t = string.Template("foo $bar")
    t.substitute(bar="bar")


Five, if you count the log module. I hope t-strings will come there soon.

log.error("foo happend %s", reason)


Yeah I see a lot of stuff in America where decades of single-minded optimization towards cheap & convenient has had knock-on effects that ultimately don't serve people very well, or wind up creating second order costs—like hollowing out downtowns for cheap stuff at Walmart being a big part of making car ownership a prerequisite for daily living, or the cheap and convenient food options that have precipitated a nationwide public health crisis, or the way we've constructed our built environment in a way that has seemingly left people unhappy and isolated.


The source data, despite the filename, contains Income, Life Expectancy, and Population by Country+Year: https://echarts.apache.org/examples/data/asset/data/life-exp...


I think if I were hiring remotely right now I’d look to create exercises that could be done “open book” using AI, but that I’d validated against current models as something they don’t do very well on their own. There are still tons of areas where the training data is thinner or very outdated, and there’s plenty of signal in seeing whether someone can work through that on their own and fix the things the LLM does wrong, or if they’ve entirely outsourced their problem solving ability.


How do you verify this when AIs are not idempotent?


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: