107 stories
·
4 followers

Saturday Morning Breakfast Cereal - Formality

7 Shares


Click here to go see the bonus panel!

Hovertext:
Finally, someone brave enough to tell the truth about our hypocrisy as to the topic of formality in language.

New comic!
Today's News:
Read the whole story
simonft
232 days ago
reply
Madison, Wisconsin
Share this story
Delete

Team Chat

8 Comments and 28 Shares
2078: He announces that he's finally making the jump from screen+irssi to tmux+weechat.
Read the whole story
simonft
262 days ago
reply
Madison, Wisconsin
Share this story
Delete
7 public comments
stsquad
257 days ago
reply
Truth
Cambridge, UK
hooges
261 days ago
reply
IRC, never die!
Topeka, KS
encolpe
262 days ago
reply
Si true
Lyon, France
emdeesee
262 days ago
reply
OK, fine. When the galactic singularity becomes an option, I'll consider switching from IRC.
Lincoln, NE
beowuff
262 days ago
Don't worry. It'll still run irc as it's back end, so you can still connect.
Fidtz
262 days ago
reply
2051, solid 1960's style future prediction there!
Covarr
262 days ago
reply
What if I'm only still on IRC because the rest of my groups are?
Moses Lake, WA
alt_text_bot
262 days ago
reply
2078: He announces that he's finally making the jump from screen+irssi to tmux+weechat.

Review: A Man Called Ove

1 Share

Review: A Man Called Ove, by Fredrik Backman

Translator: Henning Koch
Publisher: Washington Square
Copyright: 2012, 2014
Printing: May 2015
ISBN: 1-4767-3802-5
Format: Trade paperback
Pages: 337

Ove is 59 years old and drives a Saab. He's grumpy, often taciturn, very particular in how things should be done, and extremely judgmental about how other people do them. He is the sort of person who regularly rants about how poorly things are done these days and how much better they used to be. Ove does not like change.

A Man Called Ove opens with him terrorizing the employees of an Apple Store, trying to buy a computer, but this incident is actually foreshadowing, and will only make sense at the very end of the book. The story actually begins in the second chapter, with Ove making his morning rounds of the neighborhood in which he lives, discovering an out-of-place bicycle and a mangy cat, and then starting to put a hook in his ceiling. But just as he's getting started, he's interrupted by new neighbors, who are incapable of backing up a trailer properly without scraping it against his house. Not that motor vehicles are allowed in the area anyway.

That inauspicious beginning changes Ove's life, mostly through the sheer persistence of other people's disasters. It's not obvious at first that it will, and at the start A Man Called Ove could be a funny collection of stories about a curmudgeon. But as Backman shows more of Ove's life and tells more of his background and situation, it becomes something so much more, something satisfying and heart-breaking and deeply human.

I've been struggling to review this book because I find it hard to capture what makes it so wonderful. Making that even harder, several key plot elements are introduced gradually in the story in ways that add a lot to the rhythm of the plot, and I don't want to spoil them. I think the closest I can get in a spoiler-free review is that A Man Called Ove is about empathy. It's about human connection, even when people seem unlikable, unreachable, or angrily off-putting. And it's a book about seeing the best inside other people, and about finding ways to be persistently oneself while still changing enough to find new connections, and about recognizing those moments when someone is showing you their best without getting caught up on the surface presentation.

The man Ove is the center of this story, the subject of tight third person perspective for nearly all of the book. He's 59 when the story opens, but by the end of the book, mostly through flashback chapters, the reader knows his childhood and early adulthood and much of the story of his marriage. At first, he seems to be an obnoxious, surly, angry curmudgeon, the sort of old man who yells at clouds. But the joy of this book is how the reader's perception changes, how one gains sympathy, and then respect, first for Ove's unshakable inner sense of morality that he got from his father and then for his rule-based approach to how the world should work. One never entirely agrees with him, but Backman demystifies and explains Ove's thought process and ties it into a different generation and a different way of interacting with work (although Ove was still uncommon even in his youth, just not as unique).

As I write this review, news and opinion in the United States are very focused on the plight of the white working class and how that does or does not explain recent election results. Backman is Swedish (I read this book in translation), so it's not coming from US culture and the cultural fault lines are not quite the same. But I think this book says something deeply valuable and fascinating about the working-class culture of Ove's youth, something that's much less about specific politics and much more about how it feels to make things with one's hands, to build or rebuild one's own house, or to work for thirty years at the same job and not be interested in a promotion to management. Backman does a truly spectacular job conveying the sense of angry frustration at the changes in work and life, the difficulty communicating one's internal feelings meaningfully, and the quiet joy of finding those places in life where one can do things properly.

Ove is, of course, not the only character in this book, and every character here is a delight in their own idiosyncratic ways. The main story arc involves the various people in his neighborhood, particularly his new next-door neighbors: a pregnant Iranian woman and her very laid-back husband who is incapable of doing things around the house but keeps trying. I think Parvaneh, the woman, is my favorite character of the story except for Ove, and it's fitting that she's the first to work out the broad outlines of what's happening in Ove's life and the tricky path to effectively helping him. In a way, she's Ove's opposite: fiery, mercurial, talkative, and meddling. But she sees things in Ove that no one else seems to notice. (And the scene between her and Ove when she's learning to drive is a thing of beauty.)

This is a book that could have been extremely sad, and yet isn't. It's a book about somber, depressing topics that somehow manages to be delightfully funny. And it's about a curmudgeon who persistently fails to have any sort of stereotyped heart of gold, but is nonetheless one of the most satisfying, fascinating, ethical, and good-willed characters I've ever read about. It manages to treat a collection of very different characters with individualized deep empathy and appreciation, while never pushing them all into the same mold. And the ending is wonderful.

I rarely read slice of life stories, but this one is worth making an exception for. It's one of the best books I've ever read. Highly, highly recommended.

Rating: 10 out of 10

Read the whole story
simonft
268 days ago
reply
Madison, Wisconsin
Share this story
Delete

Some thoughts on the US elections

1 Share

I apparently am not going to get anything done today until I write this. Some thoughts, in no particular order.

  • The most heart-breaking thing for me this morning, and last night, is the reactions from people I know who are not white, not male. Who are LGBT, or immigrants, or Muslim. They're hurt, and they're scared, and they feel like the United States just slammed the door in their faces.

    A lot of Trump supporters will be offended by this, or dismissive of it. A lot of Trump supporters don't feel like that was what the campaign was about at all. And I strongly believe that many, many people voted for Trump for reasons that have absolutely nothing to do with sexism or racism. But whether or not you believe Trump supported the alt-right, the alt-right supported Trump, and a lot of people are really scared this morning. That feeling is real.

    To all of those people, all I can say is this: the most meaningful inclusiveness is how we all treat each other on a day-to-day basis. How we, as individuals, act towards other individuals. Governments can change a lot of things that matter a great deal in terms of legal recognitions and legal protections, but they can't take away our individual determination to see each other as fellow humans and to treat every person with respect and open-hearted welcome.

    If you believe, as I do, in welcoming and supporting every single person, regardless of race, creed, gender, sexuality, or any other such distinction, now is a really good time to say so, and to act like it. To your friends, to your co-workers, to the people you meet in stores, to the people you see on the street. Whoever you voted for. People are scared. People are hurt. People need to hear that they're not alone, that the world didn't turn on them last night.

    As a well-off white man, a member of, supposedly, the winning demographic class of this election last night, I want to say to everyone in the US who is angry and scared and despairing today: I have your back. Nothing has changed for me. Nothing has changed in how I'm going to see you. To the extent that I can contribute to this, the US will continue to become more inclusive, more welcoming, and more supportive at the level of day-to-day interactions between all of us. Workplaces that have a true ethical committment to diversity will continue to support that. Multicultural, diverse cities that have welcomed everyone in all their wonderful variety will continue to do so.

    An election can cause a lot of damage. I'm scared too. But no matter what, I believe in tolerance, I believe in diversity, I believe love wins, and there are a lot of people out there like me. A lot. And we'll continue to act in accordance with those principles no matter what government is elected.

  • There is going to be a lot of ink spilled over the next few days dissecting this election, and a lot of theories put forward for why it went the way it did. A lot of that is going to come in the form of blaming people, and a lot of that analysis is going to be more of the same insider political horse race analysis. I think we should question that. Sharply.

    Going all the way back to the US primaries, and also looking at votes in other countries like Brexit in the UK, a much more foundational theme leaps out at me.

    The status quo is not working for people.

    Technocratic government by political elites is not working for people. Business as usual is not working for people. Minor tweaks to increasingly arcane systems is not working for people. People are feeling lost in bureaucracy, disaffected by elections that do not present a clear alternate vision, and depressed by a slow slide into increasingly dismal circumstances.

    Government is not doing what we want it to do for us. And people are getting left behind. The left in the United States (of which I'm part) has for many years been very concerned about the way blacks and other racial minorities are systematically pushed to the margins of our economy, and how women are pushed out of leadership roles. Those problems are real. But the loss of jobs in the industrial heartland, the inability of a white, rural, working-class man to support his family the way his father supported him, the collapse of once-vibrant communities into poverty and despair: those problems are real too.

    The status quo is not working for anyone except for a few lucky, highly-educated people on the coasts. People, honestly, like me, and like many of the other (primarily white and male) people who work in tech. We are one of the few beneficiaries of a system that is failing the vast majority of people in this country.

    I don't think right now is the best time to talk about the solutions I favor. For good or bad, the US just asked Trump to try his approach. We'll see how that goes. But I think it's very important to see how important this failure of our institutions and our economy was in the outcome of this election, and to see the echoes of that in Sanders's campaign on the Democratic side, and to think hard about what that means.

    This is something that unites us as a country. The status quo is not working for the vast majority of people in this country, whether black or white or Latinx, whether urban or rural, of any gender.

    Let me talk for a moment to the left in the US. The temptation in human psychology, when one is scared and angry, is to fall back on zero-sum thinking. To try to get back what we feel like was stolen from us by "those people." The left has been criticizing the right in the US for that type of thinking for years now. But you will see the same style of thinking on the left this morning because it's just human psychology. So here's the test. Do we really believe in inclusiveness and in finding a way to escape the zero-sum trap? If so, the way forward isn't to write off half the country as racist, or ignorant, or duped, or otherwise to react out of anger and create more divisions. It's to regroup and rebuild on top of something that unites us.

    The status quo isn't working. We all need something better than incremental tweaks of a broken system by elitist technocrats funded by inherited money and multinational corporations.

  • The result of this election was a huge surprise largely because the voices of a substantial portion of Americans were not heard by the polls. If you talk to those Americans, you will quickly find that they're unsurprised, because they don't feel heard by anything else in our society either.

    This sort of failure is possible because we're not talking to each other. Many Clinton voters do not know a single Trump voter. Many Trump voters do not know a single Clinton voter.

    There are many causes for this, but as someone who works in tech, I think we have to own a large part of this failure. We, as the people who write modern communication tools, have failed our country, and are failing the world.

    The two communication mediums on the rise, the ones that are replacing traditional newspapers and TV news as the source of information for a vast number of Americans, are Facebook and Twitter. Both of them, whatever their merits for other uses, are absolutely awful for our political discussions, for our understanding of each other, and for our democracy.

    Facebook is a closed bubble of people who think like you. It is optimized and designed to expose you to your people: to the people you are the most connected to, to the people you therefore probably agree with, to the people who think the same way and react to the same things. Everything from reactions by your friends down to the news you see on Facebook is filtered to align with your implicit biases as best as Facebook's algorithms can determine them. It isolates you from disagreement by design. You can, of course, reach out intentionally, and families will always cut across political divides to some extent, but Facebook will default you into a bubble in which you are not having thoughtful, intelligent discussions with people who disagree with you.

    Twitter, by contrast, is a public screaming match. To express any controversial political opinion on Twitter, left or right, is to invite an onslaught by a raging mob. A small number of people can manage to heavily filter that environment and have some semblance of a conversation. Almost no one is going to bother. It feels profoundly dangerous. It's terrifying to say something that might attract real attention. Only very unusual people are able to risk opening up their heart and mind on Twitter and being vulnerable enough to possibly change their minds.

    We have to do better than this.

    I don't know how to do better than this. I don't have any grand plan. I'm not the person to start a project. I don't have a start-up idea, or a free software concept. But if we, as programmers and designers and free software developers, cannot do better than this, who will?

    We have to have a way to enable thoughtful conversations between people with real and profound political disagreements in an environment where there is some mutual respect, some foundation of politeness, and a sufficiently supportive environment that people are willing to risk being convinced. And it has to somehow bypass the filter bubble and allow us to come into contact with people who do not think like us, do not come from the same walk of life, the same region, the same race, the same religion, the same economic circumstances.

    This is a profound challenge. But the news media is not going to suddenly revive. TV news is not going to magically become a venue for intelligent and thoughtful discussion. And people largely do not change their minds through being preached at by "thought leaders." People change their minds through contact with other people, through having their assumptions and conclusions questioned in an environment that supports enough of a foundational level of decency that they can get out of the trap of being afraid and defensive.

    We don't have that platform. We need it. Or I fear we're in for a continual whipsaw of zero-sum voting, as factions with no communication channels to each other whip up xenophobia in an attempt to outvote each other.

I don't have any profound conclusions. I'm honestly pretty upset. And pretty scared. But we have to talk to each other. And we have to listen to each other. And we have to persaude each other. And we have to be willing to be persuaded.

And please go tell someone this morning that you have their back.

Read the whole story
simonft
319 days ago
reply
Madison, Wisconsin
Share this story
Delete

Developer hiring and the market for lemons

1 Comment and 13 Shares

Joel Spolsky has a classic blog post on “Finding Great Developers” where he popularized the meme that great developers are impossible to find, a corollary of which is that if you can find someone, they’re not great. Joel writes,

The great software developers, indeed, the best people in every field, are quite simply never on the market.

The average great software developer will apply for, total, maybe, four jobs in their entire career.

If you’re lucky, if you’re really lucky, they show up on the open job market once, when, say, their spouse decides to accept a medical internship in Anchorage and they actually send their resume out to what they think are the few places they’d like to work at in Anchorage.

But for the most part, great developers (and this is almost a tautology) are, uh, great, (ok, it is a tautology), and, usually, prospective employers recognize their greatness quickly, which means, basically, they get to work wherever they want, so they honestly don’t send out a lot of resumes or apply for a lot of jobs.

Does this sound like the kind of person you want to hire? It should.The corollary of that rule–the rule that the great people are never on the market–is that the bad people–the seriously unqualified–are on the market quite a lot. They get fired all the time, because they can’t do their job. Their companies fail–sometimes because any company that would hire them would probably also hire a lot of unqualified programmers, so it all adds up to failure–but sometimes because they actually are so unqualified that they ruined the company. Yep, it happens.

These morbidly unqualified people rarely get jobs, thankfully, but they do keep applying, and when they apply, they go to Monster.com and check off 300 or 1000 jobs at once trying to win the lottery.

Astute readers, I expect, will point out that I’m leaving out the largest group yet, the solid, competent people. They’re on the market more than the great people, but less than the incompetent, and all in all they will show up in small numbers in your 1000 resume pile, but for the most part, almost every hiring manager in Palo Alto right now with 1000 resumes on their desk has the same exact set of 970 resumes from the same minority of 970 incompetent people that are applying for every job in Palo Alto, and probably will be for life, and only 30 resumes even worth considering, of which maybe, rarely, one is a great programmer. OK, maybe not even one.

Joel’s claim is basically that “great” developers won’t have that many jobs compared to “bad” developers because companies will try to keep “great” developers. Joel also posits that companies can recognize prospective “great” developers easily. But these two statements are hard to reconcile. If it’s so easy to identify prospective “great” developers, why not try to recruit them? You could just as easily make the case that “great” developers are overrepresented in the market because they have better opportunities and it’s the “bad” developers who will cling to their jobs. This kind of adverse selection is common in companies that are declining; I saw that in my intern cohort at IBM1, among other places.

Should “good” developers be overrepresented in the market or underrepresented? If we listen to the anecdotal griping about hiring, we might ask if the market for developers is a market for lemons. This idea goes back to Akerlof’s Nobel prize winning 1970 paper, “The Market for ‘Lemons’: Quality Uncertainty and the Market Mechanism”. Akerlof takes used car sales as an example, splitting the market into good used cars and bad used cars (bad cars are called “lemons”). If there’s no way to distinguish between good cars and lemons, good cars and lemons will sell for the same price. Since buyers can’t distinguish between good cars and bad cars, the price they’re willing to pay is based on the quality of the average in the market. Since owners know if their car is a lemon or not, owners of non-lemons won’t sell because the average price is driven down by the existence of lemons. This results in a feedback loop which causes lemons to be the only thing available.

This model is certainly different from Joel’s model. Joel’s model assumes that “great” developers are sticky – that they stay at each job for a long time. This comes from two assumptions; first, that it’s easy for prospective employers to identify who’s “great”, and second, that once someone is identified as “great”, their current employer will do anything to keep them (as in the market for lemons). But the first assumption alone is enough to prevent the developer job market from being a market for lemons. If you can tell that a potential employee is great, you can simply go and offer them twice as much as they’re currently making (something that I’ve seen actually happen). You need an information asymmetry to create a market for lemons, and Joel posits that there’s no information asymmetry.

If we put aside Joel’s argument and look at the job market, there’s incomplete information, but both current and prospective employers have incomplete information, and whose information is better varies widely. It’s actually quite common for prospective employers to have better information than current employers!

Just for example, there’s someone I’ve worked with, let’s call him Joe, who’s saved two different projects by doing the grunt work necessary to keep the project from totally imploding. The projects were both declared successes, promotions went out, they did a big PR blitz which involves seeding articles in all the usual suspects, like Wired, and so on and so forth. That’s worked out great for the people who are good at taking credit for things, but it hasn’t worked out so well for Joe. In fact, someone else I’ve worked with recently mentioned to me that management keeps asking him why Joe takes so long to do simple tasks. The answer is that Joe’s busy making sure the services he works on don’t have global outages when they launch, but that’s not the kind of thing you get credit for in Joe’s org. The result of that is that Joe has a network who knows that he’s great, which makes it easy for him to get a job anywhere else at market rate. But his management chain has no idea, and based on what I’ve seen of offers today, they’re paying him about half what he could make elsewhere. There’s no shortage of cases where information transfer inside a company is so poor that external management has a better view of someone’s productivity than internal management. I have one particular example in mind, but if I just think of the Joe archetype, off the top of my head, I know of four people who are currently in similar situations. It helps that I currently work at a company that’s notorious for being dysfunctional in this exact way, but this happens everywhere. When I worked at a small company, we regularly hired great engineers from big companies that were too clueless to know what kind of talent they had.

Another problem with the idea that “great” developers are sticky is that this assumes that companies are capable of creating groups that developers want to work for on demand. This is usually not the case. Just for example, I once joined a team where the TL was pretty strongly against using version control or having tests. As a result of those (and other) practices, it took five devs one year to produce 10k lines of kinda-sorta working code for a straightforward problem. Additionally, it was a pressure cooker where people were expected to put in 80+ hour weeks, where the PM would shame people into putting in longer hours. Within a year, three of the seven people who were on the team when I joined had left; two of them went to different companies. The company didn’t want to lose those two people, but it wasn’t capable of creating an environment that would keep them.

Around when I joined that team, a friend of mine joined a really great team. They do work that materially impacts the world, they have room for freedom and creativity, a large component of their jobs involves learning new and interesting things, and so on and so forth. Whenever I heard about someone who was looking for work, I’d forward them that team. That team is now full for the foreseeable future because everyone whose network included that team forwarded people into that team. But if you look at the team that lost three out of seven people in a year, that team is hiring. A lot. The result of this dynamic is that, as a dev, if you join a random team, you’re overwhelmingly likely to join a team that has a lot of churn. Additionally, if you know of a good team, it’s likely to be full.

Joel’s model implicitly assumes that, proportionally, there are many more dysfunctional developers than dysfunctional work environments.

At the last conference I attended, I asked most people I met two questions:

  1. Do you know of any companies that aren’t highly dysfunctional?
  2. Do you know of any particular teams that are great and are hiring?

Not one single person told me that their company meets the criteria in (1). A few people suggested that, maybe, Dropbox is ok, or that, maybe, Jane Street is ok, but the answers were of the form “I know a few people there and I haven’t heard any terrible horror stories yet, plus I sometimes hear good stories”, not “that company is great and you should definitely work there”. Most people said that they didn’t know of any companies that weren’t a total mess.

A few people had suggestions for (2), but the most common answer was something like “LOL no, if I knew that I’d go work there”. The second most common answer was of the form “I know some people on the Google Brain team and it sounds great”. There are a few teams that are well known for being great places to work, but the fact that they’re so few and far between that it’s basically impossible to get a job on one of those teams. A few people knew of actual teams that they’d strongly recommend who were hiring, but that was rare. Much rarer than finding a developer who I’d want to work with who would consider moving. If I flipped the question around and asked if they knew of any good developers who were looking for work, the answer was usually “yes”2.

Another problem with the idea that “great” developers are impossible to find because they join companies and then stick is that developers (and companies) aren’t immutable. Because I’ve been lucky enough to work in environments that allow people to really flourish, I’ve seen a lot of people go from unremarkable to amazing. Because most companies invest pretty much nothing in helping people, you can do really well here without investing much effort.

On the flip side, I’ve seen entire teams of devs go on the market because their environment changed. Just for example, I used to know a lot of people who worked at company X under Marc Yun. It was the kind of place that has low attrition because people really enjoy working there. And then Marc left. Over the next two years, literally everyone I knew who worked there left. This one change both created a lemon in the searching-for-a-team job market and put a bunch of good developers on the market. This kind of thing happens all the time, even more now than in the past because of today’s acquisition-heavy environment.

Is developer hiring a market for lemons? Well, it depends on what you mean by that. Both developers and hiring managers have incomplete information. It’s not obvious if having a market for lemons in one direction makes the other direction better or worse. The fact that joining a new team is uncertain makes developers less likely to leave existing teams, which makes it harder to hire developers. But the fact that developers often join teams which they dislike makes it easier to hire developers. What’s the net effect of that? I have no idea.

From where I’m standing, it seems really hard to find a good manager/team, and I don’t know of any replicable strategy for doing so; I have a lot of sympathy for people who can’t find a good fit because I get how hard that is. But I have seen replicable strategies for hiring, so I don’t have nearly as much sympathy for hiring managers who complain that hiring “great” developers is impossible.

When a hiring manager complains about hiring, in every single case I’ve seen so far, the hiring manager has one of the following problems:

  1. They pay too little. The last time I went looking for work, I found a 6x difference in compensation between companies who might hire me in the same geographic region. Basically all of the companies thought that they were competitive, even when they were at the bottom end of the range. I don’t know what it is, but companies always seem to think that they pay well, even when they’re not even close to being in the right range.

  2. They pass on good or even “great” developers3. Earlier, I claimed that I knew lots of good developers who are looking for work. You might ask, if there are so many good developers looking for work, why’s it so hard to find them? Joel claims that out of a 1000 resumes, maybe 30 people will be “solid” and 970 will be “incompetent”. It seems to me it’s more like 200 will be solid and 20 will be really good. It’s just that almost everyone uses the same filters, so everyone ends up fighting over the 30 people who they think are solid.

    Matasano famously solved their hiring problem by using a different set of filters and getting a different set of people. Despite the resounding success of their strategy, pretty much everyone insists on sticking with the standard strategy of picking people with brand name pedigrees and running basically the same interview process as everyone else, bidding up the price of folks who are trendy and ignoring everyone else.

    If I look at developers I know who are in high-demand today, a large fraction of them went through a multi-year period where they were underemployed and practically begging for interesting work. These people are very easy to hire if you can find them.

  3. They’re trying to hire for some combination of rare skills. Right now, if you’re trying to hire for someone with experience in deep learning and, well, anything else, you’re going to have a bad time.

  4. They’re much more dysfunctional than they realize. I know one hiring manager who complains about how hard it is to hire. What he doesn’t realize is that literally everyone on his team is bitterly unhappy and a significant fraction of his team gives anti-referrals to friends and tells them to stay away.

    That’s an extreme case, but it’s quite common to see a VP or founder baffled by why hiring is so hard when employees consider the place to be mediocre or even bad.

Of these problems, (1), low pay, is both the most common and the simplest to fix.

In the past few years, Oracle and Alibaba have spun up new cloud computing groups in Seattle. This is a relatively competitive area, and both companies have reputations that work against them when hiring4. If you believe the complaints about how hard it is to hire, you wouldn’t think one company, let alone two, could spin up entire cloud teams in Seattle. Both companies solved the problem by paying substantially more than their competitors were offering for people with similar experience. Alibaba became known for such generous offers that when I was negotiating my offer from Microsoft, MS told me that they’d match an offer from any company except Alibaba. I believe Oracle and Alibaba have hired hundreds of engineers over the past few years.

Most companies don’t need to hire anywhere near a hundreds of people; they can pay competitively without hiring so many developers that the entire market moves upwards, but they still refuse to do so, while complaining about how hard it is to hire.

(2), filtering out good potential employees, seems like the modern version of “no one ever got fired for hiring IBM”. If you hire someone with a trendy background who’s good at traditional coding interviews and they don’t work out, who could blame you? And no one’s going to notice all the people you missed out on. Like (1), this is something that almost everyone thinks they do well. But I don’t know any place that does a really good job at this. I’ve tried to get underrated programmers5 hired at places I’ve worked, and I’ve literally never succeeded in getting one hired. Once, someone I failed to get hired managed to get a job at Google after something like four years being underemployed (and is a star there). That guy then got me hired at Google. Not hiring that guy didn’t only cost them my brilliant friend, it eventually cost them me!

BTW, this illustrates a problem with Joel’s idea that “great” devs never apply for jobs. There’s often a long time period where a “great” dev has an extremely hard time getting hired, even through their network who knows that they’re great, because they don’t look like what people think “great” developers look like. Additionally, Google, which has heavily studied which hiring channels give good results, has found that referrals and internal recommendations don’t actually generate much signal. While people will refer “great” devs, they’ll also refer terrible ones. The referral bonus scheme that most companies set up skews incentives in a way that makes referrals worse than you might expect. Because of this and other problems, many companies don’t weight referrals particularly heavily, and “great” developers still go through the normal hiring process, just like everyone else.

(3), needing a weird combination of skills, can be solved by hiring people with half or a third of the expertise you need and training people. People don’t seem to need much convincing on this one, and I see this happen all the time.

(4), dysfunction seems hard to fix. If I knew how to do that, I’d be manager.

As a dev, it seems to me that teams I know of that are actually good environments that pay well have no problems hiring, and that teams that have trouble hiring can pretty easily solve that problem. But I’m biased. I’m not a hiring manager. There’s probably some hiring manager out there thinking: “every developer I know who complains that it’s hard to find a good team has one of these four obvious problems; if only my problems were that easy to solve!”

Thanks to Leah Hanson, David Turner, Tim Abbott, Vaibhav Sagar, Victor Felder, Ezekiel Smithburg, Juliano Bortolozzo Solanho, Stephen Tu, Pierre-Yves Baccou, Jorge Montero, Ben Kuhn, and Lindsey Kuper for comments and corrections.


  1. The folks who stayed describe an environment that’s mostly missing mid-level people they’d want to work with. There are lifers who’ve been there forever and will be there until retirement, and there are new grads who land there at random. But, compared to their competitors, there are relatively few people people with 5-15 years of experience. The person I knew who lasted the longest stayed until the 8 year mark, but he started interviewing with an eye on leaving when he found out the other person on his team who was competent was interviewing; neither one wanted to be the only person on the team doing any work, so they raced to get out the door first. [return]
  2. This section kinda makes it sound like I’m looking for work. I’m not looking for work, although I may end up forced into it if my partner takes a job outside of Seattle. [return]
  3. Moishe Lettvin has a talk I really like, where he talks about a time when he was on a hiring committee and they rejected every candidate that came up, only to find that the “candidates” were actually anonymized versions of their own interviews!

    The bit about when he first started interviewing at Microsoft should sound familiar to MS folks. As is often the case, he got thrown into the interview with no warning and no preparation. He had no idea what to do and, as a result, wrote up interview feedback that wasn’t great. “In classic Microsoft style”, his manager forwarded the interview feedback to the entire team and said “don’t do this”. “In classic Microsoft style” is a quote from Moishe, but I’ve observed the same thing. I’d like to talk about how we have a tendency to do extremely blameful postmortems and how that warps incentives, but that probably deserves its own post.

    Well, I’ll tell one story, in remembrance of someone who recently left for Google. Shortly after that guy joined, he was in the office on a weekend (a common occurrence on his team). A manager from another team pinged him on chat and asked him to sign off on some code from the other team. The new guy, wanting to be helpful, signed off on the code. On Monday, the new guy talked to his mentor and his mentor suggested that he not help out other teams like that. Later, there was an outage related to the code. In classic Microsoft style, the manager from the other team successfully pushed the blame for the outage from his team to the new guy.

    [return]
  4. For a while, Oracle claimed that the culture of the Seattle office is totally different from mainline-Oracle culture, but from what I’ve heard, they couldn’t resist Oracle-ifying the Seattle group and that part of the pitch is no longer convincing. [return]
  5. This footnote is a response to Ben Kuhn, who asked me, what types of devs are underrated and how would you find them? I think this group is diverse enough that there’s no one easy way to find them. There are people like “Joe”, who do critical work that’s simply not noticed. There are also people who are just terrible at interviewing, like Jeshua Smith. I believe he’s only once gotten a performance review that wasn’t excellent (that semester, his manager said he could only give out one top rating, and it wouldn’t be fair to give it to only one of his two top performers, so he gave them both average ratings). In every place he’s worked, he’s been well known as someone who you can go to with hard problems or questions, and much higher ranking engineers often go to him for help. I tried to get him hired at two different companies I’ve worked at and he failed both interviews. He sucks at interviews. My understanding is that his interview performance almost kept him from getting his current job, but his references were so numerous and strong that his current company decided to take a chance on him anyway. But he only had those references because his old org has been disintegrating. His new company picked up a lot of people from his old company, so there were many people at the new company that knew him. He can’t get the time of day almost anywhere else. Another person I’ve tried and failed to get hired is someone I’ll call Ashley, who got rejected in the recruiter screening phase at Google for not being technical enough, despite my internal recommendation that she was one of the strongest programmers I knew. But she came from a “nontraditional” background that didn’t fit the recruiter’s idea of what a programmer looked like, so that was that. Nontraditional is a funny term because it seems like most programmers have a “nontraditional” background, but you know what I mean.

    There’s enough variety here that there isn’t one way to find all of these people. Having a filtering process that’s more like Matasano’s and less like Google, Microsoft, Facebook, almost any YC startup you can name, etc., is probably a good start.

    [return]
Read the whole story
simonft
346 days ago
reply
Madison, Wisconsin
Share this story
Delete
1 public comment
acdha
347 days ago
reply
“The company didn’t want to lose those two people, but it wasn’t capable of creating an environment that would keep them.”
Washington, DC

Priorities in security

1 Share
I read this tweet a couple of weeks ago:

and it got me thinking. Security research is often derided as unnecessary stunt hacking, proving insecurity in things that are sufficiently niche or in ways that involve sufficient effort that the realistic probability of any individual being targeted is near zero. Fixing these issues is basically defending you against nation states (who (a) probably don't care, and (b) will probably just find some other way) and, uh, security researchers (who (a) probably don't care, and (b) see (a)).

Unfortunately, this may be insufficient. As basically anyone who's spent any time anywhere near the security industry will testify, many security researchers are not the nicest people. Some of them will end up as abusive partners, and they'll have both the ability and desire to keep track of their partners and ex-partners. As designers and implementers, we owe it to these people to make software as secure as we can rather than assuming that a certain level of adversary is unstoppable. "Can a state-level actor break this" may be something we can legitimately write off. "Can a security expert continue reading their ex-partner's email" shouldn't be.

comment count unavailable comments
Read the whole story
simonft
393 days ago
reply
Madison, Wisconsin
Share this story
Delete
Next Page of Stories