Live data from Hacker News

Ask HN: Should I quit the field of software development?

news.ycombinator.com

31–40 of 159 posts

Re: Ask HN: Should I quit the field of software development?

#31

I'd like to give you a different view on the interview / question you mentioned. While it's certainly possible the interviewers are running the process badly (many are), pretend they have good intentions and answer to that. The tweet question is basically: can you think about performance. Let's say you don't know anything about queues or distributed systems. You can say you never worked at that scale. You can also sa…

> You can also say what you think would be the number of followers (millions+), what would be the time needed for a write you a database (~millisecond each) and why that won't match 3 seconds, so you know how much time you have per follower.

While we are on the topic I am really curious to know how they solve it actually.

Re: Ask HN: Should I quit the field of software development?

#32
On HN there have been numerous interview horror stories that I just didn't understand. Recently though, I've been through one, so I think I understand what you have been through a bit better.

Interviews are done by people, trying to size you up. Even though their question would seem to be humilitating you can still try to make the best of them. As others have already posted, getting through the interview is a skill on itself and I have seen interviewees that passed full score and have been terrible to work with and vice versa.

The real question is: is this the only profession you care about? If so, it's time to learn to game the interview. If not, do feel free to give a shot at the other profession. It may benefit from your experience as a software developer.

As many have posted on HN before, interdisciplinary employees have higher employment value.

Anyway, good luck with whatever you decide.

Re: Ask HN: Should I quit the field of software development?

#33

I went through something similar, and ended up failing a bunch of coding interviews. Also I read David Graeber’s book on bull shit jobs, which was really cathartic for me. I ended up quitting my job, selling my house, and now I’m looking for some property to buy so I can subsistence farm.

This is really awesome - but I feel like it's also an extreme that few are willing to take. One thing which is an argument for software development is that the relatively good salary should enable you to save up and take a sabbatical every 4-5 years. To me, that is absolutely worth doing this job, even if I don't always like it (also, there's also almost nothing I would be qualified to do, at the moment, to be fair).

Re: Ask HN: Should I quit the field of software development?

#34

I'd like to give you a different view on the interview / question you mentioned. While it's certainly possible the interviewers are running the process badly (many are), pretend they have good intentions and answer to that. The tweet question is basically: can you think about performance. Let's say you don't know anything about queues or distributed systems. You can say you never worked at that scale. You can also sa…

You also don't need to know the answer in order to ask lots of clarifying questions. From the question alone, without an greater understanding of the landscape, I suspect the question is unsolvable.

Re: Ask HN: Should I quit the field of software development?

#35

It took me a long time to understand that interviewers are often less competent and giving them than they are at coding. Typically an interview question should be hard enough to test the limits of any candidate. The goal is to see how someone thinks and how honest they are when faced with a technical challenge, not what they were able to memorize. With that in mind, take heart if the interviews have been sometimes of…

In addition, I mainly have run interviews as a 1st or 2nd round screener, and I suggest to continue with interview process even if someone kinda blows a question as long as it seems like they're not lying about their experience.

For interviewing experienced candidates I'm often trying to come up with a problem the team has faced and turn it into a series of questions. When it doesn't work, I feel like there's a 50:50 chance that I didn't phrase it well/didn't include enough info (but unless I happened to interview several candidates that week and we just don't have time) I am fine with letting a second screener or the whole team talk to a candidate.

But I guess OP is probably referring more to final interviews. But for me at least, phone screens really are ok to get things wrong, in case there is anyone out there with phone screen jitters.

Re: Ask HN: Should I quit the field of software development?

#36
The goal behind these questions is not for you to find the right answer, unless the interview is about a specific topic where you should know the right answer.

The goal is to have information on your thought process, how you solve problems, and how you communicate.

- Assumptions you have

- Your ability to clarify ambiguities

- Your interviewing skills: with coworkers, clients, reports, managers, applicants, you spend a lot of time interviewing people to extract meaning, facts, context, information.

- How you frame a problem

- How you behave in unfamiliar waters: you will build things you can't find the answer to on Stack Overflow or in a blog post.

- Your awareness of tradeoffs: do you make decisions being aware of the tradeoffs involved, do you have magical thinking, or cult of the tool/framework.

>"How do you make sure that a celebrity's tweet reaches all of her followers in less than 3 seconds?". I had no idea, I have never handled that kinda scale.

Would you not like to tackle that problem and work on systems that handle that kind of scale? One argument against this is "who cares, they're not twitter so why are they talking about hypotheticals. They should interview me on what I'm going to do on the job". This is very valid, but there also is a counterpoint to this: this might stem from the desire of the interviewer not to be biased. If they quizz you on a problem they have been working on for the last year, they'll probably get frustrated by the fact you can't find the right answer to the questions. Or worse, they'd be impressed if you happen to find the exact solution they have converged to. You'll appear to be much much "smarter" than you are, and the expectations will be set high since you found the answer in a few minutes rather than a year. This is dangerous.

>I'm sorry if this is incoherent.

It's very coherent and understandable.

>I haven't even applied to jobs for weeks now, because in interviews I feel like I'm getting humiliated and I want to apologize and end them half-way.

We need to reframe this. If you put yourself in the shoes of whoever is interviewing you, they are trying to vet you because they care about their team, and they want to hire someone who will raise the bar of the team. From another perspective: if you were already in the team, wouldn't you want whoever is in charge of hiring to be an effective gatekeeper? Would you want a person who is impressed by an applicant spitting a few buzzwords and frameworks? That applicant then lands the job, gets assigned to your team, and becomes the reason you apprehend going to work? They may have been burned by past "bad" hires and have decided to tighten it up. People holding a team back, undermining decisions, commiserating while never explicitly voicing their concerns. This is a problem that must be prevented from happening, or dealt with swiftly if it happens.

Yes, they're not FAANGs but it's precisely that! They may be a small team in which you as a person are a large percentage of the workforce. If you are one in a team of 10, you represent 10% of the workforce. If you were at a FAANG, you'd represent a much smaller addition.

Furthermore, if it is a small team, it will hopefully grow, and you will take on more responsibilities, and you'll eventually hire people. They need to be very, very, disciplined about hiring people who will shape the future of the company.

It can be frustrating if you look at it from your perspective of someone who has a lot to offer and feeling humiliated, but that feeling is a very mutable reality once you factor in these different perspectives. Maybe even enjoy the interview, enjoy interacting with smart people, ask questions to learn new things, discover things you didn't know were a thing, and be glad for that team they have someone shielding them. You can ask them for feedback.

It is a fit that didn't happen between two pieces at a specific time and place. An impedance mismatch. If either of these changes, the fit could happen.

>I'm sure the problem is me, since other people are doing fine.

If one approaches it from a frame of rejection or humiliation, it can be extremely hard. This is like intimate relations. There are more productive and effective ways to approach these in terms of learning what you can from that interaction, wishing someone the best and to find someone who does it for them, fixing what is to be fixed, maintaining what is not to be "fixed", being courteous.

>* I need to draw a line and figure out some good indicators of when I should quit this industry, and anyone here who could give a few pointers on that, I would be thankful. I don't want to throw more time and resources into an industry where baseline expectations are something I can't/won't reach.*

OK, are you quitting the industry because you have a bad experience with the hiring process? If so, this can be fixed, and then if you want to quit, you can quit while in a good place.

Now, if even after that you still want to quit and you can't stand the "industry" anymore, you could amortize the experience you have and use it in your real passion. What's your real passion if you don't mind me asking?

Re: Ask HN: Should I quit the field of software development?

#37

Sometimes, the interviewer will purposely give you a question beyond your reach. There are a few reasons. - To zero in on what you already know. - To see how you react in a situation where you don't have all the information. What is your attitude when you are in this situation? Do you shut down? Walk out? Or are you able to form open ended questions to get the missing information? In any type of job, you're always in…

I ask questions beyond the job scope in interviews, but I when the applicant looks nervous, I tell them that's what I'm doing. I'm often pleasantly surprised at the answers and it's one of the more useful aspects of the interview for me.

Re: Ask HN: Should I quit the field of software development?

#38
There is a lot to be said for the entirety of your question, but i'll try to focus on this since it stood out to me (plus the interest of time):

>System design rounds require me to solve problems that the top engineers in the world spend months on. One question I was asked was "How do you make sure that a celebrity's tweet reaches all of her followers in less than 3 seconds?". I had no idea, I have never handled that kinda scale. In fact most of my work experience is kinda vanilla and boring, so I generally have nothing much to draw on or much to talk about.

System Design rounds are going to be difficult. The idea isn't to give a correct, complete answer. It's to see how well you can reason about a hazy problem based on your current knowledge. Bram Cohen who wrote BitTorrent has this to say:

"My suggestion for learning software architecture is to practice. Obviously you can't practice it by doing hundreds of projects, because each one of them takes too long, but you can easily design a hundred architectures for problems which only exist on paper, and where you strive to just get the solution to work on paper. Start by modifying the requirements of a problem you're working on. What if the amount of bandwidth or CPU was a hundredth what it currently is? What if it were a thousand times? A million? What if you had a thousand times as much data? A million? A billion? What if the users were untrusted and you had to either prevent them from damaging the system or have a means of fixing things when they did? It doesn't matter if these scenarios are totally unrealistic, what matters is that they're different and that when you try to find architectures for handling them you take the inputs just as seriously as if you were about to start writing a system with those requirements for work. Try to find as many different approaches as you can, and come up with scenarios in which the stranger ones would be better." [1]

Secondly, "vanilla and boring" is a moving target. That question up there would for the most part be vanilla to senior backend developers, a little more than trivia and a waste of time.

You cannot say "I never handled that kinda scale". This is the wrong mindset to apply to any sort of problem solving. Start with what you know and get to the point where you have a list of knowns and unknowns. And for heavens sake, you have a massively powerful search engine. "Writing scalable systems" should be a query in your head right after you think "I don't know how to scale".

Talk about your vanilla and boring work. If you think it would make you feel better, focus on how it impacted the customers or whoever. It's perfectly fine to work on non-world changing things.

Lastly:

>I'll preface this by saying this field has never been my passion, just a profession I like.

Probably a healthy mindset, considering the amount of people in this field who chose it as a means of escapism from the hardships of every day life and convinced themselves in the process of coping with trauma that it's a passion. Passion isn't a requirement for good work, but some time spent learning the tech and being analytical in thinking about problems goes a long way.

And to answer your Q, ideally you should only quit if you don't like the day to day work and related reasons. Interviews don't represent this at all. It's mostly idiots on an ego trip.

[1] https://bramcohen.livejournal.com/4563.html

Re: Ask HN: Should I quit the field of software development?

#39
I suggest sticking with it.

If you do enjoy development day to day, and can get your assignments done, those are the actual skills you need.

Interviewing is another game entirely, and it sounds like you've had a lot of unfortunate interviews that were more about the interviewer stroking their own ego than finding competent programmers who can do the work.

There are jobs that don't have that kind of crazy running the interviews.

Spend a few hours brushing up on Fermi approximation and mapping problems to known algorithms / data structures / tools, since they're useful skills anyway and will help your interviewing technique.

Apply to lots of places, do lots of interviews, try to answer the questions as best you can, and don't worry about it when you hit interviews where they ask nothing relevant to your day-to-day work.

Good luck.

Re: Ask HN: Should I quit the field of software development?

#40

I'd like to give you a different view on the interview / question you mentioned. While it's certainly possible the interviewers are running the process badly (many are), pretend they have good intentions and answer to that. The tweet question is basically: can you think about performance. Let's say you don't know anything about queues or distributed systems. You can say you never worked at that scale. You can also sa…

> You can also say what you think would be the number of followers (millions+), what would be the time needed for a write you a database (~millisecond each) and why that won't match 3 seconds, so you know how much time you have per follower. While we are on the topic I am really curious to know how they solve it actually.

Twitter has changed this approach few times I guess, earlier it used to be simply insert tweet into a collection of tweets, and then when you load use timeline, look up the people they follow and find/merge those tweets. But it's going to create a lots of load on systems. Another approach is to maintain a cache of user's timeline(mailbox of tweets), when user posts a tweet, lookup all the people who follow that user, and insert the tweet into each or their timeline cache. results have be pre-computed, so less load. Both approaches fails when you have folks with lots of followers, so may be they use a hybrid of these approaches. this is Discussed in detail in "Designing Data-Intensive applications" book.
Post reply on HN