I happened to come across her on 60 Minutes a couple of weeks ago, and that interview seemed awkward and sound-bitey to me. Thinking that she just might not be great at short-form segments I dug a little deeper and found an awesome long-form interview that she did with the Council on Foreign Relations. I highly recommend this to get a feel for what she is actually like as a policy person. She really impressed me.
When Lina took over she wiped her series of interviews, thought pieces, etc from the internet almost over night (I've followed her since she was a fellow). Her long form writing and podcast interviews are incredible. She knows this problem space well in both modernity and history as well as having vision for the future. There is no one else I trust more than Lina to right this ship.
I would think unless her opponents were incompetent they would have made copies of all that when there was a chance she would be appointed. Maybe even before that, if they keep an enemies list.
Cigna denied my claim for an ER stay for a broken leg because it "wasn't medically necessary". This whole "click and close" thing is so obviously happening that I find it hard to believe that the company is even bothering to deny that they do that.
One of the worst parts about this for me was that while I was dealing with trying to get my life back together from that kind of injury, I thought I was also going to go bankrupt as well.
In my case, everything did turn out fine because apparently the hospital has an entire department dedicated to dealing with insurance claim denials. This whole system is an absolute joke.
There's so much ancillary work around medical care. Like 20% of US workers are in some supporting industry. Insurance companies pay a bunch of people to find reasons to deny claims, hospitals pay a bunch of people to fight the insurance companies. They all ultimately get paid by my medical bills and premiums.
In my mind's eye is a political-style poster depicting the patriotic duty it is to pay your medical bill. Insurance company takes a cut, people who fight insurance companies take a cut, CEOs take a cut, everyone takes a cut, my medical bill is keeping half the nation afloat it seems, until at the end there's even a few dollars left over for the doctor. All because I spent 5 minutes talking to a doctor about an ear ache.
Fixing this will require eliminating a lot of these ancillary jobs and it won't be popular among those groups.
This is one reason I hate it when productive jobs are destroyed. Economists say we'll find new things things for people to do, but those often seem extremely low value, like insurers/providers paying people to fight with each other over billing questions. And a lot of the time it seems like the replacement is either that sort of bullshit-esq job, or else some minimum-wage thing which is not acceptable to a lot of people - especially those carrying tens of thousands of debt in student loans from college.
Not just healthcare, the US outspends everyone at everything: infrastructure, education, defense, research, police, housing, prisons, etc. both in relative(by % GDP) and in absolute numbers.
It does so because it can. It's the wealthiest country on Earth so such high inefficiencies where a lot of the money is squandered to the benefit of few wealthy and unscrupulous parties, can be financially absorbed while still delivering a system that's functional enough for its citizens to not revolt over and want to hang someone. After all, it's still better than scary communism.
If Country A is spending 10% of it's GDP on 10 things, Country B cannot possibly outspend it in every category as a percentage of their respective GDPs, because "percentage of GDP" is always a 100-point scale.
If you go up one percent in one category, you have to go down one percent somewhere in the other categories.
I think as the industry moves from a post-pay model, to a pre-pay/real-time model, this antagonistic relationship between providers and payers should slowly improve. Definately not a silver bullet though.
In terms of aligning incentives, there is a lot of potential in shifting from a fee-for-service model to a capitated value-based care model. But this will force further consolidation by provider organizations. Only the largest, most sophisticated multi-specialty health systems have the scale to take on and manage those risks. Small, independent practices will essentially be forced to either sell their businesses or switch to something like concierge medicine.
Sorry, i used some jargon most people don't know. Prepay the way I meant it is not referring to prior auths, but rather pre-adjudication. Not everything can go through a pre-pay process, but I believe most claims can.
Look, the denial created at least one extra job! Cigna is out there creating jobs, and it only cost you the very real fear that you could have your life ruined from a broken leg!
“One of the worst parts about this for me was that while I was dealing with trying to get my life back together from that kind of injury, I thought I was also going to go bankrupt as well.”
I have seen the same with people I knew who had cancer. They are already super sick but are then in addition expected to navigate this insane system or accept to pay tens and hundreds thousands of dollars. All this while they can barely function at all.
There is a whole niche industry in cancer care navigation. Perhaps that shouldn't be necessary in the sense of working around defects in a broken system but those care navigators can help a lot.
A co-worker here had a neighbor who broke his leg falling out the back of a pickup truck (doing a job unsafely which seems to be SOP in rural Texas). He never worried about a bill since he didn't have money to pay anyway and I assume the hospital just ate the cost. The system is indeed a joke.
Quote from Obama on single payer. The system is set up quite specifically so certain parties can profit from it.
“Everybody who supports single-payer health care says, ‘Look at all this money we would be saving from insurance and paperwork,’ ” the former President noted. “That represents one million, two million, three million jobs.”
https://www.newyorker.com/books/under-review/the-bullshit-jo...
It's a reasonable statement, though. There's a LOT of people that think a single payer healthcare system is the right goal. And a LOT of those people also realize that getting from where we are right not to a single payer system is HARD. One reason it's hard is that there are millions of jobs that will go poof when that happens. Those people could be put to work doing something that's actually beneficial to society. But the transition from <working in bullshit job> to <working in useful job> for millions of people is not trivial.
The change isn't something where you just pass a law / flip a switch, and everything is better. It's HARD.
Maybe this is an upside to the looming AI-taking-jobs issue.
I bet a ton of these bureaucratic approve/deny/request-more-information workflows in current EMR systems will be replaced by AI in a few years, putting the people out of work.
Once AI eats their jobs, less resistance to changing the system.
Hopefully these jobs go away sooner than later, they are not exactally fufilling work & there are much better jobs out there.
I am now buidling an aprove deny API, going to call it dPANEL for deterministicPanel. Also chatGPT seems ungodly enthusiastic to help me build it...
Pricing Strategy for Health Insurance Approve || Deny API
Pricing Structure
Base Subscription Fee:
Annual Subscription: $120,000 per year, covering up to 50,000 API calls.
Volume-Based Pricing:
Beyond the initial 50,000 calls:
Tier 1: 50,001 to 100,000 calls at $1.50 per call.
Tier 2: 100,001 to 200,000 calls at $1.25 per call.
Tier 3: Over 200,001 calls at $1.00 per call.
Multi-Year Discounts:
2-Year Contract: 10% discount on the annual subscription fee.
3-Year Contract or more: 15% discount on the annual subscription fee.
Additional Services:
Custom Integration: $30,000 one-time fee.
Premium Support Package: $25,000 per year for dedicated support and quarterly performance reviews.
Early Termination Benefits:
Early termination within the first year incurs a 50% fee of the remaining contract value.
Termination in the second year or later incurs a 25% fee of the remaining contract value.
Cost-Saving Benefits
Labor Cost Reduction: Automation of approval and denial processes reduces the need for manual labor.
Increased Efficiency: Faster processing times improve operational efficiency and customer satisfaction.
Error Reduction: Minimized human errors reduce costs related to claim reprocessing and disputes.
Scalability: Efficiently manages varying loads without significant staffing changes.
Regulatory Compliance: Helps ensure decisions are consistent and compliant, reducing potential fines.
Data Insights: Offers valuable analytics that can lead to better risk management and operational adjustments.
Most of it doesn't even require AI. The majority of those jobs can be eliminated just by implementing existing interoperability standards between payer and provider organizers, and then writing some simple deterministic rules. I previously worked on projects to do just that. There is a tremendous amount of waste (and associated jobs) that can be eliminated without buying a single GPU.
Ha ha, but even single payer or socialized systems have similar mechanisms for preventing payments for treatments that don't meet medical necessity criteria. Blindly approving all claims would only serve to make the system more expensive and overloaded than it already is.
>I bet a ton of these bureaucratic approve/deny/request-more-information workflows in current EMR systems will be replaced by AI in a few years, putting the people out of work.
It is, but that doesn’t change the political calculus at all. If you’re the president who does something which cuts millions of jobs, that’s a LOT of people who are now voting for the other guy. Obama won reelection by 5 million votes, so that could be all of his margin when you think about friends and family.
I am not saying we shouldn’t try, but you really do need to think carefully about how to phase things in so people have time to adjust.
> “I don’t think in ideological terms. I never have,” Obama said, continuing on the healthcare theme. “Everybody who supports single-payer healthcare says, ‘Look at all this money we would be saving from insurance and paperwork.’ That represents 1 million, 2 million, 3 million jobs of people who are working at Blue Cross Blue Shield or Kaiser or other places. What are we doing with them? Where are we employing them?”
If Kaiser could figure out how to cut those jobs themselves, it’d be done by next week. When it’s for the good of society, we have a conscience; when it’s for the bottom line, there’s no conscience and that’s celebrated. I have no solutions, only a pervasive anxiety.
Would they? Internal corporate politics says a team's manager, who's going to best know the value the team provides, is not going to declare their team is redundant and fire them and then quit themselves because what they're doing isn't necessary.
I sustained significant injuries last year in New York which requires $50,000 PIP coverage for every driver. The driver's insurance, Geico, illegally refused to cover me because I "wasn't related to the driver". Fortunately the insurance company of the car owner was willing to comply with the law.
Basically every single US healthcare provider needs someone whose job involves insurance claim disputes, just because there's just too much money in it. The person denying claims, and the person maximizing billing on the other side are ultimately getting paid by the rest of us.
Can you imagine how much worse it would be if we had 'socialism'? /s
We've not hit this point overnight - it's been decades in the making. But I'm not sure we'll ever 'fix' this by small incremental reforms around the edges. We need some moonshot revolution, but I'm not sure we have enough collective appetite for that.
As do the European healthcare systems that have so many advocates here. In any system, there is a finite amount of money that can be paid out. Some level of review and denial of some claims or authorizations is unavoidable.
I'm not saying that the current system in the US is great, but moving to a 100% "single-payer" model will not get rid of claim review.
Pretty much. I'm insured in the public system of my relatively wealthy EU country but I still pay for a lot of stuff out of my own pocket. Not life threating stuff, that would usually be free, but still, things I need to make my conditions more bearable or for prevention, or physiotherapy for back pain, or getting appointments sooner than 3 months for a checkup.
With the ever increasing ageing population, and stagnating economy, the pressure on the healthcare system balloons while the money pot is finite, so the existing resources keep getting split more and more aggressively creating a system of winners and losers. It's inevitable when the resources are finite but the demand virtually infinite.
Nine times out of ten it’s because the provider did not document or code it correctly when they billed your insurance.
Of course the insurance companies always get the heat but it’s probably the minimum wage biller at the office that justified the bone set with an incorrect urinary tract infection diagnosis code that will obviously get denied.
In the future it’s useful to call the provider and ask for a copy of what they submitted to your insurance.
My wife runs a small medical clinic. In the past, she worked as a physical medical biller contracting for large hospital systems, which gives her an unusually good understanding of how to submit a good claim to an insurance company. Despite this, for every hour of patient care, there's an addition 90-120 minutes of staff time to deal with insurance companies, plus additional time spent by a third party (who bills on a percentage, so we don't know exactly how much time they spend). That third party consistently complements her billing staff at being unusually good.
Sometimes a claim is denied because the insurer says they need additional documentation when that documentation was already provided. Sometimes this happens more than once. Sometimes prior authorization requests get "lost".
I think the problem is that if an insurer wrongly denies claims some of the time, nothing bad happens to them but they might save some money. The only fix I see is to change the rules of the system so that it the insurer gets no financial advantage for wrongly denying claims.
If the visit is in-network or an emergency the insurance company will prevent the practice from billing you anything until the denial is fixed. You don’t have to do anything other than throw the letter away and just wait for them to fix it.
If the practice tries to bill you anyway that’s called balance billing, is illegal, and violates their contract with your insurance company and you can call your insurance’s hotline to report them.
Medical establishments are stupid everywhere. If your employer doesn’t choose an insurer or self-funded benefit administrator like Cigna, you don’t have these issues.
I have had a generous United Healthcare plan for 15 years. That time period included a high risk pregnancy, a spinal fusion, and a high risk cancer treatment program.
I’ve had zero billing issues. Zero. We did have some prescription formulary issues that were a result of some drugs being specialty drugs with a different process.
My sibling has Cigna, and literally has a problem of some sort with 80% of claims. The latest is an 8-year olds ear infection was determined by Cigna’s subrogation process to be related to a car accident.
That is because you likely went to a provider with a competent billing department. If you go to one with a bad one you will get results like OP. It does not matter if your employer was self funded or if you got the plan over the marketplace. The claim simply will not adjudicate correctly.
It is purposeful obfuscation. The number of people that can't get the paper work correct, is profit for the insurance company.
I knew someone whos wife got cancer. But good luck, she actually worked in the insurance industry and knew everything. Yet, it still turned into a Full Time job for her to get all the paper work corrected. How is the common person going to fight the system if insiders have difficulty.
I didn't realize that was mandated by law? Surely not down to individual codes?
If that is what you are talking about, it kind of makes sense. Part of how the industry obfuscates is by using a lot of different terminology for the same thing, thus nobody can do price comparison across vendors. But of course, trying to impose order onto something purposefully confusing, is going to be difficult.
Something I wrote about the ICD10 coding system many years ago. These are real billing codes:
It is possible to arraigned the codes in rather amusing orders such as:
I required a Face Transplant, from a Cadaver; “0WY20Z0 Transplantation of Face, Allogeneic, Open Approach Transplantation of Face, Allogeneic, Open Approach” after my many spacecraft crashes into the ocean; “V9541XD Spacecraft crash injuring occupant, subsequent encounter”.
Sadly the first Face Transplant failed so one was grown in a lab for the second Face Transplant; “0WY20Z1 Transplantation of Face, Syngeneic, Open Approach Transplantation of Face, Syngeneic, Open Approach”.
Alas all of this made my “F52 Sexual dysfunction not due to a substance or known physiological condition” became so bad that I tried to harm myself with a jellyfish; “T63622A Toxic effect of contact with other jellyfish, intentional self-harm, initial encounter”. -- Amusement with the Medicare ICD10 Billing Codes –
ICD-10 is only one of several code systems (terminologies) used in HIPAA mandated transactions. The actual billable procedures for outpatient care are typically coded using CPT / HCPCS. The ICD codes are usually supplementary, to indicate a patient's condition as part of establishing medical necessity. The industry will move to the new ICD-11 version in a few years.
The HIPAA final rule mandates ASC X12 as the standard format for certain interactions such as eligibility and claims. It's old and somewhat clunky, but it's not terribly hard to implement. Libraries are available for most popular languages. Even if we replaced X12 with a modern format like HL7 FHIR (which is now legally allowed for some interactions such as prior authorization) that wouldn't solve the fundamental business, legal, and clinical problems.
It’s terrible to implement at the business and industry level - the required details enclosed with the messages are wholly insufficient to properly communicate claims as well as claim payments between payers and providers. Yet nothing can be done as the law requires its usage.
Could you clarify which specific details are missing from the messages? Additional clinical documentation can be sent in 275 attachments.
The law does not specifically require X12. The law gives CMS the authority to set technical standards and they chose X12 for those transactions because there was no other practical option. But recently they have granted at least one exception to use FHIR instead.
I hate to suggest adding yet another layer to the US healthcare system, but you are right and it seems there is a huge space for some kind of private (third party) health advocate/Sherpa - not the free ones that many health plans are offering now to find in-network doctors for you - that you PAY and in return they maximize the healthcare system for you the way that a good tax accountant/lawyer will minimize your taxes
The primary situation where I find this behavior useful is on the web where I find Country drop-down lists. I am trying to find United States. It could be "United States", "USA", "U.S.A.", "United States of America", etc. All you have to do is keep pressing "U" until you find the match you want. It really helps when the desired match could be formatted several different ways.
That assumes, of course, that the website isn't using some ridiculous drop-down component that doesn't support keyboard interaction or tab handling. Sadly, that's about 50/50 these days.
I have always used select dropdowns as a regular text input. I just type the thing I want until it appears on my cursor and I press enter. Never imagined repeated presses would toggle results.
Or if I'm not sure whether the box uses England, United Kingdom, UK, Great Britain, GB, United Kingdom of Great Britain and Northern Ireland (yes I've seen this spelled out once). Sigh.
You forgot "Britain". So it's unclear whether we should look for words starting with B, E, G or U.
And there's also the case of dropdowns putting some most frequent countries at the top, so you spend ages scrolling to find the correct spelling, when listed above "Afghanistan".
Also fun when you're given flag emojis to choose from, sorted by country name, and you don't know which of UK/GB/EN they have used to sort with, and whether you should look for St. George's cross or the Union Jack.
This only works if the "State" field in question uses state abbreviations. Frequently, such fields use the full name for each state. Therefore, `SS` gets you to South Dakota every time.
I understand that it's too exceptionalist / nationalist to give the USA a special slot at the top, but ... If I'm on an English page registering for something run by an American company, there's really good odds that I'm in the USA.
Could we just do the top 3 by population, before switching to alphabetic? I'm willing to hit Down twice to get past India and China.
There is the accept-language key that the user can send in the header. The correlation of those and country of location should be quite good.
I think using geo IP is borderline spyware behaviour.
Becouse the databases are derived from some sort of spyware, right? Or are ip ranges public on country level? The city location has to be spyware derived?
Even setting aside languages spoken in multiple places, please leave the accept language header to languages, not regions. I have en us, because that's the language I want, but I've never been in the US and probably never will.
> I have en us, because that's the language I want, but I've never been in the US and probably never will.
On my personal laptop, I have en-US, because I don't know why. Maybe it is the default for Chrome?
I have en-AU set on macOS at a system level but Chrome seems to have ignored that.
I just reconfigured Chrome to add en-AU before en-US, so now my Accept-Language header is en-AU,en-US,en
My work laptop has macOS set to en-AU but Chrome set to en-GB. I'm not sure how en-GB happened, possibly something my employer did for whatever reason.
> German would be like 3 countries, unless Austria and Schweiz have their own language code.
Officially, we have de-DE for German German, de-AT for Austrian German, de-CH for Swiss German, de-LI for Liechtenstein German – Chrome knows all of those. Plain "de" means German of unknown variant/dialect, but statistically is more likely Germany than any other country.
German is also a secondary official language in Belgium (de-BE), Luxembourg (de-LU), Namibia (de-NA), and also in one region of Italy (de-IT), but software awareness of those German variants is less common (Chrome doesn't know about them, but some other software packages do, e.g. ICU and Microsoft .NET).
> I think using geo IP is borderline spyware behaviour.
With corporate VPNs it often doesn't work anyway. Even though I'm not in the US, I sometimes am forced to use the US VPN access point (e.g. because someone forgot to add the IP range for the non-US VPN access points to the firewall rule for internal service X, and if I complain it will be fixed in a day or two, but I need to use internal service X right now). While I'm doing that, websites will think I'm in the US, even though I'm on the other side of the planet.
Country from IP is usually based on public whois information about the IP range. No spyware involved.
For city-level it gets more complicated. Every provider of IP geo-localization has its own way of doing it. I guess google uses aggregated information from web searches to figure out the city/region for a given IP range... and sometimes it blatantly fails, because ISPs might allocate IPs in unexpected ways for their algorithms, or move them around to different cities/regions. I'm often getting geolocalized (by IP) to a totally different part of the country. I've seen similar behaviours in other countries and with other ISPs, so it's not something that can fail relatively easily.
Then there might be another source of information, which is more spyware-like. Android devices (via the Google play services, I think) participate in constructing a database of cell tower IDs and WiFi access point MAC addresses along with their GPS-derived estimated geographic position (see more: https://console.cloud.google.com/apis/library/geolocation.go...). Apple has a similar service, too. Theoretically the could use the submitted information to geolocalize the source IP range, but I'm unsure whether they actually do it.
> The primary situation where I find this behavior useful is on the web where I find Country drop-down lists. I am trying to find United States.
Pet peeve: when the website obviously has 99% of users who will pick "United States" for country, but they use an alphabetical list of all the countries in the world.
“We don’t even ship to Alaska because of the lithium batteries in our product, but we’ll still make you scroll past ‘Uganda’ to enter the single country we ship to.”
In what capacity are you counted in this situation? I have a hard time believing that "asking a friend" somehow makes it into government labor statistics.
I don't remember the details but it seems to me: active polling (interviews) is involved, and we never see it because they use an amazingly small sample. So that, yes, it can be counted.
I recall that it was either old versions of Solitaire or Freecell that had the same issue. I remember intentionally losing games until my points were -32767ish, and it was the first time I experienced integer wraparound as a kid. That's the sort of thing that teaches you a lot unintentionally.
Anyway, I think that it's not really surprising that they'd use a signed integer in either case. In every codebase I've ever worked on, signed ints are the default merely because they're the obvious choice for a number. I only see uints when it actually matters, or when a developer is overly pedantic.
I find this whole "the division in which you work is no longer profitable, so therefore we're laying off everyone who worked there" mentality that larger companies have is offensively short-sighted. As if the people who are working in those divisions can't adapt to something new that the company wants to grow into. The blog post even mentions that Amazon is lagging in AI, and so the smart move would be to move the people involved into the company's AI efforts.
I find it very hard to believe that profits are so slim at Amazon that they simply cannot afford to migrate existing employees to something new with growth potential. Where I work, an admittedly very small company by comparison, there is an active effort to hire people that want to stick around for the long-haul. Sure there have been several missteps in product divisions, but as long as the employees involved are at least somewhat competent then there will always be a place for them to work on something. The benefit to doing this is that it creates a culture where everybody working there legitimately wants the company to succeed, and they're not thinking about it as merely a step in their own career path.
Because they don't decide this on their own. A smart CEO gets board approval before going on a hiring spree, so afterwards, if the CFO shows a negative forecast, everyone can go, 'Oh, who could have seen this?'
CEOs get fired if the board loses trust in their abilities.
I also think some of those CEOs should be fired, but I don't even think there was over hiring... It's more that demand went up by a lot suddenly, and then down by a lot suddenly.
The weren’t able to integrate the hires in time to meet the demand spike before it went away. So it would have been optimal to not hire into it.
Was that very difficult to see at the time? Sure, but what are those astronomical comp packages buying? Making very difficult calls correctly is their jobs.
In the eyes of the CEO and the shareholders, was it the wrong call?
The CEO hires the employees assuming ZIRP continues. ZIRP ends. He fires all the extra employees, and gets to fire employees he doesn't need from other departments too along the way. Shareholders benefit either way, and the expendable ex-employees' well-being, visa status, healthcare, etc. is someone else's problem. Market is bad so the remaining employees can't really complain either.
Macroeconomic conditions changed or demand for the product they work on wasn’t what it was expected. Tech companies are encouraged by investors to take risks which is why risk taking isn’t punished.
> As if the people who are working in those divisions can't adapt to something new that the company wants to grow into.
Timing "we need this new team" with "We don't need this team" is a challenge. It is rare that both occur at the same time, or even the existing team's skill set matches with the new challenge.
Shifting SREs to do machine learning is set up for failure.
All tech companies I've been at have had this challenge of churn.
As an engineer, the deeper the experience in a field, the more business value you can create (all else being equal). So when you switch speciality, value creation is going to take a hit. Some skills carry across directly, others take months/years to acquire.
This is why companies can simultaneously be hiring teams and firing teams at the same time.
If the team is doing something critical for the business strategy, they need to be on-point straight off the bat. That normally is achieved by buying start-ups or doing deep partnerships. (MSFT + OpenAI comes to mind).
This is a bit of an aside, but I have a question that I'd like to ask the wider community here. How can you do a proper bug-bash when also dealing with Scrum metrics that result in a race for new features without any regard for quality? I've tried to do this with my teams several times, but ultimately we're always coming down to the end of the sprint with too much to do to implement features, and so anybody that "takes time off" to do bug bashing looks bad because ultimately they complete fewer story points than others that don't do it?
Is the secret that it only works if the entire company does it, like you suggest?
And yes, I completely realize that Scrum is terrible. I'm just trying to work within a system.
That's not a problem with Scrum, it's a problem with your team. If you're doing a bug bash every sprint, then your velocity is already including the time spent on bug bashes. If it's not in every sprint, you can reduce the forecast for sprints where you do them to account for it (similar to what you do when someone is off etc).
If you're competing within the team to complete as many story points as possible that's pretty weird. Is someone using story points as a metric of anything other than forecasting?
> Is someone using story points as a metric of anything other than forecasting?
Very nearly every company I've worked at that uses Scrum uses story points, velocity, etc., as a means of measuring how good you or your team are. Forecasting is a secondary purpose.
Yes. But many Sr. Leaders just see a number so it must also be a metric you can use for measurement. They do not understand it’s real use.
I picture a construction company counting the total inches / centimeters each employee measured every day. Then at the end of the year firing the bottom 20% of employees measured in total units measured in the last 12 months.
> That's not a problem with Scrum, it's a problem with your team.
I've seen that justification time and again, and it feels disingenuous every time it's said. (Feels like a corrolary to No True Scotsman.)
I've also seen scrum used regularly, and everywhere I've seen it has been broken in some fashion. Enough anecdata tells me that indeed Scrum, as stated, is inherently broken.
Ah the classic: How do I improve quality in an org 'without any regard for quality'? :)
But assuming that everyone cares about quality (I know, a big leap), what has worked for me is: tagging stories as bugs/regressions/customer-found-this and reporting on time spent. If you're spending too much time fixing bugs, then you need to do something about it. New bugs in newly written code are faster to fix, so you should be able to show that bug bashes make that number going down quarter over quarter which contributes to velocity going up.
Alternately (and not scrum specific) I've had success connecting a CSM/support liaison to every team. Doesn't give you a full bug bash, but even one outside person click testing for 20m here and there gets you much of the benefit (and their incentives align more closely with QA).
I'm kind of in the same boat re story points and Scrum metrics, but sometimes we can get management buy-in to create a ticket to do this sort of thing, if it's seen as high value for the business.
Why are you putting the blame on scrum if you don't even implement it?
I did scum in a previous company and it worked fine. Nobody looked at the story points except the devs during planning. We had a honest discussion with the product owner every time and did find the time to do tech debt.
It wasn't perfect, but it worked well.
Granted, it required a very specific management, devs with the right mindset and constraints on the kind of projects that could be done (anything customer facing with a tight deadline was off for instance. We used that for the internal infra).
So I don't see how you would build a plane at Boing with scrum for instance. Or anything that require very tight coupling af many teams (or hardware).
But for us (60 devs in a company of 200), Saas, it worked great.
From everything I've read on the matter, I believe that the UX nightmare when you include a non-apple user is an intentional design choice, rather than an engineering problem that hasn't been solved. They want the experience to suffer when somebody outside of the ecosystem is involved so as to create social pressure for the outsider to change.
The ironic part of all of this is that while the EU may be forcing Apple into supporting RCS to fix the situation, Google has resisted every effort to extend RCS to their own Voice platform.
It's really a shame that Microsoft gave up on mobile, because they really could be a real middle ground for the rest of us that just want interoperability.
> The ironic part of all of this is that while the EU may be forcing Apple into supporting RCS to fix the situation, Google has resisted every effort to extend RCS to their own Voice platform.
Google Voice has been in maintenance mode for years. It's unlikely that Google resisted adding RCS, but rather there's been no effort to actually do it.
Google voice has a paid version via Google Workspace, so I doubt the service will go away. But I wouldn't bet on the free version staying free, or not losing features forever.
> It's really a shame that Microsoft gave up on mobile,
Nokia's Lumia phones were so good at one time. The hardware was top notch (including cameras). The software was smoother than android and more intuitive than iphone. It was just a solid platform.
I would buy one in a blink if it was available today in the high end segment. I'd not even be bothered about google's anti competitive behavior wrt youtube and other apps.
Massive shame we lost Nokia and windows phone both due to the de facto duopoly that has taken hold in the market.
I used Windows phone only once, while I tried to find where I can remove SIM card’s PIN on my father’s phone, because he couldn’t find it. It took us a solid half hour, because I never imagined that it’s an application setting.
> From everything I've read on the matter, I believe that the UX nightmare when you include a non-apple user is an intentional design choice, rather than an engineering problem that hasn't been solved.
I'd be sure this was why, if Google hadn't once tried to get me to use a combo SMS/MMS + some-other-Google-messaging-service app on my phone (by replacing the normal SMS app on OS upgrade—this was on a Nexus phone) that was so broken and janky it was unusable.
Like, it is for-sure the case that a rich, huge, "smart" company can fuck this up a lot worse than Apple has. iMessage is easily good enough that I haven't had to go find some alternative SMS app, at least.
> iMessage is easily good enough that I haven't had to go find some alternative SMS app
(Almost) nobody here is challenging that it is, under the condition that you communicate exclusively with iPhone users.
MMS group chats are an absolute dumpster fire from an UX point of view. In some countries, a single MMS costs about half an USD as well (per recipient)!
No, I mean as an sms app. It’s fine for that. Group sms can get kinda rough but I’ve also never had a phone that did it better, including pre-iPhone phones, and a few Android phones. Of course it’s better if you can stay in iMessage, to avoid SMS, same as switching over to WhatsApp or whatever is way better.
> MMS group chats are an absolute dumpster fire from an UX point of view. In some countries, a single MMS costs about half an USD as well (per recipient)!
It doesn’t support delivery receipts (my old Nokia could do that in 2003!), doesn’t let me send texts to a specific number of a given contact, doesn’t let me pick what number I want to send texts from (for dual SIM), and most frustratingly I can’t send an SMS to any contact it believes to be on iMessage.
I can choose what number I want to send from when using two SIMs. It's shown as "From" below the "To" when you write a new SMS using the new message button. In an existing conversation you need to tap on the contact icon and change the "conversation line" there.
Only if the message didn’t go out to Apple’s servers. That doesn’t help me when I know the recipient won’t be able to receive it (e.g. because they are on roaming or out of mobile data).
To send to a contact's specific #, there should be a disclosure arrow to the right of their name (as you're entering it) you can tap and then pick which # you want. You can also double-tap a name in the To field.
There’s no visual indication of which number messages are going to and arriving from for an existing conversation, though. Messages to and from all numbers are just collapsed into one thread.
It gets even worse when iMessage and multiple devices come into the mix. It all kind of works for 95% of people I’m sure, but it completely falls apart in some cases with absolutely no way to be more explicit.
Totally agree. I was on Google Voice till earlier this year and that was its own kind of awful. After more than a decade on GV, I ported my number back to my carrier. I keep WhatsApp on my phone to use with a single family member on an Android phone. Another member with an Android phone uses whatever the built-in messages app is. Everyone else is on an iPhone. It's a mess.
The annoying part is, that this ends up going back to the lowest common denominator. Where users that wont install another program end up being the boat anchor dragging everyone else to the bottom.
You can long press on the message bubble after hitting the send button in Messages to switch between sending as iMessage or SMS. Discoverability of UI/UX features on both iOS and Android is inscrutably horrible.
delivery receipts = read receipts? They are a setting.
Tap on their name to change the "to" address; here it gives me a list of their Apple ID email and phone number to pick from.
You can enable fall-back for contacts which fail to send via iMessage to instead send via SMS, but I don't think you can send SMS to a phone number registered with iMessage by default without disabling iMessage globally.
Have you tried sending a picture via iMessage MMS? My wife's iPhone compresses every single picture she sends down to like 32kb and converts it to a JPEG. That's with the setting to compress images to save data turned off (I'd hate to see what it sends when its turned on). The pictures I send her arrive only compressed down to 700k-1.1mb and retain formatting and even transparency (our carrier limits MMS messages to 1.2mb).
Oh, what's even better is that it tricks the iPhone owner into thinking that a full resolution image was sent. On my wife's end she see's the full resolution original format image in the messages thread, not the blurry 32kb version everyone else gets so she had no idea that this happens.
Yes I'm well aware. What I'm talking about is iMessage doing it's own compression, which is more than what the carrier limit requires, as well as stripping file formatting from images and making them all JPEG. Me and my wife are on the same family plan so we have the same carrier. If the 32kb was a carrier limit, then the pictures I send my wife would be 32kb and just as blurry as the ones she sends me. They aren't, however. They're only compressed enough to where the fit the MMS size limit for the carrier
SMS works quite well for what it was originally designed: Short, text-only messages to a specific mobile phone number. Using it for instant messaging has always seemed like a very weird usage of the protocol to me.
The two just have very different semantics, just like how it's generally accepted that email is not a great medium for group chat either.
I don't remember Hangouts being broken, but Google didn't keep their attempt to onboard people by making it the default SMS client going very long. To me, that seems like a major error on their part, though I think I'm glad Google didn't succeed in popularizing a proprietary unencrypted messaging service.
It would have been encrypted by now (at least for hangout to hangout chats) had it hung around.
And at least it was cross platform but overall I agree that mobile messaging should be standardized and open. So while the Google messaging strategy has been an abject failure overall, they did eventually trip over themselves and stumble onto the right path.
WhatsApp is that middle ground in some parts of the world.
Upon moving to Europe we discovered that WhatsApp is the preferred way to connect with friends, employees, social groups and schools. It was actually the driving factor in me conceding and setting up a FB account.
Let's imagine it is an engineering problem; how do they solve it? Give a disclaimer that "your communications are not encrypted" and turn the bubbles maybe light green?
Release iMessage on Android. If there is a concern that it wouldn't be secure with Google controlling it, then they could put it out on F-Droid, which would simultaneously prove that they're serious and also undermine Google's own efforts at controlling the culture war.
Part of the iMessage security model is that devices are attested. Without this, the service as-is becomes widely open to spam and other forms of abuse.
Yes, there are other solutions to the spam problem. They are nowhere near as effective as what I’ve witnessed as an iMessage user so far. I regularly get spam chats on WhatsApp and Signal.
As we know, the devices are not attested, because beeper works. They're also not attested on old iPhone versions which are valid iMessage parties. Some new devices being bound to the hardware key doesn't change that.
Spam doesn't matter here - same app is used for SMS, which gets spam, so there's nothing new here.
But if Apple wanted to, they'd just sort out a deal that allows hardware signing of iMessage accounts on Android. That's not an unfixable problem.
>As we know, the devices are not attested, because beeper works.
This argument doesn't make any sense.
They managed to figure out a way to create valid attestation data via old Apple binaries. Just because a security (well. "security") measure was circumvented, doesn't mean it doesn't exist at all.
From the way I see it described here, it's more in-depth hardware attestation on newer models. So they're doing the good security thing here, but also not making millions of users' lives worse by outright blocking old phones that don't have the necessary hardware features to perform this attestation. x (5? 15?) years in the future they'll block super old stuff that doesn't meet these security requirements.
That's not how it works. Beeper uses the old binaries, because those come from older iPhones where the hardware signing was not possible yet. It's not circumventing anything as far as I understand, just connecting the way an older iPhone would connect.
I mean, we're splitting hairs on terminology here I feel like?
Apple does not want you to connect to iMessage with non-Apple hardware and Beeper uses old Apple binaries to let you do just that.
That, to me, does fall under the umbrella term of "circumventing" some measures that Apple put in place to stop you from doing that; but I guess I can see the point where you'd object to use of that word?
That's a different argument. I was responding to you saying "This argument doesn't make any sense." to the attestation not being required. Whether you call that circumvention or not, ¯ \ _ ( ツ ) _ / ¯
The point was that if you can replicate it in software, then they're not requiring hardware attestation.
Google. The company that defines what can you call "Android". They can define it to include a hardware crypto chip, signed with the right keys for Apple interop.
Was it from a number with the same area code as your Signal number? What was the spam for? Care to share the message if you still have it? I research around spam as a hobby.
No, F-Droid builds almost all apps from source. Even some open source apps don't make it to F-Droid if the F-Droid maintainer doesn't manage to build it themselves on their build server.
The reason F-Droid does this is reproducible builds. Which is a big advantage because the code you see on GitHub is the binary you get in your device. It also means it's quite obvious when code is being added because you can reproduce it.
Of course the build platform being compromised is possible but that can happen even with binary distribution.
I thought they only allow you to guild/sign your own apps if it is a reproducible build, and they verify that the version they build is identical to the one you supply.
The presupposition was "let's assume it was an engineering problem, how would they solve it". Obviously we can revert it back to a business choice rather than engineering problem rather trivially.
Wouldn’t entire thread need to be light green. Wouldn’t android users not see the Tapbacks/threads in same visual UX. It makes sense to turn it off entirely than to deliver a subpar and confusing UX
Actually both tapbacks (for a long time) and reply threads (since the latest iOS release) are both supported in MMS group conversations. The iPhone will send a tapback as an SMS message such as "Liked 'contents of message that was liked'" and other iPhones convert that back into a tapback. Google Messages also does this (and in fact did it before Apple did). iOS does not convert Google Messages style tapback messages into tapbacks though, so iPhone users only have half of the solution.
As for reply threads, when it's used it creates a lot of confusion for non iPhone users and it's not clear how Google Messages and other texting clients can fix it post-hoc. I'm not even sure how iOS reconstitutes it-- perhaps Apple sends some message metadata on the side via iMessage?
Bizarre take. I had no call in electing any politician that has any influence over Apple or Google, nor do I really have the choice to pick beyond the one of the two systems. Neither does the rest of 95% of the world.
iOS does attempt to properly inline Android tapbacks and has done so since IIRC iOS 16. It's not perfect, though: if the tapback isn't one Messages recognizes, then you get it in message form, e.g. ":smile: to 'Have a nice day!'" (only with the actual emoji). It also fails all tapbacks if it's an image, presumably since it can't know which image is reacted to.
Hopefully the experience is improved when they implement RCS, though I'm not sure if tapbacks are part of the spec.
I just tested it in a group MMS with an iPhone user running iOS 17, and alas no, this is incorrect. Neither thumbs up (like) nor heart (love) apply as tapbacks when the tapback originates from android.
Unless there's something I'm missing, only Android users get cross compatible tapbacks.
Ironically, iMessage is not that common in Europe. WhatsApp and Facebook messenger won the game here (but they are also targeted by EU).
Anyway, I hope for Apple that they have numbers proving that this bullshit strategy really makes them sell more iPhones because it makes them look really stupid. In any sane society, nobody cares about the color of a bubble, in fact, as an iPhone user, I blame more Apple for the lack of basic SMS features than of the bubble color. I’d be a stupid friend if I pressured my friends to get a blue bubble, that’s insane.
> From everything I've read on the matter, I believe that the UX nightmare when you include a non-apple user is an intentional design choice, rather than an engineering problem that hasn't been solved. They want the experience to suffer when somebody outside of the ecosystem is involved so as to create social pressure for the outsider to change.
This makes no sense. What’s the point in degrading the UX without telling the user 1) why the UX is degraded, 2) what they can do about it? If the point is to steer people towards iDevices, why is it degrading the UX specifically for these people? Honestly, this sounds like a knee jerk reaction where you are convinced that Apple is bad and are looking for confirmation instead of trying to actually think rationally.
> It's really a shame that Microsoft gave up on mobile, because they really could be a real middle ground for the rest of us that just want interoperability.
They could not. They were neither here nor there in terms of platform use and applications availability and poured tons of money into it for no result. Nothing in their behaviour at the time showed that they even understood the problem they were trying to solve.
> What’s the point in degrading the UX without telling the user 1) why the UX is degraded, 2) what they can do about it? I
Because 1) everyone in the Apple world knows, and 2) they want the answer to "What can be done about it" to be "Shame your peers into switching to an iPhone".
And it works. A little too well, especially with younger folks.
I have never once felt any shame for using Android, nor have I felt any pressure to switch to Apple. If anyone in my social circle tried that sort of nonsense, I'd never stop ridiculing them about it.
Asking candidates to come up with this kind of solution in an interview setting where they are under all kinds of pressure is honestly dehumanizing.
There's a lot of good insight in the article about the correct way to approach the problem, but asking anyone to come up with it on the spot is unrealistic. You have the benefit of having seen the problem before with time on your side to reflect on it. They haven't.
When I do interviews like this, I prefer to talk them through the problem together, like we were actual teammates working on a problem together. That more closely relates to life on the job, which to me is the point of interviewing someone.
Many people (especially from big tech backgrounds), treat interviews as "the time for the candidate to prove that they are good enough to work at my company". I, like you, prefer to use the time for collaborative problem solving to try and get as much signal as possible about whether it would be fruitful for us to work together, while also trying to figure out if we would want to work together.
The "is this person good enough for me" interview allows geniuses who are assholes through. I prefer to filter for good teammates.
If this is considered dehumanizing, I'm concerned for the future of our industry. Anyone with even a first undergraduate algorithms course should immediately spit out "sort by customer and page, then stream the output".
I wouldn't expect everyone to immediately see the optimizations -- you can sort the days individually, you can drop all but a small number of pages per customer -- immediately, but I would be disappointed if someone couldn't be hinted there by the end of a 30 minute interview.
Failing to even get the O(n log n) solution tells me that someone should never have graduated.
> If this is considered dehumanizing, I'm concerned for the future of our industry. Anyone with even a first undergraduate algorithms course should immediately spit out "sort by customer and page, then stream the output".
Well yes, but that's not what this is about. It's about social pressure, not ability.
I could program this for you right now if I wanted to; most "optimisations" seemed the "obvious ones" to me, so I guess I would have passed. I could also program it in a hurry at ludicrous speed under pressure because all of production is down or whatever.
But ... I wouldn't be able to program this in an interview setting.
Last time I was asked a bunch of even easier things (in a timed interview, no less), where I literally have some exact code on my GitHub. I just couldn't finish it. Not because I can't "get" it, but because programming while two strangers are judging your every keystroke and commenting on what you're doing is just nerve-wrecking.
> Failing to even get the O(n log n) solution tells me that someone should never have graduated.
This is something I wonder about in my comment sidethread - to me, the natural solution is the O(n) one in O(n) space.
I see that the O(n log n) solution requires O(1) space to run. But it requires O(n) space to return a result! Is that actually better than O(n) time and O(n) space?
With the sorting solution, you can stream the result directly to a file _without_ holding the entire file in memory. So it can be better if you are memory constrained (e.g. if the files are bigger than what you can hold in memory), or if you want to hold the working set inside the CPU L3 cache as 'cperciva is alluding to.
Either of those solutions is ok from a junior developer.
From a senior developer, I would expect a discussion of in-core vs. out-of-core operations, and the fact that hash tables (even if they fit into RAM) aren't really O(1) time per operation since random access to large address spaces runs into e.g. TLB misses.
Given that the depth of the page table tree is fixed at 3/4/5 depending on the architecture and kernel, I think most people would be confused if asked whether the average complexity of a hash table lookup is always really O(1).
Even senior developers that understand the TLB would likely think of it as "O(1), but with a big constant factor".
On a side note, one thing that the article doesn't mention is the possibility of using a Bloom filter. It trades an extra scan of a file for smaller hash tables/smaller set to sort with external sort.
Yup, was surprised bloom filters weren't even mentioned in passing. I suck but still it's crazy to see some people genuinely would have a problem getting the O(n) solution when they've been in the industry for more than 5-10 years
Whether you get a cache miss or hit is part of 'c', or whether those bytes are fetched over WAN. Big oh of one just means lookup time is a constant and is independent of data size. The big oh doesn't change if move from a SSD to a tape drive
Thus, those operations are really O(1)
Big oh is the infimum function such that for an arbitrarily large N, the runtime of the algorithm is then strictly larger than C times the big oh function. (Paraphrasing there a bit, and on a phone, apologies for not pasting the exact definition)
In a formal sense, anything you can compute on a computer is O(1) since there's only a finite number of states. But we tend to hand-wave that away.
Hash table lookup is absolutely bounded by a constant, but going from L1 to L2 to L3 to RAM with anywhere between 0 and 5 TLB misses is far from constant.
> In a formal sense, anything you can compute on a computer is O(1)
I don't think the definition of Big-Oh supports that conclusion.
"Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity." [1]
"For example, the time (or the number of steps) it takes to complete a problem of size n might be found to be T(n) = 4n^2 − 2n + 2.... As n grows large, the n^2 term will come to dominate,... say that the algorithm has order of n^2 time complexity" [1]
> Hash table lookup is absolutely bounded by a constant, but going from L1 to L2 to L3 to RAM with anywhere between 0 and 5 TLB misses is far from constant.
Indeed, but I can choose a value "C" that is large enough to negate any of the differences between cache miss or hit.
Let's say "N" is the number of lines in one of our text files. Once we have put that data into a hashtable, the claim is then that lookup time is O(1). You counter, and state, no, the lookup time is potentially 30ms, or even 100ms (making up the numbers). For my claim that the lookup time of O(1) to be true, I can pick any value of 'C'. So I choose 1 million. I'm basically saying, lookup times will always be under 1 hour. Given our precondition that we have built this hashtable, no matter how we get the data, yes - it will be under 1 hour. If we used carrier pigeon with USB stick, we could just choose a larger value for C and still be correct.
The idea is basically, if you have something like N^2 + N^1, eventually when N is large enough, n^2 will become so dominant that you could multiple by it by a fixed value to wash away all the other terms in the expression.
Thus, while the actual lookup time can and will vary, it is still bounded. Keep in mind as well there are different functions for best case and average case performance. These notations do take into account that the per-instance lookup time can vary.
> Hash table lookup is absolutely bounded by a constant, but going from L1 to L2 to L3 to RAM with anywhere between 0 and 5 TLB misses is far from constant.
Wait, don't the inner nodes of the page table contain the _physical_ addresses of its child nodes? Wouldn't that make it a most one TLB miss per hash table lookup (assuming key and value are adjacent in the hash table bucket)?
Bounded by a constant does not mean constant lookup time.
Let's say the runtime of some function is (x1n + x2n + x3n), where x1, x2, and x3 represent the L1,L2 l3 cache lookup times.
A function F is called big-oh of function G if there exists a value C such that CF is strictly greater for all sufficiently large values of N
For the above example, let's say I choose the value one billion for C. Is it true that 1 billion times n will be greater than the sum of (x1+x2+x3)n. The answer is yes, thus, f(n) = n is big-oh
(x1+x2+x3)n. In other words, at a certain size of n, we can pick a constant multiple that dominates the other terms. This is in part why asymptotic functions are independent of hardware. Even if L3 cache were actually virtual and fetched over a network, I could still just choose a larger constant. If you can't choose such a constant, then chances are you need a faster growing function like n-squared
It depends how you define "TLB miss". Read it as "paging table reads" if that's clearer.
If you have a 64-entry TLB and 4kB pages, then you can do random memory accesses (aka hash table accesses) up to 256 kB without any paging table reads; up to ~16 MB with one paging table read per operation; and up to ~1GB with two paging table reads per operation. (This, of course, is why large databases use superpages when possible; but while that pushes the limits back it doesn't eliminate them.)
In virtual machines there's further overhead since you have "virtual physical" addresses...
I'd expect talking about TLB misses as a junior engineer thing. That's stuff you learn in school.
Id expect senior engineers to talk about how they will monitor this system, and to bring up things like customers we know we don't trust.
A senior engineer might tell you that running into TLB issues makes a suggestion that your approach is wrong and it's about time to move the solution to your data warehouse
I have a non traditional background (non comp sci) and while I understand complexity I wouldn’t have immediately arrived at the solution like this.
I think that rather, I would have done well because I know after doing hundreds of these both as the interviewer and the interviewee that using some sort of Map along with some vague rumblings of “space/time complexity tradeoff” is very often the solution for these types of questions. So I would have immediately gone there first by instinct.
The question asked doesn’t involved any computer science algorithm knowledge at all, nowhere near leet code complexity.
Only the basics that are close to everyday programming work: write a for-loop, know what a Map/dict is, and Google for “how to read a file”. If a candidate can’t do that, they can’t really program. ChatGPT can probably code this answer.
Agree. Our interview technique is a trimmed down but somewhat realistic coding exercise. We do it as a pair programming exercise and we tell them up-front that this should be an interactive and positive experience, we're not trying to trick them or put them under pressure. It'll test the candidates ability to actually do the job they'll be doing if we hire them, which is to write code in an IDE. We do it with them, so they can ask questions on libraries they're not familiar with and so on. Obviously we're not going to solve the problems in exercise for them, but if they do get stuck, we'll help move them forward.
The coding exercise will involve writing tests, deisgn of classes, working with floating point arithmetic, working across thread barriers, some fairly standard maths, and so on.
I actually can't say we're hired a bad candidate yet and they all report that the interview is a positive experience.
In my fairly long career I've been through about 10-15 interview processes. A few of them were quite toxic and those were the "just cram leetcode for months" type. I never want to inflict that on someone else.
While I like your approach better than his by a considerable margin... I would say his approach has merits since he's a principle engineer at google(maybe hiring there) and was an engineer hiring at amazon. the problems they face would definitely have this applicability of a large volume of data needing to be worked on efficiently.
I actually think the question from the blog is a good one and I've used similar at previous roles. It may consist of one part of the interview process. I think in hindsight I was more responding to the overall ethos were some interviews are conducted in an unduly abrasive manner.
> I prefer to talk them through the problem together, like we were actual teammates working on a problem together.
If a colleague came to me to discuss a question this basic, I'd want them PIPed out. This is miles from the complexity of problems that require collaboration. It's a shell pipeline that I'd write with sort/uniq in less than five minutes. I just did it to make sure my estimate wasn't wrong:
Maintainable? No. Done iteratively in less than five minutes? Yes.
If your perspective is that it's unrealistic to ask anyone to come up with an answer to this question on the spot, you should take a long, hard look at yourself and the quality of your colleagues.
As mentioned over and over. This isn't about the ability to do it. This is about making it less of a hazing ritual that generally only seeks to make the interviewer have a sense of importance.
Sadly I know plenty of Seniors with 15 or so years of experience. That would write brute force and it still wouldn't work right.
Senior in a perfect world sure but the reality is that for decades ppl have been desperate for talent and so you don't have to do much to get by.
I knew a popular principle engineer at a fortune 50 company who was loved by execs. He would check in 5 or 10 of the same file. Opposite of the dry principle.
I don’t about that, I mean - if you’re going to be in a position where this level of craftsmanship is necessary, then why shouldn’t the interviewer require that you demonstrate your ability to do so? It’s not a trick question, it isn’t unrealistic or impractical, it just spotlights a particular programming focus, performance.
My primary phone number is a Google Voice number, and I am entirely legitimate. Just curious, how often are other people filtering with this kind of criteria?
I have been considering migrating away from GV for unrelated reasons, but if that sort of thing automatically makes me less attractive when looking for gigs then I'd like to prioritize actually doing that.
I primarily use Google Voice, especially since I’ve been out of the USA for a while. I haven’t had any major problems, but I have noticed things getting a little more difficult. I was recently denied a savings account at a bank with whom I already have a credit card because they couldn’t text my Google Voice number. They offered to try calling me at a different phone number that’s known to be associated with me, I couldn’t just give them a different number, but I hadn’t uses their proposed number in nearly 20 years.
Long story short, GV or VOIP numbers will forever be a big red flag for me moving forward.
Longer story:
A few months ago, I posted a job for a remote US-based developer. 90% of the applicants were not in the US. Some of those who were immediately rejected re-applied with new US addresses and phone numbers, but that's another story. In the end, hired someone who was a great fit, passed the background checks, etc. The only odd thing was their phone number was GV and didn't match the location of their address. My mobile number doesn't match where I currently live and lots of people use GV, so we didn't think much of it.
About 4 weeks in, they sent me a message on a Sunday saying there was a family emergency. They would not be online during normal business hours, but would check in and would still work on tasks as they could. No big deal, I asked for follow-up on two assigned tasks so they could be handed off to someone else to finish a sprint that week.
After two days, haven't heard anything, reassigned the tasks and tried to reach out to check on the person. Phone number goes to the generic GV voicemail prompt, I leave a message. I tried calling the emergency contact, same thing. I reach out through LinkedIn & personal email, no RESPONSE. At this point, we disabled accounts and access to systems. No real reason or policy why, just seemed like a good idea.
Two days later, now Thursday, I start getting calls from a random phone number (also GV from another area of the US), but leaving no messages. Then I get texts, "This is <missing_dev> I've been trying to reach you, please call me back." I call back within 3 minutes, straight to GV generic voicemail.
A few hours later, the number calls again, I answer "Hey, this is <missing_dev>, I was trying to get some work done but it seems my accounts are disabled". After explaining the situation, they simply offered "Well, everything is good now and I'm ready to work." I tried asking some basic things like, are they okay, is their family okay, can we help with something, did you get arrested? Anything to give them a opportunity to offer something. The only response they gave was, "I'm back now and ready to work, if you'll enable my accounts." Over and over.
I explained it wasn't that simple, walked through the communication inconsistencies and asked how that would affect their reliability in the future. You will only need one guess for the response, "I'm back now and ready to work, if you'll enable my accounts."
I thanked them for reaching out and said I'd talk to HR and CEO so we could discuss (both had also reached out through personal LinkedIn, email and phone numbers to check on the person, no responses).
They were still in the 90 day probationary period, so we let them go. They were a very good developer, smart, good coding practices, but inconsistency is a killer. And yes, a GV or VOIP number will be a hurdle any future applicant needs to overcome with flying colors.
One quick trick that has worked for me to weed these people out is saying “You live in <city>? That’s great! We have another employee who lives 30 minutes away, would you be able to do an in person interview later in the process?”
They will make excuses (and blame Covid) for why they can’t meet in person. At that point you can politely reject the candidate.
If you already hired one that you’re suspicious of, ask them if they’re willing to fly to you to meet in person. If they’re legitimate, then they’ll fly out and you’ll have a great opportunity to meet the new employee in person (a good practice in general IMO), and if they’re not in the US they’ll have a bunch of excuses why they can’t.
They will never admit to anything and when confronted with the lie they’ll continue to deny it with silly excuses or they’ll totally ghost you.
Longevity is not part of this scam. The goal is to get a couple paychecks and bounce. (1 month of a US salary is a ton of money to them)
We had plans to get together as a company (about 15 of us from all over the US) about 3 months later. They seemed excited about this. But, we never made it that far.
> The only odd thing was their phone number was GV and didn't match the location of their address.
How is that even remotely odd? Ever since cell phones became popular the phone area code no longer means anything. People tend to have the area code of wherever they were when they got that phone, which is often many location moves in the past.
https://m.youtube.com/watch?v=L_QaZk5iJOA