Live data from Hacker News

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

news.ycombinator.com

41–50 of 159 posts

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

#41

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.

My guess would be lots of distributed queues, some resources dedicated to heavy lifting of few vs random noise of everyone else, and storage layer which allows lots of append traffic without blocking. Maybe some storage special casing like "randos get their tweets serialised on your timeline, but because you're following Taylor Swift we'll just query that common feed in parallel rather than copying it".

They've got lots of engineering blog content, there may be a better answer here https://blog.twitter.com/engineering/en_us/topics/infrastruc...

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

#42
post #23

Most interviews unfortunately have little to do with the actual work and require significant practice to do well. > 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. If you're technically competent overall, you should be able to learn enough to make your way through this from a few ho…

> If you're technically competent overall, you should be able to learn enough to make your way through this from a few hours of reading and watching youtube videos.

I actually did read up a bit on it later. This may not be what twitter is doing right now, but in the videos i saw, this 3 second thing is not possible. You can batch process the tweets and use websockets or whatever to send them, or just let users get them when they log in to their accounts. That's what i read anyway.

I don't care to look much deeper unless I'm actually working at Twitter, and it seems that's my problem.

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

#43
Keep doing your best. I am not often involved in interviews but when I am I look more at how an applicant handles the situation more so than looking for a technically correct answer. Well except for the questions that cover fundamental knowledge. I expect those to be answered correctly. Regarding the tweet scenario - if you don’t know a specific answer tell them that but also reach back into your experience and describe to the interviewers of a similar challenge that you succeed with and how you solved that. The floor is yours to convey your strengths and passion. With that said I would personally hate to have to go looking for work. I am a sysadmin who honestly wears too many hats to be an expert in any particular field. Most of my knowledge is institutional and my expertise is very focused on the areas I need to know. Another thing I have learned during interviews is to look for someone that comes across as genuine and caring. That goes a long way in a team environment. As far as quitting the industry only you can answer that. To me passion is key to both excelling at and enjoying your profession.

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

#44

I don’t think I hate the field . I have my niche corner that I love doing. I tried to get out there and do something else and had the exact same burnout feeling you are having about tech interviews. Taking a break from this all for now. I cannot afford to spend a few months monkeying around leetcode to work on stuff that I know I will never need in the job. I’d rather spend that time with my family.

Wouldn't the higher salary translate to retiring younger = more time with family?

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

#46
post #16

You'll have to, soon or late. Sooner or later you'll start facing ageism. It is rampant. The interviewers will look younger, the interviews scarcer, the technology stack will move to a new shiny thing that is a rehash of ideas of previous fads of old, people will start using arguments like "fitting into the culture",... I read somewhere a long ago that software developers have an half-life of 6 years. If you're long…

I'm a 44 year old software engineer. I've done other things before, but I've gotten an offer every place I've interviewed. This simply isn't true. It might be true in silicon valley or some other hipster magnets, but there's definitely a market for those of us who have been around for decades and been solving problems for decades.

As an outsider to the industry, I have always wondered what the situation is like in smaller companies or for starting your own business to serve local clients.

Part of the reason why I ask is that most of the places that I have worked for respect experience more than youth, and couldn't care less if the firms that they were contracting work out to employed experienced developers in their 20's or their 50's.

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

#47

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…

I really enjoyed reading: Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems Book by Martin Kleppmann

Can't recommend it enough and it works through a lot of this talking exactly about twitter.

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

#48

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.

I don't work at twitter, but one thing you can know for sure is that the tweet needs to be distributed to multiple machines to meet this performance requirement. A single machine probably could probably send three million trivial messages in three seconds, but if you mix in any business logic it's not gonna happen.

What I'd do is have a shared highfanout queue. Once you have more than say 10k followers your tweets go to the high fanout cluster. You'd have hundreds or low thousands of machines, each of which serves a slice of consumers. When the tweet is sent, you write it to this queue. Each consumer is pulling from one of the shards. If you have a thousand workers that means each worker only needs to send a thousand messages in three seconds, which is very doable.

Only about 180k twitter users have more than 20k followers. If each users tweets every 200 seconds, which seems like a high estimate, then that implies a load of about 1kwps for this system, which seems doable, especially if you have a small intermediate layer of distributors which consolidates the write load.

That's just my sketch.

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

#49
Advice I give to anyone (with career options) that is considering this field is that serious work in this field requires significant professional level learning and intellectual abilities, yet the profession as a whole is effectively treated as "skilled labor". If you are serious about SE as a career, then within in 10 years, do one of the following:

1 - Start your own sofware development company. Do the startup thing.

2 - Start your own software consultancy business.

3 - Make an informed choice of a niche and become an expert.

Outside of the above, at most you can look forward to (in general) is either transitioning to management, or a continuation of what your are describing: a glorified blue-collar career. (White collar professionals with experience seeking employment do -not- suffer the same indignities that is the common experience of skilled workers in this field.)

Management is fine if that turns you on, but you will definitely not scratch your geek itches as a manager, so the question is: is wasting your intellectual abilities as a young person worth a "payoff" of ending up in a management role? I mean, if you're going to end up in middle management, wouldn't it be smarter to just cut the chase, get that MBA, and start your management career properly. Or is it perhaps worth a fun first 10 years of "free soda", less structured work environment, and the adolescent culture of software development? Your 30+ year old self will likely tell your younger self "this was a mistake". Seriously consider the fact that this is a field where inexperienced workers routinely dismiss experienced practitioners. The technical domain ignorance pervasive in the field is rather significant and one of the more surprising aspects of this industry. Knowledge and experience can actually be a liability in this industry and high level fakers abound.

There are many other possibilities, of course, but these type of opportunities (such as making a pivot to writing books on software development, etc.) are more about the individual concerned -- their drive, ambition, work ethics, social skill, etc. - than about software engineering in particular. But so are the 3 options listed above.

TLDR:

For certain individuals, career choice is incidental. They possess the necessary skills, ambition, drive, discipline to succeed regardless of the industry. For the overwhelming others, a career choice is a strategic choice. Software development as a career is a poor choice for the latter. If you are intellectually capable, but not a go-getter, pick another career that requires brain power.

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

#50
post #42
post #23

Most interviews unfortunately have little to do with the actual work and require significant practice to do well. > 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. If you're technically competent overall, you should be able to learn enough to make your way through this from a few ho…

> If you're technically competent overall, you should be able to learn enough to make your way through this from a few hours of reading and watching youtube videos. I actually did read up a bit on it later. This may not be what twitter is doing right now, but in the videos i saw, this 3 second thing is not possible. You can batch process the tweets and use websockets or whatever to send them, or just let users get th…

> I don't care to look much deeper unless I'm actually working at Twitter, and it seems that's my problem.

If you want to get a job, you probably just need to suck it up and spend some time doing things you don't want to do.

Post reply on HN