Remix.run Logo
bilsbie 4 hours ago

I had an interview question. What would you do if two different people were emailing a spreadsheet back and forth to track something?

I said I’d move them to google sheets. There was about five minutes of awkwardness after that as I was interviewing for software developer. I was supposed to talk about what kind of tool I’d build.

I found it kind of eye opening but I’m still not sure what the right lesson to learn was.

munchbunny 2 hours ago | parent | next [-]

Having been both the interviewer and the candidate in this kind of situation, this is really a big interviewer training failure.

The general way to handle this as an interviewer is really simple: acknowledge that the interviewee gave a good answer, but ask that for the purposes of evaluating their technical design skills that you'd like for them to design a new system/code a new implementation to solve this problem.

If the candidate isn't willing to suspend disbelief for the exercise, then you can consider that alongside all of the other signals your interviewer team gets about the candidate. I generally take it as a negative signal, not because I need conformance, but because I need someone who can work through honest technical disagreements.

As a candidate, what's worked for me before was to ask the interviewer if they'd prefer that I pretend ____ doesn't exist and come up with a new design, but it makes me question whether I want to join that team. IMO it's the systems design equivalent of the interviewer arguing with you about your valid algorithm because it's not the one the interviewer expects.

jb3689 an hour ago | parent | next [-]

A good interviewer won’t be looking for a single solution to the problem. I’d expect them to entertain the Google Sheets answer - it’s good signal that the candidate will consider what already exists in the world. I’d rather extend the problem: the team is spending considerable time iterating with manual entry, what would you do?

EthanHeilman 11 minutes ago | parent [-]

Complete agreement. "Excellent answer, that is what I would do as well, now what if we wanted to build it in-house?"

01284a7e an hour ago | parent | prev | next [-]

While I agree, how much training does anyone get as an interviewer? I spent 10+ years doing interviews at all sorts of orgs (including Fortune 500s, government, etc.) without a single hour of interviewer training.

Now that I think about it, none of those organizations ever trained me at anything at all. Huh.

david-gpu an hour ago | parent | next [-]

> none of those organizations ever trained me at anything at all

They trained us repeatedly not to bribe foreign government officials, even though I had zero access to anybody like that. There was also some mandatory training against harassing coworkers. I.e. "protect the company from lawsuits" training, not "here are some ideas for how to do your job more effectively" training. They were megacorps, too.

Sohcahtoa82 an hour ago | parent | prev | next [-]

Yeah, I had no training on being an interviewer before I started doing interviews. My manager gave me some tips, and I came up with two security bug-hunt exercises (was hiring AppSec engineers), but that was it.

Now, I wonder if I had rejected earlier candidates that I would have passed if I was a better interviewer.

sefrost an hour ago | parent | prev | next [-]

Same here. I receive a training budget at some places but it goes unspent. Everything is self directed learning in my own time.

munchbunny an hour ago | parent | prev | next [-]

> While I agree, how much training does anyone get as an interviewer?

TL;DR: not enough training.

As a hiring manager, whenever we start a hiring period I have a conversation with my interviewer team about what qualities we're looking for and review the questions they plan to ask in order to normalize the process. Stuff like "what does a good answer look like, and why? what does a bad answer look like? is this something easy for a candidate to engage with or will you spend half the interview just explaining the background? is this coding question unreasonably hard?" and so on.

I also look at the evaluations that interviewers give relative to other interviewers. Almost every hiring cycle I've done I've had to deal with some interviewer (all over the seniority spectrum) asking unreasonably hard questions.

nsxwolf an hour ago | parent | prev [-]

Sounds common to have training in big tech but I never received any training either. Sometimes we’d discuss changes we wanted to make to the interview process, which suppose could be considered adjacent to training.

andix 23 minutes ago | parent | prev | next [-]

If I would be the interviewer in this kind of situation, I would just follow up with something like this: "that might be a good option, but let's assume you need to build a tool to replace those excel sheets, ..."

vegabook an hour ago | parent | prev [-]

“Yeah okay forget sense, show me how good you are at budget protecting overdesign”

tyre 4 hours ago | parent | prev | next [-]

So my cofounder was talking to Stripe about an acquihire (this was after I’d left.) As part of it, he had to do a systems design interview.

He got the prompt, asked questions about throughput requirements (etc.), and said, “okay, I’d put it all in Postgres.” He was correct! Postgres could more than handle the load.

He gets a call from Patrick Collison saying that he failed the interview and asking what happened. He explained himself, to which Patrick said, okay, well yes you might be right but you also understand what the point of the interview is.

They made him do it again and he passed.

wongarsu 3 hours ago | parent | next [-]

If the point of the interview was to test if the candidate can design something that can handle google-scale problems then maybe the interviewer shouldn't state throughput and availability requirements that can be satisfied by postgres

jghn 2 hours ago | parent | next [-]

It's both.

As a hiring manager I've had situations like this arise because there was a gap in my plan and I didn't realize it. When those come up, we thank them for their cleverness, apologize to the candidate, reframe the situation, and give them another shot.

But also sometimes I leave intentional ambiguity in the plan. Part of the goal is to see if they have a degree of common sense commensurate to their level. If they're interviewing for a high level position, I'd expect them to be able to spot silly flaws and push back that perhaps the whole problem needs rethinking. And of course, I also expect them to know the brute force solution as well. Do they only know one? Both? Let's fine out.

sampo 30 minutes ago | parent [-]

> and give them another shot

Isn't this rather giving yourself another shot.

jghn 21 minutes ago | parent [-]

Of course, but the point is you don't fail a candidate for this. Some people do, including some of the examples to which I was replying

Aurornis 3 hours ago | parent | prev | next [-]

Postgres might have been a perfect answer, but the candidate needs to explain why and how.

The purpose of the interview is for the candidate to demonstrate their thought process and ability to communicate it. “Just use Postgres” doesn’t do that.

This would be more obvious if it was a LeetCode problem and the candidate just regurgitated an algorithm from memory without explaining anything about it. Yeah it’s technically the right answer but the interviewer can’t tell if you actually understand what you’re talking about or if you just happened to memorize and answer that works.

Interviews are about communication and demonstrating thought process.

wadadadad 3 hours ago | parent | next [-]

100% interviews are about communication and demonstrating thought process; after going through some rounds of interviewing candidates myself, any candidate who can adequately explain what they're thinking and how they arrive at their conclusions will be able to demonstrate their skills much more thoroughly than 'just use Postgres'.

That being said, it's also on the ones giving the interviews to push the candidates and ensure that they really are receiving the applicants best. The interviewers don't want to miss potentially great candidates (interviews are hard and nerve-wracking, and engineers aren't known for their social performance), and thus sometimes need to help nudge the candidates in the right direction.

Aurornis an hour ago | parent [-]

Fully agreed on the point that interviewers should prompt and push candidates in the right direction.

The best thing someone can do to learn how to perform well in interviews is to sit on the other side where you’re interviewing candidates. Some candidates will get stuck on arguing some irrelevant point or trying to fight against the interview question for too long in an interview. Once you see how much it hurts the interview process you learn to never do it yourself.

jimmydddd 2 hours ago | parent | prev [-]

I went to law school and a few of us students were engineers. For our first set of essay exams, the professors all instructed us to "just answer the legal question" and not include extra analysis. After the exam, many of the engineers didn't do well because the professors *actually* wanted you to weave the whole sylabus into your answer (i.e., discuss hypotheticals that were not actually part of the question asked), not just answer the question. After that, we were fine.

rawgabbit 2 hours ago | parent [-]

This is also what I learned the hard way. In many situations the customer doesn’t say what they really want. There are a lot of reasons why. I usually have to write down a lot of hypotheticals. If X is the primary concern, we should do Y. If U is the issue, we should do V.

wiseowise an hour ago | parent | prev [-]

The point is that you’re supposed to kiss clown’s ring and do the dance.

Folcon 4 hours ago | parent | prev | next [-]

I feel like if that's the thought process, that should be stated up front

There's a ton of incredibly talented neurodivergent people in our ecosystem who would trip up on that question just because of how it's framed

Because how is the interviewee to know if you're testing for the technically sophisticated answer no one in their right mind would ever write or the pragmatic one?

wreath 3 hours ago | parent | next [-]

I dont even think you need to be neurodivergent or anything to answer this question like the parent’s cofounder did.

From one side, we call ourselves problem solvers, on the other hand we are not satisfied with simple solutions to these problems. If im interviewing for a job, i should be expected to behave and solve hypothetical problems the way id do it on the job. If that screws up your script, you probably suck at hiring and communicating your expectations.

wongarsu 3 hours ago | parent | prev | next [-]

Or just add a couple zeros to all the requirements until postgres is a worse solution than whatever the interviewer envisions. Isn't that the point of stating throughput requirements?

mrweasel 2 hours ago | parent | prev | next [-]

It's probably more about your mindset, than about being neurodivergent vs. neurotypical. If you care more about maintainability and operations, there's a whole host of solutions you'd never built.

anthonypasq 2 hours ago | parent | prev [-]

if your brain short-circuits at ambiguity, or you're completely incapable of understanding intent and you take everything literally, that is a negative hiring signal.

twodave 2 hours ago | parent | prev | next [-]

This is just an indication that it's a poor interviewing technique. If you ask a question expecting the answer to be predictable then you had better cover all possible ambiguity in leading the candidate to the answer you want to hear. But then you're no longer asking the candidate to be creative, are you? As an interviewer I might be more inclined to allow such an answer and then follow up with questions of my own to test the limits of the candidate's knowledge of and confidence in Postgres as a technical choice for serving all the different constraints of the problem space. This way either I discover how well-reasoned the answer is or else (for a good candidate) it prompts them to adjust the design to better fit the problem. In no case would I expect they need to fit their answer into some key and then scold them for not playing along with my imaginary game.

fatnoah 3 hours ago | parent | prev | next [-]

> He got the prompt, asked questions about throughput requirements (etc.), and said, “okay, I’d put it all in Postgres.” He was correct! Postgres could more than handle the load.

I had this happen in a Google interview. I did back of the envelope math on data size and request volume and everything (4 million daily events, spread across a similar number of buckets) and very little was required beyond that to meet performance, reliability, and time/space complexity requirements. Most of the interview was the interviewer asking "what about" questions, me explaining how the simple design handled that, and the interviewer agreeing. I passed, but with "leans" vs. "strong" feedback.

btilly 23 minutes ago | parent [-]

To be fair, the simple answer is not so simple within Google.

The issue is that Google achieves reliability by insisting on n+2/n+1. Globally your service is in at least 2 more data centers than is required for full load. In each region in at least 1 more data center than is required for full load.

If you're using the Google toolchain, all of the scalability and fallover problems are automatically handled by the layers that you're relying on. Which everyone expects you to use, because they are already integrated into the environment.

But if you go to use Postgres as a data storage layer, then you also need to take care of replication, failover, backup, and make sure that this is integrated with the automated systems that Google already has to detect when this is needed. Even after you've done that, people from outside of your team will need to be convinced that you've done that. Simply because you're doing things differently, you'll get extra scrutiny.

As a result, even if Postgres would have worked perfectly well, it is usually not the optimal answer for someone who is working within Google's environment. Don't think of it in terms of, "Does this do the job?" Think about it in terms of, "Can those in the broader organization easily certify that this does the job?" That certification is easier when you use standardized parts that are themselves already certified within the organization.

My guess is that your interviewer was aware of this. And was left with, "What about that question that I didn't think to ask you about?"

eptcyka 3 hours ago | parent | prev | next [-]

If they don’t want to hear the correct answer, let them modify the question to exclude postgres answers. Interviews are a 2 way street, you will miss out on great candidates by being this stupid.

lo_zamoyski 2 hours ago | parent [-]

On the one hand, interviewers can suck. They can be uninterested in understanding and embrace instead the role of a trigger-happy interrogator looking not for a good response - something that may very well require effort and considering new ideas on the part of the interviewer - but an excuse to cross you off the list. The interview begins to look like a game of "Guess what I'm thinking". Interviews should simulate a colleague asking you for help.

On the other hand, interviewees can give poor answers with no explanation. The interviewer should press for an explanation in those cases, of course, but perhaps some are trying to see if the interviewee instinctively provides at least some basic rationale behind the answer without having to be prodded each time, in which case it is a matter of communication habits and skills. Communication is essential, and it is under-emphasized and under-taught in so-called 'STEM' curricula.

Gooblebrai 3 hours ago | parent | prev | next [-]

> They made him do it again and he passed

I'd assume that if he got a call from Patrick himself and a second opportunity to get interviewed, that's already a cue for interviewers to pass him regardless of what he says?

coldtrait 2 hours ago | parent [-]

That was what I felt too. Why even need an interview for an acquihire when you have a direct link with the founder/CEO?

smallnix 3 hours ago | parent | prev | next [-]

> you also understand what the point of the interview is

Exactly, it's also a test of ability to conform. Especially useful to weed out rogue behavior picked up in startups.

jkubicek 3 hours ago | parent [-]

No, the point was to demonstrate how you’d design a complex system.

If a valid answer was “just use Postgres” then it just wasn’t a very good interview question.

In real life, the answer almost certainly would be “just use Postgres” and everyone would be happy.

chrisandchris 3 hours ago | parent [-]

No, it was a perfectly fine question IMHO. it is a broken incentive - it is expected that you design complex systems regardless whether they are useful or not. Try to interview for the role you have to fill, nor for a role you a dreaming you would love to have whenever you're Google2.

If the interview wants you to think about stuff that never happens in your role, I think it is a sign that in your role, you're expected to solve the problems like in the interview.

alistairSH 8 minutes ago | parent | prev | next [-]

Completely idiotic on the part of the interviewer. Failing somebody for a correct answer - what a waste of everybody's time. If you want the candidate to pursue a particular technical path, tell them to do so while they're there in the office.

pjmlp 3 hours ago | parent | prev | next [-]

This is the part I would say thank you, and pass on the opportunity.

And yes, I have done this on a second Google interview about 15 years ago.

badosu 3 hours ago | parent | prev | next [-]

Sorry, I didn't get it. What was the 'right' answer?

alistairSH 4 minutes ago | parent | next [-]

Apparently some combo of kissing the arse and reading the mind of the interviewer...

munchbunny an hour ago | parent | prev | next [-]

It depends on the situation.

Sometimes you just have a bad interviewer who is looking for something specific from you but isn't telling you. If you're experienced in these interviews, you catch the signs and adapt by asking questions to suss out which direction the interviewer wants to take it.

Sometimes your answer is plausible but the interviewer wants to see you justify it. Sometimes your answer is wrong but the interviewer wants to see if you can reason your way through it, and maybe come up with an alternative.

If you're junior/inexperienced, it's often hard to tell and it'll feel arbitrary/unfair, and unfortunately that's just how it goes. As a more senior/experienced candidate, you can often figure out which situation you're in by asking questions to feel out the interviewer and then try to pivot during the interview, though it still takes valuable minutes out of the interview that you could have otherwise spent showing your competence.

wccrawford 2 hours ago | parent | prev | next [-]

"Postgres, because..."

They want a conversation to see how you think, not an actual answer.

Which is stupid, because they asked a question that the person didn't need to think to answer. So they didn't get to see them think.

2 hours ago | parent [-]
[deleted]
koakuma-chan 3 hours ago | parent | prev | next [-]

distributed virtual abstract factory

tracker1 an hour ago | parent [-]

You need the StrategyFactory in case you need further variances to the Factories you're making.

https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...

sejje 2 hours ago | parent | prev [-]

nosql on serverless

MrBuddyCasino 3 hours ago | parent | prev | next [-]

> They made him do it again and he passed.

I would hire the "just use postgres" dude in a heartbeat without re-testing, if the numbers made sense, and perhaps give a stern talking-to to the interviewers. But then again I'm not a unicorn founder, so what do I know.

lucianbr 3 hours ago | parent | next [-]

My read of the story is that the decision to hire was already made, the interviewer goofed but was then set on the right track by his boss.

layer8 an hour ago | parent [-]

The question was bad if using Postgres would really be a better solution than designing and implementing a bespoke system, under the stated constraints. Either they should provide a better problem statement, or at least immediately follow up with “okay, suppose you can’t make use of an existing system like Postgres for $reasons”.

PKop 3 hours ago | parent | prev [-]

Eh, it's a good answer and shows good instincts, but they still want to know how he would design a system if one was necessary. There's no need to be ridiculous about any of this from either perspective, which is why it should never have been a "fail" without the original interviewer simply saying "That's a solid answer now tell me what you would do if you had to build something new". I mean look how much time he wasted for everyone including his own CEO by being stubborn about it.

MrBuddyCasino 3 hours ago | parent [-]

If the numbers can be satisfied by a Postgres then thats the correct answer. The interviewers fucked up, because they sized the problem wrongly.

This is the same issue that was prevalent when the industry switched from HDD to SSD: some system design questions suddenly became trivial, because the IOPS went up by magnitudes. This is not a failure of the interviewees, who correctly went with the times, but a failure of the interviewers.

LPisGood 2 hours ago | parent | next [-]

What kinds of system design questions got destroyed?

danenania 2 hours ago | parent | prev [-]

The correct answer is “Postgres would handle it, but if it needed to scale even higher, I’d…”

The point of a system design interview is to have a discussion that examines possibilities and tradeoffs.

darkwater an hour ago | parent [-]

And people weeded out by this kind of questions are probably rightfully so. I for one could not ever work with someone that says "my answer is correct, period.". Part of the answer and the discussions made by mature individuals must ask for feedback, incorporate it in your design, be open to compromises sometimes but also to die on a hill when it makes sense. And in an interview context, you ought to show the hiring manager all these faces.

Then, there are hiring managers that suck and you might be discarded because you didn't follow the script. Sure, but that's a bullet you dodged.

marcosdumay 2 hours ago | parent | prev | next [-]

Well, yes, doing the interview again is the right choice.

eunos 3 hours ago | parent | prev | next [-]

> okay, well yes you might be right but you also understand what the point of the interview is.

So the point is? I honestly dont understand.

praptak 3 hours ago | parent | next [-]

The point is the interviewers are sometimes obtuse.

Sometimes the point of the interview is to see if the candidate knows an existing solution and "just use postgres" is the good answer. Sometimes it's to test the technical chops and pretending postgres doesn't exist is the point.

The candidate shouldn't be expected to always guess right, unless the position says "a psychic". The interviewer should notice if the candidate is solving the wrong kind of problem and nudge them in the right direction instead of punishing the candidate for the wrong guess.

LandR 3 hours ago | parent | prev | next [-]

The point isnt to give a simple answer, even if it's a correct answer. The point is show how much you know and how smart you are.

The question is framed to you as a way for you to show you know x, y and z and talk about x, y and z.

Even if a valid solution is just do a, that's great. But the interviewer has no idea if you actually know about x ,y and z do they ?

lucianbr 3 hours ago | parent [-]

> The point is show how much you know and how smart you are.

I like that this sentence can be read both as a productive, well-meaning view on interviews, as well as a highly cynical one.

Also makes me wonder if the person will keep showing how much they know and how smart they are after they are hired, and if that is a good thing.

Aurornis 3 hours ago | parent | prev [-]

In an interview you need to explain your thought process and demonstrate that you’re making an informed decision with supporting evidence.

Saying “just use Postgres” and then providing no explanation for why you believe Postgres is sufficient for the job, a general explanation of what type of hardware and architecture you’d use, and other details is not answering the question.

renegade-otter 3 hours ago | parent | prev | next [-]

I always find it funny that "engineers" straight out of school who barely know how to create a PR are expected to "ace" planet scale design questions. It's. Just. So. Dumb.

flubijeq 2 hours ago | parent | prev | next [-]

The best way to get promoted at stripe is just self-marketing and social manipulation. Good engineers are leaving meanwhile tecnical leadership is being replaced with designers and marketers. Internal performance metrics are heavily manipulated as well. Patrick has completely surrounded himself with extreme sycophants at this point - he has no idea what is actually going on in his company beyond curated metrics produced by manipulative sociopaths.

getnormality 2 hours ago | parent [-]

Patrick Collison sounds like a lovely, trusting, scientifically-minded man who needs to learn the constructive power of destruction. The power of rage and contempt for bad solutions and bad communication (regardless of intent).

With a smiley face front-end, of course. Wouldn't want to seem not-nice!

anal_reactor 3 hours ago | parent | prev | next [-]

I realized that my manager really confuses complexity with robustness. Case in point: we have a very complicated script that runs at deployment time to determine the address of the database. It's been the source of a few incidents - database wasn't discovered because it was restarting and the script passed an empty string instead of stopping the deployment, script failed because of python update and empty configuration was passed, shit like that. I've been arguing "bro why can't we make terraform create a config file with all the addresses that is directly passed to the app at deployment, or better yet, just copy-paste the database addresses into a file in the repo because we change something there once a year at maximum" but my manager took it as a sign of incompetence and my inability to understand complex systems.

I feel like lots of people just follow the happy path and don't understand that complexity incurs real cost.

PKop 3 hours ago | parent | prev | next [-]

It's crazy the original interviewer allowed it to come to this which sounds like a waste of time for everyone involved, instead of simply saying; "Very good that is a legitimate solution to the problem. Now let's pretend you have to build something new, what would you do?"

Why on Earth did the company have to be so willingly obtuse and stupid about it including what sounds like the CEO (well at least he gave him another shot, but there doesn't need to be implicit assumptions about the "point of the interview", just come out and address it head on explicitly.)

yieldcrv 2 hours ago | parent | prev [-]

“There’s no right answer we just want to see how you think” is gaslighting if there is a right answer and wrong answer.

This should go straight to the DOL, EEOC, FTC and other bodies as some form of abusive labor practice that excises it from the employment process under threat of economic sanctions

GuB-42 41 minutes ago | parent | prev | next [-]

I think the correct answer would be to ask "why are they doing that and not using Google Sheets?".

There are a lot of good reasons for not using Google Sheets. Maybe the spreadsheet is using features that Google Sheet doesn't support, maybe one of the parties is in China, where Google services are blocked, maybe it is against company policy to use Google Docs, maybe they have limited connectivity.

It is good to acknowledge the obvious, off the shelf solutions, but if you are given a job, that's either because the customer did their homework and found out that no, it is indeed not appropriate, or, for some reason, they have money burning their pockets and they want a custom solution, just because. In both cases that's how you are getting paid. So, I don't consider "use Google Sheets, you idiot" to be an appropriate answer. Understand the customer specific needs, that's your job, even more so in the age of AI.

And maybe the interviewer will be honest and say "just assume you can't, this is just an exercise in software architecture".

sovietswag 2 hours ago | parent | prev | next [-]

Ha! I just had a debate about this with my friend. A certain ferry company uses a big Google Sheet to track where all of its vessels are currently docked in their home port, as well as which employee is assigned to which vessel for the day, etc (it's very information dense with color coding, and employees check it daily to get their vessel assignment). My friend thought this was completely unacceptable for a big company, and that they should build a bespoke software for this purpose. I think that it was a brilliant idea to use Google Sheets, it already solves all of the difficult problems and obviates the need to have an inhouse software development team or an expensive contract. I buried my hubris deep underground

matsemann 38 minutes ago | parent | next [-]

I've just spent a few weeks making a tool in our software to replace a complicated google sheet, and it was surprisingly hard. I think the most important thing was that our designer really figured out what the tool should do. If we've just replicated what they have and made a columnar editor of sorts, we would've just made a less flexible tool for them. But in the end, we made something not even resembling what they had, but which actually solved the core issue, and I think that's important.

And when you take away their sheet, you better be ready to support them. If they need to track new data, they could just add a new column in their sheet. Now they have to talk with tech. If tech blocks operations, they're quickly back to their sheets. The tool made by tech should be an enabler, not something to force compliance or whatever.

Sheets are so, so flexible. This can be really hard to replace. At the same time, they're also brittle with little system support. Like the example above, what if you assign someone not working that day to a boat? Or accidentally put two boats in the same location? Lots of small issues that proper tooling could handle, especially when backed with more data inside the system.

What made the operators happy to use my tool in the end was that they didn't have to punch so many numbers. They would copy paste numbers from various systems into their sheet every hour to keep track. The tooling pulls it in real-time.

So we replaced this one sheet, because it would help them a lot. But their other sheets we're leaving untouched for now. Nothing to gain by moving them. So judge each sheet individually.

tracker1 an hour ago | parent | prev | next [-]

I'm there with you... maybe, maybe using the sheets API to create a simpler front end for very specific use cases, like an individual seeing their assignment for the day, or maybe texting everyone that info.

As much as people will rely on databse (rdbms/sql) backed applicatons, in the end a lot of the business world runs on spreadsheets... Not only that, but excel, and I'm assuming plenty of others have integration points for pulling data from other resources... Spreadsheet masters can do very impressive things with what appears to be a simple tool.

Culonavirus an hour ago | parent | prev | next [-]

I've seen suppliers using google sheets for a list of tens of thousands of items. Also color coded and filterable and what not. It worked. I could access it programmatically, I had no complaints. (Especially with an experience of some of these suppliers having shitty hosts and shitty platforms and their massive XMLs taking forever to load.) Then again I'm sure I would speak differently if someone just decided to rename a column randomly :D

wrs an hour ago | parent | prev | next [-]

My startup used Google Sheets as a CRM until we discovered there’s a 3 million row limit (by running into it) and had to build something else. Sheets is amazing. Don’t forget to lock that first header row, though.

bcrosby95 an hour ago | parent | prev | next [-]

We have no idea if its a good solution or not. It depends upon, among other things: how long it takes to update it, the error rate, and how acceptable those errors are.

vonneumannstan an hour ago | parent | prev | next [-]

All fun and games until an Intern deletes the original sheet or fatfingers critical information.

cindyllm 2 hours ago | parent | prev | next [-]

[dead]

bombolo 2 hours ago | parent | prev [-]

[dead]

bob1029 4 hours ago | parent | prev | next [-]

> What would you do if two different people were emailing a spreadsheet back and forth to track something?

I realize this is part of an interview game, but perhaps the best response is still to ask why this is a problem in the first place before you launch into a technical masterpiece. Force the counterparty to provide specific (contrived) reasons that this practice is not working for the business. Then, go about it like you otherwise would have.

exogenousdata 3 hours ago | parent [-]

I actually really prefer your answer. I would likely counter with, “what potential issues could you see with doing things this way?” But a) you’ve shown me that you don’t charge into solutions without first attempting to define the problems, b) your follow-up answer reveals to me what kind of things you think are important, and c) I’d probably quickly ask something like,”let’s assume that in the past, we’ve had issues with missing changes when emailing this back and forth,” and encourage some more dialogue.

I do dislike interviews where a candidate can fail simply by not giving a specific, pre-canned answer. It suggests a work culture that is very top-down and one that isn’t particularly interested in actually getting to the truth.

chuckadams 3 hours ago | parent | prev | next [-]

The followup questions usually help, like: "What are they tracking?" and "What are the problems caused by using a spreadsheet?" That usually gives you a clue of the answer they're looking for. The answer might be bullshit, but you pass an interview by playing their game, not yours.

skydhash 3 hours ago | parent [-]

This! It’s better to assume that you don’t know some context than go with what appears to be the most pragmatic answer. Even in the real world.

nobleach 3 hours ago | parent | prev | next [-]

Way back when I was in IT Admin, I used to have this problem all the time. Some non-tech person emails a spreadsheet, another non-tech person edits it, and saves it. The original person complains that they can't see the changes. Yeah, because it's saved in some MS Windows Profile location that no sane human would ever visit. My solution was to ONLY email links to shared files on a shared resource. The LAST thing I'd ever think of is writing software to solve this problem!

These days if I were interviewing someone and they said, "I'd use the simple solution that is fairly ubiquitous", I'd say, "yes! you've now saved yourself tons of engineering hours - and you've saved the company eng money".

1980phipsi 2 hours ago | parent [-]

I attach a copy of the file and then provide a network location for where it is located. Makes it easy for people to just open up a simple copy to look at it and they know where to go to access the original.

robertlagrant 4 hours ago | parent | prev | next [-]

I had a similar idea once when answering a Stack Overflow question[0].

[0] https://stackoverflow.com/a/1831841/61938

gorbachev 3 hours ago | parent | next [-]

Quoting your comment: "You definitely don't want to hire the person who thinks - bizarrely - that using library functions is a sign of weakness."

So true...I've failed interviews, because the interviewee did see using library functions as a sign of weakness.

Cthulhu_ 2 hours ago | parent | next [-]

I just wish that in those cases the interviewee gives feedback and allows you to rewrite instead of just failing you. I mean in practice nobody writes library functions themselves unless absolutely necessary, but I get that for some positions you have to demonstrate that you can write lower-level code if you have to.

LPisGood 2 hours ago | parent | prev [-]

I think that it was probably a poorly designed question, but surely you could throw the interviewer a bone by giving a custom answer after they reject the library.

Cthulhu_ 2 hours ago | parent | prev [-]

I love how your answer was straight, to the point and leverages existing standards, then scrolled up to the question and had to go through someone else's thorough, multipage response. Full marks to both answers!

philipallstar an hour ago | parent [-]

I do absolutely love the other answer!

ajspig1 an hour ago | parent | prev | next [-]

  I get that "communicate your thought process" or "play along with the exercise" gets offered as the fix here. But that framing bothers me too. Why should simplicity require more justification than complexity? Google Sheets is the design. The fact that it doesn't sound like engineering is the whole point.
I'm just not convinced the solution is learning to package simplicity in a more impressive wrapper.
xivzgrev 2 hours ago | parent | prev | next [-]

Not an engineer but reminds me of a similar situation I've seen interviewing

Sometimes we'll ask market sizing questions. We will say it's a case question, it's to see their thought process, they're supposed to ask questions, state assumptions, etc.

Occasionally we'd get a candidate that just doesn't get it. They respond "oh I'd Google that". And I'll coach them back but they just can't get past that. It's about seeing how you approach problems when you can't just Google the answer, and we use general topics that are easily accessible to do so. But the downside is yes, you can google the answer.

jt2190 4 hours ago | parent | prev | next [-]

The lesson to learn is that in-house development groups are often incentivized to “sell” custom software solutions to their organizations, as their existence (budget) relies on it.

As an interviewee it’s important to try and identify whether the group you’re interviewing with operates this way, literally: How will they get the money to pay for your salary? That way you avoid giving nom-starter answers to interview questions.

Traster 4 hours ago | parent | prev | next [-]

This is one of my favourite interview questions too. I ask a design question that technically could be solved using the specialist skillset I interview for but it would be insane to actually do that in the real world. It's a good opener to see how practical and open minded they really are.

bluGill 2 hours ago | parent [-]

Is it? I have long thought that most things business people are using a spreadsheet for belongs someplace else. They are easy ways to run quick what-ifs or make lists, but generally the right answer is update the system so they don't need a spreadsheet. If the data is financials - why can't your accounting system give everyone the view they need from the shared system? Othertimes what they really need are a database to track this. But a spreadsheet is easy and so they ignore all the problems it creates because it needs a real engineer (and often more money than they can spend) to create the right solution.

Traster 43 minutes ago | parent | next [-]

I didn't quite mean it that way. My question is basically asking "Does this hammer know that not every problem is a nail". To give a specific answer to your question, my accounting system is excel, and "everyone" is me. There are definitely plenty of places where a database makes sense. But it's also important for database engineers to understand where databases don't make sense. It's kind of like that old problem we had where people would keep on saying "We can do X with blockchain" and the typical answer is "ok but that's worse".

horsawlarway 2 hours ago | parent | prev | next [-]

> it needs a real engineer (and often more money than they can spend) to create the right solution.

Then it's the wrong solution. Period.

There are plenty of annoyances with spreadsheets, but part of what makes them so robust and powerful is that they don't take a ton of specialized knowledge, and they remain incredibly flexible.

An expensive, complicated, static, "right" solution for a small business is folly (honestly - this stays true up to medium/large business). It's a ton of time and energy focused on the absolute wrong thing. When a spreadsheet can reach the same result in a fraction of the time.

Especially given the result may not actually be that important, and they pivot to something else entirely in the very near future.

I've worked at several startups. I'd caution even software startups from assuming that custom solutions are the right approach. They usually aren't. They're a waste of time and effort that ends up saddling you with a brittle, expensive solution designed to solve problems from last year.

SolubleSnake an hour ago | parent | prev | next [-]

Argh gawd I hate this!

There are plenty of reasons that a department within a company will prefer spreadsheets. Software is not the answer to everything and also this is the same problem you get when Microsoft introduces those pesky 'Power App' developers etc or previously the Sharepoint 'web parts' etc....essentially someone who kind of feels they are the 'owner' of some information then decides to formalise the process in their own little way.

Now you have a person wasting a bit of time making their little tool but you've also got people complaining that someone's now essentially taken control of it etc. At a former employer our procurement team used spreadsheets to track basically everything but importantly everything on our PCBs - every single component and their suppliers and prices etc (various factories around China usually). This would have been a horrible thing to try and formalise in a web app just because of how often they were all changing their own conventions etc (often suppliers changing what information they gave to them, too). It would have been a wild goose chase to formalise it and more than the trouble it would be worth.

teeklp 2 hours ago | parent | prev [-]

Well, you've long thought wrong.

Folcon 4 hours ago | parent | prev | next [-]

Honestly, if I'd have heard that, I'd hire you in a heartbeat, you solved the problem without increasing total cost of ownership to the company and meant we could move forwards

I'd actually trust you to take on harder problems

Doesn't really matter what the situation is, there's much more that can be achieved in my book with that kind of mindset :)

I'm also of the opinion that in an increasingly LLM software written world, being able to have this kind of mindset will actually be really valuable

neftaly 3 hours ago | parent | prev | next [-]

I would ask, why are they emailing it? Maybe there's a good reason they can't use sheets.

fluidcruft 2 hours ago | parent | prev | next [-]

Maybe you were supposed to identify what business need they were trying to solve and see if there was anything better than a spreadsheet?

Spreadsheets are a tricky one some people like the power and automomy they have with spreadsheets.

But more often spreadsheets are the only way to transfer data between solos and it wastes a lot of time and is error-prone.

bitmasher9 2 hours ago | parent [-]

It really depends on how much time is spent filling out the spreadsheet.

If they are collectively spending 1hr/mo on the spreadsheet then it’s not worth an SWE’s time to optimize it. If they are spending 4hr/day on the spreadsheet then it’s a prime candidate for automation.

LPisGood 2 hours ago | parent | prev | next [-]

I feel like you could start waxing poetic about engineering value of meeting people where they are, not reinventing the wheel, etc.

Then after a brief discussion of that you could actually ask if the purpose of the question was for you to design a system to handle that situation and jump into the design.

raffael_de 4 hours ago | parent | prev | next [-]

depends on what metric it is that _you_ want to optimize. i would have given the same answer, then aikidoed their confusion into some quick lecture on efficiency of software solutions in a business context and finally a segway into a project i worked on (or made up on a whim) of related relevance that i assume would be more interesting to talk about instead. but given my rather unimpressive career i'd suggest to not listen to me.

wildekek 4 hours ago | parent | prev | next [-]

The lesson was that sometimes the interviewee can be more competent than the interviewer and they should run.

Cthulhu_ 2 hours ago | parent | next [-]

Run or email their seniors and ask them if they're hiring for higher-up positions.

But this is connected to another thread on HN about engineer/manager titles and how they basically have no value if you try to compare them between employers.

travoc 3 hours ago | parent | prev | next [-]

So nobody can ever hire someone better at particular skills than they are? Oh boy.

oblio 4 hours ago | parent | prev [-]

Or maybe this: https://news.ycombinator.com/item?id=47247719

pjmlp 3 hours ago | parent | prev | next [-]

In our agency that would be a plus, because we focus on customising existing products instead of building everything from scratch.

Exactly because that means less costs for software development when deliverying solutions.

darkwater an hour ago | parent | prev | next [-]

Honest question: did you really not read the room there? I mean, if I were on the interviewer side, asking that question, and getting an initial answer "Well, to be honest I would tell them to use GSheets because given the current situation is the highest benefits/costs solution, but for the sake of a system design interview I would also think about designing a bespoke internal solution that would use blah blah blah". You would get a "strong hire" evaluation and you would still be able to turn down the offer if you wanted because that question might have been a red flag to you.

tmtvl 3 hours ago | parent | prev | next [-]

It's a culture fit question. When the culture is 'make everything ourselves' you're not a great culture fit. When the culture is 'just solve the problem', you fit in perfectly well.

gwbas1c 4 hours ago | parent | prev | next [-]

Probably that you didn't want the job?

At least from the point of view of the interviewer, this was the point where they should give you a polite "hey, play along" nudge.

swiftcoder 4 hours ago | parent [-]

> At least from the point of view of the interviewer, this was the point where they should give you a polite "hey, play along" nudge.

That may be the game, but we all know it's bullshit, and we shouldn't be playing along.

If a member of my team actually proposed building a bespoke system for something that can be straightforwardly done in a spreadsheet, we'd be having some conversations about ongoing maintenance costs of software

gwbas1c 3 hours ago | parent [-]

> If a member of my team actually proposed building a bespoke system for something that can be straightforwardly done in a spreadsheet, we'd be having some conversations about ongoing maintenance costs of software

All interviews are contrived / artificial situations: The point is to understand the candidate's thought processes. Furthermore, we're getting Bilsbie's (op) take on the situation, there may be context that the interviewer forgot to mention or otherwise Bilsbie didn't understand / remember.

Specifically, if (the hypothetical situation) is a critical business process that they need an audit log of; or that they want to scale, this becomes an exercise in demonstrating that the candidate knows how to collect requirements and turn a manual process into a business application.

The interviewer could also be trying to probe knowledge of event processing, ect, ect, and maybe came up with a bad question. We just don't know.

Given that Bilsbie can't read their interviewer's mind, there's no way to know if that's what the interviewer wanted, or if the interviewer themselves was bad at interviewing candidates.

tedggh 2 hours ago | parent | prev | next [-]

Yours was a clever answer to a stupid question. Tech interviewers need to leave college behind and start treating candidates as professionals. Puzzles, white boarding and riddles are unique to software engineering roles, you would never see a lawyer, an accountant, a doctor, or engineers in other disciplines going through any of this nonsense. These methods are proven to be a poor predictor of job performance. In my last role as lead engineer we would chat with the candidate over lunch about random topics. We first wanted to see if they would fit our team. Then in the afternoon let them work in a little project that was actually part of active development. This way we discovered that most candidates who went through the screening process could actually be pretty good team members. Our issue was having to decide who to give the offer to, while other companies keep rejecting candidates over bubble sort. Our attrition was also pretty low. So it happens that software engineers will surprise you when you treat them as grown ass adults. Who would have guessed?

3 hours ago | parent | prev | next [-]
[deleted]
HPsquared 3 hours ago | parent | prev | next [-]

Remember you're interviewing them just as much as they are interviewing you.

zipy124 4 hours ago | parent | prev | next [-]

I mean you gave the right answer imho. Software engineers are just business people whose main tool is coding. You know you're good if you don't reach for the hammer when you don't have a nail.

colliv431 2 hours ago | parent [-]

[dead]

ziml77 2 hours ago | parent | prev | next [-]

I mean that's not really a good answer because you need to ask why they are sending a spreadsheet back and forth. Like yeah using a shared spreadsheet saves them having to email back and forth, but it doesn't help formalize the process, include validations, or make the data available to other systems. And maybe it would turn out that none of that is actually helpful in this case, but if you don't make an effort to ask and understand what's going on then you won't know if there's some bigger problem that needs addressing.

colliv431 2 hours ago | parent | prev [-]

[dead]