Can anyone explain why companies do this, but still hire from the expensive areas? If they pay less for the same level of skill in Texas, why don't they stop hiring in SF full stop and only hire in Texas? Is it just a bluff and they'll cave if you challenge them?
Right - but you have the same value either way, you just have to apply leverage, right? The gig's up if you don't have to say yes to the lowball offer. What force prevents you just pitting two+ SF companies against each other in a bidding war?
One argument is that, especially for large companies like Facebook, if you exclude the tech hubs, it's hard to hire enough people with the skills they need.
I think it's also the case that there are probably quite a few employers who don't necessarily try very hard to outbid the big companies in places like SV.
Lists like this strike me as somewhat meaningless. Those companies probably also use bash scripts, hardly represents a significant chunk of the product. How much of their codebase is in Clojure?
Is there an example of something like this, but trained on the actual abstract syntax tree manipulations that are going on behind the scenes?
That seems like it would be considerably more effective, because you're removing the noise/overhead of parsing the text and giving a much clearer model of what's being manipulated to the AI.
An AI like this can hold a hell of a lot more information in its head at one point than a human. Each decision it makes is based on way more context, it can manipulate the problem using much more information, much faster. The problem is that it can't think in abstractions.
If AI gets to the point where it has a reasonable understanding of the shape of the data & the basic spatial manipulations being applied (not far off IMO), I'd expect it to be waaaaaay better at discovering certain types of new algorithms than humans. It can handle thinking about algorithms that have millions of independently moving parts in a way a human can't.
Humans have the edge deriving algorithms that require a sequence of high-level steps on an abstraction. "Do this, then we get a thing, then we do some stuff to the thing, stretch it, squash it, massage it." AI sucks at that, it doesn't think in the same kind of flexible abstractions.
But imagine if you build an understanding of how the code will be compiled & how that will interact with the cache into the AI. That's very difficult for humans because you can't think about all those mechanics at once, we have to focus on one at a time. An AI that really gets it? I could see it writing a better sorting algorithm for a specific, complex datatype than a human could, or at the very least having the competetive edge because it can do it basically instantly.
It may be automated based on frequency of reports, but either way this is unlikely to be company policy. The people who make these decisions are relatively low-level employees following a company guidebook. The guidebook says it has to go? It has to go. The employee doesn't want to get fired.
>...but either way this is unlikely to be company policy
Perhaps you haven't seen the article because it's behind an Apple News link. There's a screenshot of a message stating company policy as follows:
"Pursuant to Section 8.3 of the Developer Agreement and the Enforcement policy, apps referencing Covid-19, or related terms, in any form will only be approved for distribution on Google Play if they are published, commissioned or authorized by official government entities or public health organizations"
That's not what I meant. I mean, it's unlikely that someone high up in the company decided to snipe this app. It's probably a low-level employee following the formal rulebook a little too much to the letter.
> >...but either way this is unlikely to be company policy
> Perhaps you haven't seen the article because it's behind an Apple News link. There's a screenshot of a message stating company policy as follows:
> "Pursuant to Section 8.3 of the Developer Agreement and the Enforcement policy, apps referencing Covid-19, or related terms, in any form will only be approved for distribution on Google Play if they are published, commissioned or authorized by official government entities or public health organizations"
How does their own browser not run afoul of this policy?
Because policies are written and interpreted by humans that have the common sense to understand that there is no connection between the browser app and the content it displays.
This entire thread is a discussion about Google's automatic tool flagging a podcast browser erroneously. If Google's response was to uphold the suspension then there would be an actual story, but they won't, and so it isn't.
Podcast Addict builds an index of podcasts that it makes available to users whereas Chrome does not influence in any way what content users may want to view.
But your question is of course very apt when it comes to the Google Search app or Google's own podcast app.
There used to be this idea (a good idea in my view) that building a search index is a neutral activity that does not come with any editorial responsibility for the content.
Google used to fight for that idea but unfortunately lawmakers (and I think the majority of the population) have very firmly taken the opposite view.
I think that's what's ultimately at the core of this defensive "when in doubt, ban it!" attitude that was built into automatic content filtering tools and hammered into the heads of reviewers.
There are still gaps - the most glaring one being Google Search - but I think Google has largely given up that struggle in favour of avoiding billions in fines
We’re stuck between a rock and a hard place. With new diseases or any new phenomena knowledge changes frequently. Oftentimes official organs are lagging and independent voices are at the forefront and have the freshest information.
Unfortunately both of the above can have counter agenda (could have good intentions such as calming hoarding), even worse is that you can have kooks, active disinformation, lulz, etc. There is no good answer to this.
I think our traditional answer was good enough. Trust the people to weigh a wide range of information and opinions. Delegate more detailed analysis and decision making to political representatives and independent institutions.
It's not like there wasn't any anti-scientific rubbish, hate speech and manipulation in book shops, newspapers and on TV. Entire countries used to be run by media barons (literally or effectively).
Regarding Covid specifically, I find it pretty ironic that free speech should be restricted to government officials by an oligopoly of US corporations while the head of the US government routinely spreads anti-scientific disinformation on that very subject (and on others).
I agree. Not only the US but even the WHO is very susceptible to manipulation (it’s not human transmissible, then yes it is, masks don’t work, then yes they do). We also see politics dictate policy (viz Taiwan). Then Gates alarms almost everyone with his “disease free certificates”.
> What Google is asking of Podcast Addict would be comparable to Google asking Google to remove all references to the websites and social media posts that reference the coronavirus unless the reference comes from an official government entity or public health organization.
This is naive. If it's a bad library full of bugs, it's going to be garbage code. I'm not going to spend inordinate amounts of time & effort wrestling with shitty code to earn the right to say the library is bad. IMO that's not a good standard.
I wasn't saying you couldn't call it bad. But I will say demanding it not be bad would be stepping over a line.
If money ever changes hands with the author of that code, that's a different story. But if it's something free you just found, and you have never paid the author anything, then at most you can warn others to not waste their time. You are in no moral or legal position to demand anything.
How do you differentiate between "reasonable developer, can deal with complexity" and "extremely good developer, will dramatically improve the codebase and produce less technical debt"?
Does the distinction matter at your company, or is the primary metric "good enough"? Is this industry standard, or does it vary by company?
How do you differentiate between "reasonable developer, can deal with complexity" and "extremely good developer, will dramatically improve the codebase and produce less technical debt"?
I definitely don’t rely on their GitHub info for that. In the interview process in general, I don’t expect this with junior developers, only senior+ developers, and then I look for how deliberate the developer seems to be with design trade-offs in their coding exercises and their answers to “tell be about a time when...” questions.
Does the distinction matter at your company, or is the primary metric "good enough"?
The distinction matters, but in my experience interviews produce very noisy signals for this trait. (1) How often do you design API’s in half an hour? In practice the decisions that affect long term maintainability happen over days, not hours. (2) Evaluating this requires a lot of subjective judgement from interviewers, and experience tells me that no interviewer is as objective or insightful as they think, myself included. So instead of trying to answer that question, I just look for a deliberate process of enumerating and deciding trade-offs, with answers that are in the ballpark of sane.
I wouldn’t call good enough a metric, more like a philosophy for hiring. I look at many unrelated traits in an interview, but I explicitly reject the idea that the interview is accurate enough to conclude something like “this developer is a net reducer of technical debt”.
Is this industry standard, or does it vary by company?
The interview rubrics I’ve seen all use holistic definitions of “good enough to hire”, if that’s what you’re asking, but based on what I’ve seen as an interviewee I highly doubt there’s an industry standard the way you’re asking.
What I'm really trying to fish out is: if a developer is significantly better than the competition relative to his years of experience, how is he supposed to communicate that? How does he actually get paid commensurate to that extra effort? In your experience is it even possible?
As far as I can tell the only way to really do that reliably is either work on a respected product & basically make an impression outside your company (crapshoot) or show what you can do via open source. I can't see how I could communicate it otherwise.
I'd start with the question of "why do you consider yourself significantly better?" Are you better at designing clean API's than your peers with the same number of years of experience? Are you a better writer/communicator? Do you have an unusual depth of experience with the end to end sales/design/implementation/support cycle? Or are you a really good coder who makes everyone around you better?
The answer to your question depends on what your answer is. There's no single objective measure of "better". If you're in a big company, the thing that sets a senior engineer apart from a strong almost-senior engineer is mostly about soft skills, so if you're a strong almost-senior engineer trying to convince someone to hire you as a senior engineer and you're focusing on communicating your coding feats, that might be sending the exact opposite of the message you intend. But if you pivot the same concept to "improving the people around you" it probably works in your favor.
There's no universal way to do it, because it depends heavily on what the hiring company/team values, so my personal advice is to (1) focus on your particular strengths, (2) assemble a portfolio to back it up, and (3) package it based on what the team/company values. It doesn't have to be open source. As a hiring manager (to be clear, I was one but am not anymore) I would have happily accepted any incidental materials that interviewees wanted me to see.
What do you consider to be your particular strengths?
I'll give an example in my own case. I was a product person who became an engineer. I have a "senior" title. In terms of the number of years I've been out of college and working, the "senior" title is pretty typical. However, I had actually only written code professionally for 1 year before I got the role. (Though I've actually been coding since I was ~13.) Whether I deserved it isn't for me to judge, but I think my story counts as an example of what you're asking about.
The way I maneuvered it was:
1. I was historically an algorithms nut, which means I do particularly well in a specific type of interview, so I targeted companies that interview this way.
2. As a former product person, by necessity I have over-developed product instincts and soft skills relative to engineers with similar amounts of experience, so I made sure to package that well and target roles that asked for those things. My branding was basically: "You want me because I'm really good at aligning people to get things done without authority, especially when there are lots of stakeholders." Engineering teams almost always prefer having more of that in their engineers to reduce reliance on PM's.
3. I networked like hell. Seriously. Nothing is better at telling hiring managers that you are a dark horse than a mutual professional acquaintance telling the hiring manager that you are a dark horse.
4. I sent out a LOT of applications. I think I sent out somewhere around 50 applications for roles at various levels from entry level (<= 1-5 years) to senior level (5+ years). The vast majority of entry level roles I never heard back from simply because of the number of years of experience. It is what it is. Their loss... or that's what I tell myself anyway.
I don't think any one of those four things was singularly responsible for the eventual outcome, but I can say for sure that they all made a difference. Also, I can say that #3 was the single biggest factor in my yield rates. If you look at the split, I got a first interview in something like 80% of my referred applications and 10% when it wasn't a referral. That's both evidence that networking really works, and evidence that the hiring pipeline sucks. The best way to consistently punch in above your general metrics is to not go in through the front door.