[1]: https://en.wikipedia.org/wiki/Seeing_Like_a_State
[2]: available free to read online: https://files.libcom.org/files/Seeing%20Like%20a%20State%20-...
The book traced a number of case studies supporting the notion that large enough systems of control require some degree of standardization to implement—for example, to tax stuff, you have to know how much stuff there is. Village life might tend to have advantages for human well-being, but that doesn’t mean you’ll get that result by sending out troops to force everybody out of their traditional structure and into village footprints.
If you’re tallying up a nation’s agricultural capacity, “Farmer John’s got a nice-sized patch that’s extra fertile but he’s lazy” doesn’t add as well as “corn, 5 acres, Grade B”.
In that way of thinking, complexity, nuance, or localized idiosyncrasies—where a lot of useful information lives, but outside of the standardized spec—essentially becomes invisible to the system. Even though it’s essential to the social phenomenon the system is setting out to regulate.
It’s illegible to the centralized governance mechanism, so it may as well not exist, as far as that mechanism is concerned. No National ID number? You’re not a person, go away.
Sean Goedecke recently wrote a blog [1] applying that idea to software companies, I imagine that’s where the resurgence is coming from in these parts :)
[0] https://files.libcom.org/files/Seeing%20Like%20a%20State%20-...
[1] https://www.seangoedecke.com/seeing-like-a-software-company/
Extending it to observations of natural or emergent phenomena seems like a reach for fanciness when "inscrutable," "unclear," "murky," or "poorly understood" would be more accurate to me.
Edit: Upon further review, I am coming around to it a bit, in the sense of performance reviews looking for the wrong thing, but I still think the larger point is about something more complex that poor evaluation metrics are just a symptom of rather than the cause.
I see where they are coming from but still have a hard time making the connection between the idea and the word.
A: Started coding when he was 6 years old, was making 3D games from scratch at 12, and sold his first software at 15. Never went to college, as he was right in time for the dotcom boom. The man just loves coding, and always works on his side projects in his spare time, mostly software he finds interesting. At work, he's the closest I've seen to a mythical 10x
B: Hadn't written a line code before he switched majors in college. Went from having zero experience with programming, to being a straight A computer science student, finishing one year faster. Best student prize at university for masters, and then a Ph.D in record time. Writes flawless code, is a top tier architect, and just a machine. Doesn't write a line of code when he comes home (at least according to him), basically severs himself from work as soon as he leaves work.
I’ve met these people before, they’re almost always undergrads from elite schools that could pick and succeed at anything they choose
The prestigious schools filter up-front based on merit, and filter a 2nd time based on the ability to keep up and remain diligent to pass the courses. Less famous schools only have the 2nd filter, and have more people drop in the process that could not keep up.
The quality of education can be very similar, or even favor small schools in some subjects based on luck and school staff interests. The vast majority of learning at this level is made by the student anyway; there is only so much a good teacher or expensive teaching resources can do to help.
I've talked with interviewers that seemed completely uninterested in what courses or major was taken, just the fact that someone got through a difficult major as a stamp of quality.
I'm truly curios what percentage of programmers do write code outside of work. I'd bet the actually percentage is pretty low, especially those who've been at it for five years or more. I don't know that I ever did, except when I first started.
Also, the older I’m getting the more I’m prioritizing activities that benefit my body. Working out more, home cooked meals (so learning to actually cook well instead of throwing things together and hoping for the best).
I miss the side projects sometimes. At least I still do AoC yearly.
I work hard to cultivate hobbies outside of programming, but inevitably, I find a way to improve that other hobby with software. I'm just wired like that I think. I love systems. Code is my love language. :)
I'm currently trying to digitize a hopelessly analog procedure to calibrate aircraft engine fuel injection systems. Rpi, transducers, and python to the rescue! :D
There's all kinds of people in the world and I like to work with vocateurs. That's an opt-in choice and others can go work with others. No harm done.
Very few candidates say they've done any programming outside of their jobs. At most, they share something like running Home Assistant on a Raspberry Pi and using Python to automate their house or something. Another common one is to hear about how they used an Arduino or Raspberry Pi to accomplish some small task.
Very few people say they have side projects. Of those who do, when I ask for details most admit it never went far beyond the idea phase.
So from what I can deduce, it's very uncommon for programmers to have true side projects that go beyond a couple git commits worth of code to solve some task, or an idea they had that they never followed up on.
It shows an unprofessional and inappropriate interest in things unrelated to work, and, from my experience, is a good indicator that the person will either micromanage, has poor work life balance, or is not socially fit to be a manager.
I know that sounds super harsh, but you should seriously reconsider. You're going to scare people away. There's a power dynamic that you don't seem to be aware of, during the interview process. It's not your concern what they do with their free time, unless they present it to you, unprovoked.
This is from someone who has interviewed hundreds of people.
Besides all of that, it opens you up to litigation for discrimination, depending on the answer they give. I suggest talking with your HR department. Where I am now, questions about personal life are strictly prohibited, for that reason.
edit: please note the "unprovoked". If people want to share the projects they do in their personal time, they will include it in their resume as a line item. I've seen it in probably 30% of the candidates. It means "ask me about these things".
edit: better yet, just rephrase, so it's not a potentially uncomfortable probe into personal time: https://news.ycombinator.com/item?id=45543812
No, it's a chance for candidates to bring up relevant experience that might help their candidacy.
The question isn't about things unrelated to work. The question is asking if they have any additional experience outside of work that might help us better understand their skills for their job application. Many people have relevant experience for the job that they gained outside of work. Asking about that is not only okay, it's a good thing.
> and, from my experience, is a good indicator that the person will either micromanage, has poor work life balance, or is not socially fit to be a manager.
Asking candidates if they have any extra experience to share is not an indicator of micromanaging.
Jumping to completely unrelated conclusions and drawing extreme assumptions about people is not a good way to interpret a question like that.
I explained that the question cannot have any negative value to the candidate. It's a chance to bring up extra things if they have them and we didn't cover them. Literally doing the candidate a favor, not being rude or micromanaging.
> It also opens you up to litigation for discrimination, depending on the answer they give. I suggest talking with your HR department.
Asking candidates to share their work-relevant experience does not invite discrimination lawsuits. How are you coming up with these interpretations? Legal was involved in reviewing our hiring processes, so no need for condescending lectures about getting HR involved.
I suggest you talk to your HR department. This isn't my interpretation, it's that of our cooperate lawyers.
If they say "I just had a kid, I spend time with them", is a good example. This should be obvious to you, which is further evidence you should not be asking these questions.
edit: can't reply directly. No, that's not how it works. You being made aware of it, and you using that information is enough. Good luck!
Your understanding of these laws is flawed. A candidate volunteering information doesn't make the company liable for discrimination against them.
It's a common misconception that if topics like having kids or being married comes up in an interview then the company is liable to be sued for discrimination. It should be obvious that a candidate can't entrap a company by injecting this information into the interview when it wasn't asked. Even if the interviewers do ask, a discrimination lawsuit has a much higher bar than the topic simply coming up in the interview. It has to be demonstrated that the information was used to discriminate against the applicant, not just that it was discussed.
Your interpretation of my question is also flawed. I'm not asking "Tell me what you do in your free time." I'm asking them if they have anything outside of work that they'd like to share that would help their case.
> I suggest you talk to your HR department.
Please read my entire comment. The legal team reviewed our interview process and had no problems with it.
I think maybe your HR department has tried extra hard to scare you away from subjects they want to avoid, which has led to a misunderstanding of how the law actually works. It's common for HR professionals to tell interviewers that there are "illegal questions" or that if a topic comes up at all then you're going to get sued for discrimination. In reality, the legal bar for these cases is much higher. HR professionals just want to scare interviewers away entirely and drive the point home.
Asking candidates if they have an additional experience to share isn't an invitation for discrimination lawsuits. I suggest you open your mind a little bit and consider that some candidates may have more to offer than appears on the bullet points under each job on their resume.
It's the fact that you decided not to hire them, because you found out that protected information. It was unrelated? Prove it in court. That's the reality of discrimination lawsuits.
I think we'll have to agree to disagree.
If you're confident in this, maybe in your next couple of interviews try "That last question is something new that I'm trying. Do you think it's good, or do you think it's too personal?". You'll have to read their body language, since the power dynamics will prevent a direct answer, for many. If you're not comfortable asking that, then that's evidence enough.
Again, you don't understand how this works.
If a candidate runs into your interview room and declares that they are a member of 5 protected classes, that doesn't automatically open you up to discrimination lawsuits.
How is this any different than asking someone about a past job and then they answer with "I didn't finish that project because I had kids and left for parental leave". It should be obvious that a candidate can reveal information about having kids for virtually any question.
> It was unrelated? Prove it in court.
Once again, that's not how it works. The onus is on the applicant to prove that the information was used for discrimination.
A candidate can't claim that a company discriminated against them for information they volunteered during an interview and then the company loses. They have to provide reasonable evidence to proceed to discovery, which would have to reveal something substantial that showed the information was used to discriminate, such as e-mails or chat logs.
> I don't believe you asked your legal department.
Legal was involved. Why do you only believe that your HR department wants to be involved in hiring processes, but mine obviously would not?
If you're not interested in discussing in good faith or you only want to ignore what I wrote and inject alternate facts, I can't help you.
To stop focusing on this last point...
> I'm not asking "Tell me what you do in your free time." I'm asking them if they have anything outside of work that they'd like to share that would help their case.
You are asking them that, in a practically indistinguishable way. Again, because of the power dynamic you don't seem to be aware of, they must give you an answer that explains why, if not. The legally appropriate response would be "I prefer not to answer what I do in my free time outside of work", which people would be uncomfortable, so they're going to be compelled to reveal to you why they don't have anything interesting, if they don't.
(Personally I've been on both sides of this - early in my career I had a ton of hobby projects, wrote compilers for fun, and would often ask the interviewers what was the most interesting project they've worked on, either for work or for fun. Now I have a family, work stays at work, home stays at home, and I don't really care what my reports do on their own time. But different segments of the tech industry will fall on different ends of this spectrum. Know what you want and don't waste time interviewing at places where the culture is dramatically different.)
And that's unprovoked. That doesn't conflict with what I said (I intentionally included it). Whenever someone is interesting in sharing, they present the work themselves. They provide their GitHub link, or include it on their resume, mention it, etc.
How is asking a direct question to the candidate "unprovoked"? This doesn't make sense.
> Whenever someone is interesting in sharing, they present the work themselves. They provide their GitHub link, or include it on their resume, mention it, etc.
No, they do not always do this. This isn't a good assumption. Asking candidates if they have anything extra to share reveals additional projects quite frequently. I would know because I do ask.
> and would often ask the interviewers what was the most interesting project they've worked on
Above asking, and initiating the conversation, is clearly unprovoked.
A interviewer asking them isn't the same as them asking an interviewer, where their answer potentially means you don't get hired. The interviewer is forcing an answer about their free time. It's "provoked".
edit: "you" to "above". I was responding to the context of what was written in the order it was written. author wasn't relevant in my response.
The point of an interview is to ask questions, and particularly in the more freewheeling environment of a startup, "what sort of stuff do you like working on?" is very much relevant to whether they'd be a fit. Sergey Brin would famously ask early applicants to Google "Teach me something that I don't know already, about any topic." YCombinator's application form, for a long time, had the question "Tell us about a time you successfully hacked some (non-computer) system to your advantage", and the answers were explicitly supposed to be naughty if not illegal.
Not everybody works for a big company with a big HR department. The tech industry is a broad place.
"Teach me something that I don't know already, about any topic."
"Tell us about a time you successfully hacked some (non-computer) system to your advantage"
This should not surprise you, but those are perfectly fine. These are very similar to the examples given to us for the appropriate/professional way to ask.
That's a good recommendation for the original commenter, on how to reword their question. They're not direct probes into personal time. I should have included something like that in my original reply.
I don't know how this can be true. Interviewing for a job is a zero-sum competition against the other candidates. If something isn't a positive, it has to be a negative.
I didn't stop coding in my free time because I stopped enjoying it, either, but because I could no longer sustain the fantasy that anyone was going to use any of the stuff I wanted to build. The level of motivation I feel for a project which is not going anywhere is not high enough to sustain me for more than a week or two.
Last year I wrote a self-hosted dependent typed programming language, after spending a couple of years helping out with Idris and learning how those languages work. I started that process because I was pretty burned out and needed something stimulating to do.
Before that, it was little things, like code to read various binary file formats. E.g. a read-only sqlite implementation, code to read realm databases, reading indexed db off of disk for various browsers, decoding apple notes database, decoding iOS backups.
Over time I've come to appreciate the difference between people who are described as the best programmers and people who are best at delivering results.
Some times they're one in the same. It's wonderful when you work with someone who is both an excellent programmer and excellent and delivering results in a team.
Many times I've worked with or even hired people who are brilliant developers and praised as being very smart, yet they didn't deliver results as well as the average developer on the team who diligently gets their work done.
Looking back, some of the most stereotypically brilliant developers I've worked with have also been among the more difficult to work with. Not all of them, but quite a few. The two that come to mind have been bouncing from company to company for a long time. They'll always have job offers and be able to pass interviews, but actually working with them and getting good results is a different story.
One of them even founded a startup with a co-founder, but unsurprisingly they broke up less than a year into it. On paper he should be the perfect fit to get launch a startup product, but working with him is a different matter.
The brilliant devs I know who are great at delivering results usually find their way into good positions and good companies early in their career and then stay there for a long time.
A man, on his hands and knees, searching diligently for something on the ground.
Another man, walking by, stops to help search. After a few moments he asks "what are we searching for?"
The first man replies "My contact lens"
After a minute or two the second man, frustrated, asks "Where did you lose it?"
The first man replies "Way over there, but the light is better under this streetlamp."
Coding interviews kinda feel like that to me. We can't measure what's important, so we'd better measure what we can measure extremely rigorously.
So keys and contacts are both modern revisions.
I ask about time complexity, and all the basics, but it's just a bunch of malarkey. So I spend more time quizzing them about technologies I don't know on their resume and getting something out of it for myself. It's easy enough to tell when someone's full of shit, but asking them to describe the tradeoffs between the technologies they've worked with seems more valuable than watching someone sweat-ily cramming out some crap imperative code for a toy problem and telling me they got it down to nlogn. Oooo ee!
[0]: https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guid...
As much as we like to complain about interviews, the alternatives that more accurately reflect the work environment are much more strongly hated.
One of the most accurate interviewing methods is a work trial: Bring the candidate in for a week and have them work the job. Their peers and managers rate their performance.
It's great for revealing how a person works. But think about what's required: You would have to take a week off of your primary job every time you wanted to interview at another company. A company could only interview one candidate per week.
Some companies try this, but it over-selects for unemployed young people. They either give up or start bending the rules when qualified applicants refuse.
It's not invisible though: those who work with these kinds of engineers easily see how valuable they are.
Passing some leetcode challenges is legible to employers, it puts applicants in the same buckets and measures them in (roughly) the same way. But it's not a good measure of actual talent. The real measures, as discussed in the article are out there but illegible to those employers.
I don't have the greatest work ethic, I waste time sometimes, forget things, am not too organized, etc. It's mostly the fact that 1) I do SWE as a hobby and 2) learn obsessively without BSing myself that gets me into jobs.
However my teammate at my last job. He probably didnt have the same level of intimate knowledge of systems as me. But his work ethic was just breathtaking. Mine simply wouldn't compare in a million years. Averaged over a large enough period, we both ended up doing the same amount of useful work.
Similarly there were others with different "approaches", just included the above 2 cases as an example.
Now. It wasn't the best experiment since we helped each other a lot. But I came away feeling it's true.
My hypothesis is that in less abstract work, the number of approaches is limited, and hiring practices in SWE have just been made the same as those jobs.
I don't really complain since I really can't think of a framework for hiring for abstract jobs that will yield better results than the current one. But who knows, maybe we'll find one.
FWIW, I think leetcode, just one round to bring down the applicant count to a number that's possible to interview {hard if there are too many, medium if there are few, or just Two Sum to weed out folks that can't write a for loop if you have just tens of applicants}, and then system design as the main interview, is a good system. For system design I would skip the common ones like "design a rate limiter/load balancer" stuff that people memorize. IMO it's easily possible to create unique system/API design questions that match the job somewhat.
Super nice guys, complete assholes, showmen, wallflowers - what they have in common is that they are great at making software
There are for sure personally types that are typical in certain traits, but we lose site of the fact that these do not tell you everything about who a person is
I likewise can give you stories of the best developers I’ve worked with - from Devry graduates, to high school dropouts, to HYPE wunderkinds - they come from all walks of life
There exists a quantitative method to correctly evaluate workers:
1. Collect each worker's work outputs and construct a training dataset.
2. Train an AI model with all work outputs combined.
3. For each worker, train a model with their respective work outputs deleted.
4. Construct a comprehensive evaluation benchmark over the full combined dataset.
5. For each worker, measure the change in the benchmark's performance with the worker's specific model relative to the full global model.
6. Fire the workers that lead to an unexpected improvement in the benchmark with their respective worker's model. This means that these workers were not contributing in a meaningful way to improving the performance over the benchmark. Keep the rest.
As for its feasibility, that's an engineering task. No cooperation is necessary from workers. It is in fact much more feasible than developing a modern LLM.
You can still do a very meaningful and satisfying career playing by your rule if you don’t care about striking your ego so much.
We can know who is good for our last situation, but it comes with bias and is very hard to measure. This is true even for jobs that are easier to measure like Sales or Support.
But the no presence... I've got a kid, a house, a mortgage. I've been in software since I was a teenager. Am I still fascinated by it? Sure. Will I still spend hours and hours of free time? Nop. It long since stopped being a hobby. Right now I like reading and listening to audio books, when I have a break from house chores and child rearing. I like to cook and experiment in the kitchen. The endorphin feedback cycle is so much faster (hours) than large scale software (weeks to years). I like to watch interesting shows on TV. Write. Coding-wise, I'm invisible outside the company I work at.
Not strictly a 9-5, but with a kid I do try to have quality family time, so I condense as much as possible to my working day, leaving time to be with my loved ones. If there's something important I'll participate. If there's a pagerduty alarm I'll jump. But otherwise, I'll deal with it tomorrow. I've long since learned to identify real emergencies from artificial urgency "because there's a milestone deadline!". Sure there is. Like the old saying goes "I love deadlines. I love the wooshing sound they make when they go by". Is it a customer commitment? No? Then I'll work on it Monday morning, right now I'm out.
I value people like that. Being a hero is a young-people game. You can't be a hero for years and years and not burn out. I've seen that happen. Working every weekend? Then something is wrong with the estimation. Or the design. Or whoever is in charge of priorities.
God helps me when I look for a job again. I guess I'll have to rely on references and hope to hell I'll pass the filtering software to actually get someone to look at my application. So far I've been lucky. Last time I actually sent CVs was at the beginning of my career, as a new grad, 20 years ago. Ever since then I was picked out, carried over, invited in by people who knew me. Really, really hoping that'll keep being the case.
This afternoon, I'm leaning towards bowing out of a supposed more-than-normal engineering role.
If I wanted a battery of commodity techbro interview performance art hoop-jumping, just to be allowed to work at a place... then I would've gone to Google 1-2 decades ago, for 2-5 times what this place is offering, gotten rich, and then retired... so that I could then spend all my time making useful and trustworthy software.
I know what it's like to have a good interview "loop" for this level of impact role. Both sides of the table seem to value each other, ask good questions, focus on getting a sense of what it would be like to work together on the products/projects, with the team(s), and within the company culture. And see if that's something everyone feels really good about doing.
No "I need to haze you to 'understand how you think'". No BS performances of Coding Interview, System Design Interview, and Behavioral Interview, like every techbro is told they must "prep" for. No feeling like the other person might somehow be cheating (because you get the impression that they might be lying trash). No battery of rituals (in some cases) to the exclusion of people who'd be working together actually meeting each other before everyone has to decide whether to offer/join.
It's fine not to have a native interest in that. But it's part of the job. No blog or bragging needed. No Linkedin needed even, if you really don't want that one. Catalog and maintain some minimal contact with these people who have seen your work: bosses, colleagues, juniors, anyone. Expose a few EXTRA people now and then, so they can see your work. This way, when you need to find a new job after many years hidden in just one department, you will have all these people who moved - sometimes frequently - and only wished they could have taken you with them at the time.
And that has nothing to do with "10x" - no matter the skill level you think you have, you'll be better off with a wide set of people who know you. "Know you" to any degree - often people will prefer you to going through the circus of interviewing for pretty random results.
hackthemack•4h ago
Today's hiring process feels like you have to go memorize algorithms instead of valuing things an employee actually has done in the past. And if the thing that was done in the past is something older, like Ruby on Rails, or an old PHP project it actually has a negative connotations in respect to hire-ability.
bartread•3h ago
What it isn’t any more is new or trendy. Still pretty widely used though, and with good reason.
fragmede•2h ago
dasil003•2h ago
As far as new apps go, yeah I think it's still pretty optimal for a huge swath of web apps, especially for early incubation when you have <20 engineers and you need to move quick. Not if you need web sockets, or other concurrency / performance critical applications though.
fgonzag•1h ago
fgonzag•1h ago
I don't know if I'd call that "mature".
NoMoreNicksLeft•2h ago
And in many of the places where I did not have an office, it wasn't because none were available. In most of the jobs I've worked, there have been multiple vacant offices going unused or becoming junk rooms where they stash old equipment to keep it out of the hallways.
Autonomy to solve problems... I don't know how many places I've been where it was tacitly supported for people to goof off for 20-30 hours a week, but god forbid you put effort into work that hadn't been directed from above.
And on and on and on.
rglover•21m ago