Ask HN: Should I quit the field of software development? - <AUTHOR> I have been in the field for a few years, mostly doing backend development.
I'll preface this by saying this field has never been my passion, just a profession I like.
I have been having an extremely difficult time with getting and clearing interviews. Screening rounds have become at least 2-3 hour long algorithm solving sessions which can range from dumb (requiring me to know some syntax that I am not allowed to look up) to extremely demanding.
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.
Also, I'm not talking about FAANGs here. I never even applied to them. I apply to basic CRUD development roles, half of them entry level, and even there, the grilling has become intense, if I even get an interview.
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.
I'm sorry if this is incoherent.
I'm sure the problem is  me, since other people are doing fine. 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. <comment><USER2> 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 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. You can talk about the problems (disk persistence is slow, network is slow, keeping more in memory is better), that having many processes / machines working at the same time will likely be the way to go. You can try to pull the interviewer into discussion about it.

You don't need to know the answer (let's be honest, the interviewer didn't know it in details either) to actually talk about why the problem exists and what you understand about it.

<comment><USER3> > 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.

<comment><USER4> I can't speak to how it's actually solved, but I can give a sketch from my experience. The game is generally to (1) consider denormalizing data and (2) rethink when you have the computer do work.

Denormalizing data refers to moving away from a model where you store one and only one copy of each 'tweet' in something like a relational database, to a model where you might actually store a separate copy of each tweet for each follower. That is kind of an extreme example of denormalization, but it's a good way to illustrate how you could make it near-instant for any user to load their twitter homepage. If you stored the interesting tweets of every person I follow in a table just for me, you would make 'reads' (loading my homepage) incredibly cheap, but writes (someone with a lot of followers tweeting) very expensive.

Those trade offs exist everywhere in a system like this, which is (2), you get to decide when you do work. If celebrities with a million followers tweet an average of once a second, but people load their feeds a hundred thousand times a second, it is entirely acceptable to do 10000x more work for a celebrity tweet posting. This is actually the same concept behind using indexes in relational databases, but done more explicitly.

My personal answer to this question would probably start somewhat space- innefficient. I would take each tweet and put it into an event processing queue which writes a reference to it into each followers feed. This sounds nasty, but it scales with the number of writes, not reads, and we have less writes, and it scales linearly with the follower count of the writer. I would then improve efficiency by thinking about dormant accounts, caching, and maybe doing a bit more work on read.

<comment><USER5> The other requirement worth thinking about is the 3 seconds. How many followers are going to be watching for that 3 seconds to matter. And how much slack can be in that? Could 1.5 million followers be sleeping and not need the tweet for a few hours or only when they next sync.

<comment><USER6> If it's a pub/sub model, you wouldn't care at all about how many were watching right? You'd just publish.

And for something like Twitter, you'd probably Publish but then also log to some kind of "Notifications" store, so if a user did care but was not actively watching, on their next subscription they'd receive the messages they'd missed.

</comment></comment></comment></comment></comment><comment><USER7> With over 20 years experience in the industry, and some products I have worked on visible in SuperBowl advertisements, I can honestly say during interviews I can count to potato.

Most recently during a live coding challenge I forgot to you, you know, occasionally run and test the code I was working on, and had one hour to complete.

I can also anecdotally report code challenges seems to have become a lot more common in interviews recently.

And yet, we are still lucky to be in an industry with so many opportunities which pay so well. After several months of interviewing, and failing pretty much every code challenge, while being a programmer over 40, I finally got hired. And can happily report things are going well once again.

My advice is train interviewing. Train not just solving programming puzzles, but also doing it under the gun. That's not easy to train for real, but try to get as close as possible.

And there is no harm in keeping your options open regarding a career change. If not the interview process, but the work itself ever starts to really make you unhappy, it might be time to switch careers.

<comment><USER8> > I can also anecdotally report code challenges seems to have become a lot > more common in interviews recently.

At least these are halfway representative of the job. It's a lot better than being told you're two inches tall, in a blender, and the blender's going to turn on in five seconds, what do you do.

<comment><USER9> I fly out. If they're going to make a completely unreal scenario, I'll use a completely unreal solution :)

<comment><USER10> i think that is the correct answer, reverse the blades and then jump over them so the air current forces you out like one of those indoor skydiving places

</comment></comment></comment></comment><comment><USER11> 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 off the mark. Most interviewers were just pulled from some normal day to ask some questions and often unconsciously see it as an opportunity to show off a bit. They have the keys and you need them.

That said, if you do not feel passionate, I would recommend playing around with some other areas like frontend or ML at home, on your own time, and see if any of them click.

<comment><USER12> 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.

</comment></comment><comment><USER13> Sorry for going offtopic

"How do you make sure that a celebrity's tweet reaches all of her followers in less than 3 seconds?"

Looks like the interviewer has atleast read the first chapter of "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems"

If you read and understand the above book, I am reasonably sure that you can crack most of the system design interviews.

<comment><USER14> And never again need that knowledge on the job you apply for.

<comment><USER15> I would agree with you if we were talking about leetcode style data structure/algorithm questions, but system design is almost always relevant. I found 'Designing Data-Intensive Applications' to be a useful book beyond interviewing.

Even if you are not working on a product that requires supporting millions or billions of reads / writes, knowing what is overkill and what isn't, for your project's use case is still useful

</comment></comment></comment><comment><USER16> I don't have any advice, but it's not just you.

This is my passion — I've been doing it since I was a kid and am ten years into my post-college career. I've been interviewing non-stop for six months and have been rejected at the end of every interview loop.

I'd leave the industry if there was anything else I was good at. Practically, if I do get an offer I'll just try to stay at the company as long as I can. I'm great on the job, but terrible in the interview (apparently).

<comment><USER17> > I've been interviewing non-stop for six months

Is this just market conditions right now? I'm guessing landing a job any time from 2010-2019 was easier?

<comment><USER16> I think it's partly market conditions, but also I think the interview process changed a lot in the past five years and I didn't change with it.

There are plenty of jobs out there, but a lot of competition. One place said they received over 1,000 applications for one role.

<comment><USER18> > There are plenty of jobs out there, but a lot of competition. One place said > they received over 1,000 applications for one role.

I don't get it. (Tech) companies out there are paying a lot of money to hire developers right now. How is this possible if they receive over 1,000 applications? If that were true they were paying peanuts because at least 1 in those 1,000 applicants will say 'Yes'.

<comment><USER19> Because it's not 1k qualified people applying to the job. Also, retaining engineers for more than one or two years is a problem our industry has.

Software Engineering jobs get applications from people all over the place. Our industry is "open" compared to similarly paid professions.

You wouldn't apply to a finance job without a relevant degree or experience, you need to go med school or pharmacy school for medical fields, you need to go to law school or at least pass the bar exam for law jobs.

Meanwhile I work with devs who studied Comp Sci, random liberal arts, other types of engineering, and some who dropped out of college entirely.

I think it's a net good that we don't gate keep the profession but a downside is that everyone applies to every job. For example, bootcamp grads are told to blindly apply to jobs. So are college seniors.

</comment></comment></comment></comment></comment><comment><USER20> I wonder if you're suffering with imposter syndrome - the feeling you're not cut out for the job and everyone else is so much better. I see you've asked similar questions to this since 2016. It's something most of us face in our careers and really sucks when it happens.

Look at some positives. You've been working in the field for a few years so you can clearly do the job. You're applying during a pandemic and the market is tough right now. You're clearly interested in tech or you probably wouldn't be hanging around on HN on a Sunday, and this in my mind already puts you above many others!

So what can you do? Apply for jobs that don't require algorithmic/systems interview tests. They do exist, I've worked for a couple! Or, game the system by studying interview questions (Crack the coding interview, competitive programming sites) so you're more prepared. Of course you could also look for another job in a different industry, but I don't think you really want to and are just a bit anxious with interviews. Finally, consider moving into SDET. A background as a developer makes the transition quick, you're immediately competitive compared to those without dev backgrounds, and salaries are similar. They don't tend to have the same interview questions.

<comment><USER17> > I see you've asked similar questions to this since 2016

That's good context. And to OP's point,

> I have been in the field for a few years...this field has never been my > passion, just a profession I like.

I've been programming professionally for 10+ years, 20+ when you add in college and what I did growing up. That, and computers are a hobby of mine, and I definitely have a passion for them, and I know a lot of stuff beyond my day-to-day work. I've worked for multiple FAANGs, at other big name's you'd recognize, and startups you wouldn't. I get past phone screens probably 80%-90% of the time and get offers 33%-50% of the time.

There are a lot of people like me in the industry. We're not a majority, but it's hard to compete with us, it's not helpful to compare yourself to us, but it's hard because that's what interviewers compare you against.

> Apply for jobs that don't require algorithmic/systems interview tests.

Yup. Companies also go easier on system design when someone has ~4 years of experience.

> Crack the coding interview

I can't remember which one of these I skimmed, but I didn't find any of it super helpful. I might be the wrong audience.

> competitive programming sites

Not the "competitive" ones, but if you haven't done 50 medium questions with some easy ones thrown in on HackerRank before doing a round of interviews, you haven't prepared. I'd actually avoid the hard questions because they usually involve a twist on one particular algorithm that will take a while to implement, so you'd never actually see it in an interview.

The important thing is to know your way around heaps, trees, tries, linked lists, graphs, etc.

I found this book helpful, but I read it specifically because I'm better at coding than algorithms. It's not great for knowing how to combine standard data structures to solve problems or how to traverse a tree.

[http://mimoza.marmara.edu.tr/~msakalli/cse706_12/SkienaTheAl...](http://mimoza.marmara.edu.tr/~msakalli/cse706_12/SkienaTheAlgorithmDesignManual.pdf)

<comment><USER21> > We're not a majority, but it's hard to compete with us, it's not helpful to > compare yourself to us, but it's hard because that's what interviewers > compare you against.

This makes me so sad. I've prepped hard on leetcode for 6 years (since freshman year of college) and I haven't had much to show for it but a total compensation less than Stanford new grads despite two years of tenure. I wonder if there's any point of even living most days.

<comment><USER22> Yo buddy, no need to compare yourself with others. You should compare yourself now with your past self six years ago: are you a better person now?

If you've spent 6 years doing leetcode and you're still bad at it, then perhaps realise that such problem solving games are not for everyone. Like sudoku. I prefer the word game where you find the word in a grid and I hate crosswords.

We're all different and that's what makes us unique and interesting.

<comment><USER21> > You should compare yourself now with your past self six years ago: are you a > better person now?

Kinda? I had more potential then, I could have done Facebook after sophomore year and had my career set for life. Instead I failed that interview and my career has been treading water because I had to join Amazon out of undergrad.

Its apparent that I"m not good at these things...the problem is my happiness and financial security are related to them and I'm not doing well!

<comment><USER9> > I had to join Amazon out of undergrad.

You're suffering for a lack of perspective or gratitude. If you're a millennial, realize that you were probably told that you could do anything (and thusly everything), and the effort it would take was trivialized... Both are incorrect. You most likely can do 1 thing super well and it's going to be a shit ton of work if you want to compete against those equally competent.

<comment><USER21> In what way? I grew up Asian and went to a state school, I got the message that I was incapable of accomplishing anything from an early age!

<comment><USER17> > state school

5 of the top 10 CS programs are at state schools.

> I got the message that I was incapable of accomplishing anything from an > early age

Apparently you took it to heart and can't recognize what you accomplished.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> 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.

<comment><USER24> 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).

<comment><USER23> For sure, and it's definitely something I never would have planned or expected for myself. It was also partly influenced by COVID, and further compounded by pretty rough break up.

But the funny thing is, I really feel more comfortable and confident than when I was "succeeding". I used to feel so guilty about a one line code fix taking weeks to deploy, or I used to feel so guilty and terrible for not paying attention during scrum and refinement and all those meetings. I always felt like I was working too hard and not hard enough.

Farming has this reputation of just interminable toil and physical labor, combined with high costs for agro chemicals. But then you read about farmers like Gabe Brown or Chris Trump, idk.

It only takes three nonlinearities to create chaotic, non predictable behavior.

<comment><USER25> > I always felt like I was working too hard and not hard enough.

Wow, you've succinctly described how I feel about my dev career spot on.

<comment> non-entity Not sure if its the exact same sentiment, but I've started to describe my work as "hard in all the wrong ways".

</comment></comment></comment></comment></comment><comment><USER26> Were I to ask these questions in interview, I think I'd be looking for the candidate to have a bash, do some napkin math, come up with some contraints/failure modes and to communicate their assumptions well.

> How do you make sure that a celebrity's tweet reaches all of her followers > in less than 3 seconds?

In this example, I'd be looking for you to have fun, ask a bunch of questions and to make some sensible decisions based on the information you have.

To be honest though, it does seem strange to ask for a "basic CRUD development role". Admittedly, if I had an experienced candidate apply for an entry level position, I would be a little leery. Why do you think you're entry level despite a few years experience?

I'd maybe take a break from interviewing, and use the time you're currently spending on interview prep on building something as a personal project. If you enjoy it, then hang in there. If not, maybe you should stay at your current gig (you don't mention anything about this) and figure out what you do enjoy.

P.S. I'd also stay of Hacker News for a while. While I love it, I will admit that there's a higher degree of obsession here than in wider industry.

</comment><comment><USER27> 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 situations where you don't have all the answers, and need to work with others with a positive attitude. I don't know how you are going to turn this around, but maybe looking at the situation from another point of view is the first step.

Just the fact that you are asking the questions tells me there is hope.

<comment><USER28> 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.

<comment><USER29> I would much appreciate the info that that's what was happening. The context helps to calibrate correctly.

<comment><USER28> I'm sure it would make you less nervous (which is why I tell them), but would it actually help? Either the role is above your skill level, and it won't matter how you answer the questions, or it isn't and doing your best will be good enough.

Either way, there's no need to be nervous. IMO, you should focus on just answering the questions as best you can.

<comment><USER29> Helps as is in is this person looking for a specific bit of trivia that they'll write me off for not knowing or is it just an exercise to see how I reason my way through unfamiliar territory.

The fact there are so many hidden requirements you're trying to tease out is where the nervousness comes from.

</comment></comment></comment></comment></comment><comment><USER30> [these are my opinions and not those of any of my current or past employers].

I feel for ya. And I think while passion for software is really great to have, given how our interviews are structured it won't necessarily help you clear them. Our interviews are now all about process. There is such a huge supply of entry level talent (crazy compensation and low barrier to entry) that companies are looking for a standardized way of measuring candidates. This means preparing for interviews will have nothing to do with your role (unless you are widely regarded as a specialist/expert in your field). The good news is since this is standardized it can be hacked by a little trick called _preparation_. I can assure almost every question in a tech interview can either be found leetcode or in the system design primer. All you need is a month of preparation (or make monthly interviews a hobby like going to the gym so you stay sharp). It is all about mastery and mastery needs consistent practise.

Instead of thinking you cannot do it, I'd encourage you think in a different way. What is keeping you in this field (money? Friends? Domain?) Is it enticing enough for you to put in the effort to stay with the pack for the rewards?

</comment><comment><USER31> Honestly, it's not you.

These days I contract so it never comes up - but I used to resist requests to help out with hiring other than putting in a good word if I know someone personally. I hated interviewing applicants as much as sitting interviews myself.

There's not a great way to find out in fifteen to thirty minutes if someone is competent or a good fit so we resort to asking these nonsense questions because it's the done thing. It's a bit like Agile. There's no good reason to do it, so we just do it until someone comes up with something else to do.

I do pretty well at interviews these days if only because I'm relaxed (contracts are _usually_ short-to-mid term so I have a very "it's just one gig" attitude and tend to crack jokes and ask about the team rather than the project - I'm pretty sure I can do the work, I'm not sure we'll get along 8 hours a day so that's more important for me to find out).

To your question, if you're thinking about throwing in the towel - I wouldn't if it's just because of a problem of interviewing.

You have experience and are therefore clearly capable - but life's short and as you've said it's not your passion you might be happier doing something else.

So the best answer I could give you brings you back to where you started I'm afraid:

Only if you want to.

</comment><comment><USER32> I was in the same boat. I decided to try the research software engineer path (not scientific computing, they are different). The work here is reasonable: Build a maintainable piece of software, no need to scale for billion users or sth like that.

The downside is that the jobs are contract-based, as is every academic jobs.

So I'm thinking of switching to a more practical, less competitive driven field as well.

</comment><comment><USER33> So your first mistake I believe is to think the interviewer is just testing you on a narrow exercise.

Approach it differently: most of the time they are rooting for you! Hey you might be their future colleague. That in mind, focus on tackling the exercise showing how you think about it. That's mainly what they want to see and if you are transparent with them about the fact you don't know well this layer so it might be a little bit handwavy it is fine, manage expectations and when you guessed or rebuilt something existing right it might even play in your advantage.

On the passion side of it, I have to be blunt, it is a self fulfilling prophecy here. If you are not interested by the field and related fields, the lack of curiosity will impede your growth. You won't get the next interesting wave, you'll stay on mainly boring things and this will reinforce your feeling that the field is boring. Computer engineering is a non stop learning endeavor.

</comment><comment><USER34> For the system design interview I would blame your recruiter for not preparing you for what to expect in the interview. Larger companies like FAANGs actually do a very good job at that. The Kleppmann book others have mentioned is of course excellent for these interviews, but here are a couple of other resources for a crash course:

1\. [https://github.com/donnemartin/system-design- primer](https://github.com/donnemartin/system-design-primer)

2\. [https://www.educative.io/courses/grokking-the-system- design-...](https://www.educative.io/courses/grokking-the-system-design- interview/)

</comment><comment><USER35> 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 hours of reading and watching youtube videos. That's what I did when I was in the same situation, and I passed the architecture interviews at multiple FANGs.

Same for the coding questions. You need to spend time reading interview books and doing leetcode.

<comment><AUTHOR> > 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.

</comment></comment><comment><USER36> This doesn't address your question, but: don't be afraid to push back during an interview. Too often, interviewers get away with questions that have no relevance to that particular role. Also, it's ok to turn down an interview request if it doesn't meet your criteria. This can be hard especially if one isn't employed currently, but it is better to set your expectations beforehand, rather than waste hours/days.

</comment><comment><USER37> Interviews, and in fact, most first meetings between people, are often shibboleths: a perfunctory test of similitude to prevent outsiders from getting in and causing unnecessary angst by thinking differently. (In Biblical times, apparently, the word "shibboleth" could not be pronounced by The Other Tribe, who pronounced it "sibboleth", and were denied entry or worse, killed by the guards).

If you're OK with this, then interviews can be an enjoyable game with rather predictable behaviours (and even predictable questions, probably taken from "Cracking the Coding Interview" or equivalent online course). You just have to learn to jump through the hoops. Just look at leetcode or google, "how to pass tech interviews" and pay up for a course on it. Just remember to not roll your eyes during the interview. (The real issue arises if you start hating this process or the thinking behind this in the industry).

You could get lucky and find employers / interviewers who assess general intelligence, or better, find employment through your network of friends, ex- colleagues, and mentors, which would bypass this process.

All the best!

</comment><comment><USER38> 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.

</comment><comment><USER39> 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.

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

<comment><USER39> I used to think so, when I was single and working more than I should. But, I have a one year old at home now, and I'd give anything to reduce stress elsewhere and spend more time with him. He is growing so fast right in front of our eyes, and I do not want to miss these moments in our lives.

Of course, I'm not talking about slacking to the job to use family time. I'd like to work in a low stress environment and shut work off when I need to. Interview prep demands me to spend a lot of hours on toy problems in leetcode which of course I can't do at my work time. So, I decided to not do it, atleast now.

</comment></comment></comment><comment><USER41> 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.

</comment><comment><USER42> [https://github.com/poteto/hiring-without- whiteboards](https://github.com/poteto/hiring-without-whiteboards)

</comment><comment><USER43> no don't quit. Just table this thought for a 1 year and do the following in the meantime.

1\. Grind leetcode 2\. Grokking system design github

focus hard on these for 1 yr and try again. If you are still having hard time then yes quit by all means.

</comment><comment><USER44> Recently i interviewed a guy that failed all the questions. During interview.

I know he can do it. So we hired him anyway. He turns out to be really good and started contribution with in days.

Corporations really needs to know what kind of problems they are trying to solve. And see if the candidate is right fit for the job.

<comment><USER29> What signals did you use to determine he could do it if he failed all the questions?

<comment> X-Cubed One of the most important things to discover as an interviewer is a candidates thought process. The actual solution is often not that interesting, but how the candidate rose to the challenge, what questions they asked of us to improve their understanding, and how they explained their solution tells us a lot about their work attitude. While it would be great to present them with problems from our everyday work, that often requires too much background knowledge to cover in an interview.

The aim with these questions is to discover what it would be like to work with the candidate.

</comment></comment></comment><comment><USER45> As someone who might quit the software industry myself (after 30+ years) very soon, I can give you a lot of reasons why that might be a reasonable decision ... but the interview process, as bad as it often is, isn't one of them. There are still places that haven't succumbed to the mania for interview processes that are supposedly meant to minimize false positives and/or eliminate bias but have really become more of a hazing ritual. You just need to keep trying until you find one. It took me a _long_ time to find my first programming job, when I had neither degree nor (obviously) experience, but I kept at it and eventually got my foot in the door for what turned out to be a pretty good career.

It might also help to remind yourself that often the goal of these exercises is not actually to extract a technical answer but to observe how you think through a new problem, ask clarifying questions, handle disagreement, etc. Just stay calm, stay personable, ask questions, be willing to say "I don't know" if that's the case, and remember that another person's hasty judgment is a reflection on them rather than on you.

<comment><USER46> How come you might quit the industry?

<comment><USER45> In a nutshell, because I feel like I can. I've done this for a _long_ time, often at high intensity, and I'm feeling like it's time to do something else. Almost everyone will get to this point sooner or later, no matter how passionate they were when younger. The relevant part is that pursuing one's possibly-non-remunerative dreams becomes a lot easier when you're sitting on years' worth of income from working in tech. Quitting too early foregoes that opportunity.

</comment></comment></comment><comment> non-entity For what's its worth this was my passion and I'd leave the field if I could, for a number of reasons. Just realize though that if you leave theres a high chance of a pay cut.

</comment><comment><USER47> The interviewers are not necessarily waiting for you to memorize or come up with a working solution, but for you to prove that you can be a self-thinking, communicating member of the team. Especially if you apply for a CRUD-app development role.

To provide a perspective from the other side of the table: I conducted a good share of job interviews for my company and would likely pose a comparable question to the applicant mostly to determine a) their ability to grasp a problem and to reflect on the degree of their understanding of it, b) test their behavior in situations that are over their head and c) test their ability to come up with and discuss solutions based on reasoning and the facts given.

For a) I would expect the applicant to identify what information is missing and either to communicate assumptions for the white spots on the map or to pose relevant questions. Regarding b), I would expect the applicant to openly state if they feel that the challenge is above their head _but_ try to give me a solution nonetheless. Which brings me to c): I would not expect a working solution; not even a complete one. I would like to see whether the applicant can work on given input and outline the reasoning behind the suggested solution in a coherent and understandable way based on that input.

My bottom line for you would be, that if you think what I said might apply to the interviews you experienced, you should try to re-frame such questions for yourself. Unless you see yourself unfit to adapt your approach (which I do not think, as ASKing-HN is proof for existent self-reflection), I see no reason in what you wrote that indicates that you should leave the industry.

</comment><comment><USER48> I feel your pain.

One thing I would suggest is that programming/software engineering is a broad church. Not everything is large scale backend work. I personally get a lot of satisfaction out of frontend development, and the expectations there seem to be a lot less about hypothetical google-scale nonsense that will never happen in the role, and more "do you know the tech?". Despite what people say/think modern JavaScript/typescript is good to work with and in modern web apps that are 10s of thousands of lines of code there is often a surprising amount of actual "engineering" required.

That said, sometimes just knowing some of the basics might be enough compared to other candidates. E.g. for the tweets in 3 seconds thing, you could talk a lot about horizontal Vs vertical scale and what might mean etc etc and go from there rather than a "sorry I have no idea". You don't always need to be "correct" but just show you are aware of the hypothetical solutions to their hypothetical questions.

Good luck. Hang on in there. I appreciate this can be high stakes for tou, while posting an answer here in a comment is zero stakes.

</comment><comment><USER49> I don't have recruiting experience in the field on either side in the past 5 years and likely am in a different country anyway, but from what you wrote I'd tend to believe that your selection of companies you applied to was a bit unlucky/wrong. Try smaller companies that aren't 100% IT focused so they have no pressure to hire rock stars to fix their issues with their 800 mediocre software engineers.

</comment><comment><USER50> This type of interview is the equivalent of the SAT. They don't measure absolute talent. It doesn't mean you are a bad programmer or even a bad systems design person. It doesn't mean you might not be a good manage, executive or anything else either. What they measure are skills in a finite domain.

Fortunately, these interviews are coach-able so it might be worth paying for a coach. It will be one part learning things (likely again) and learning how to demonstrate "you know what they want you to know" and if you don't that they know you would know how to figure it out and are motivated to.

These types of interviews are kind of an "abberation" too. The traditional way to get a job is to ask questions of your interviewer and be genuinely interested. Look up the social and psychological aspects of interviewing.

</comment><comment><AUTHOR> So thanks for the inputs.

I got that system design book, but i feel like algorithms and systems design together would require 3-4 months of preparation at least, and I am sure to lose my visa by then.

Some people asked me about my passion, I don't want to reveal that but it's something that normal people would consider 100x more competitive than software, and honestly, I don't feel that. It feels like I'm closer to making it in that than software.

In my passion, to get hired you get judged exactly on what you do, so it's trivial for me to get hired. Everyone asks for your portfolio, I have a good one, and that itself is a major foot in the door.

I am not sure if I will continue in the field, but I am sure what little interest I have in it is waning daily.

</comment><comment><USER51> You are lucky software development is not your passion — see the post about BS jobs. I still code because I am passionate about coding. I am also passionate about sailing. I once asked a fellow sailor (who was really amazing at sailing) why they didn't sail for a living? They said working at it for money would totally ruin their passion for sailing.

"How do you make sure that a celebrity's tweet reaches all of her followers in less than 3 seconds?" I really don't care, and neither should you — that's a bad gig, but I really liked reading the stories about your interview experiences. Bring a humble piece of your CRUD code to the interview, and wow them. If you still like software development, keep doing it as long as it is a good gig.

<comment><AUTHOR> > Bring a humble piece of your CRUD code to the interview

Nobody ever looks at my github. I don't know why this myth is running around that you need to have an active github.

I put all my work that I did on my startup there. It was 99% me since I was the only engineer. I frequently invite interviewers to look it up esp if they are looking for someone who has worked in that tech stack.

Never has anyone looked at it, asked me anything about it.

The people I have actually seen get jobs were those who

1) Applied in a spray and pray fashion. Mass spamming. 100+ applications a day.

2) Ground leetcode like their life depended on it.

All those guys with amazing projects and great github profiles struggled more than those who simply did leetcode all day.

</comment></comment><comment><USER52> 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.

</comment><comment><USER53> Rule #1 of software industry: Never judge the work nature by the interview. Cracking interviews is a different skill which is completely different from what you need to solve real problems for real people.

If you quit now, it means the gatekeepers have won and I don't think these gatekeepers as a good enough reason for someone to quit. As to when to know to quit: there will come a time when you will burn out. When writing code doesn't excite you as much as it did before. When you find yourself in this zone for say 3 weeks in a row, take a break and try something else. There's a fifty fifty chance you'll comeback and about the same odds that you'll find something else interesting too.

</comment><comment><USER54> The interview process for software engineering has been broken for some time. Don't give up.

</comment><comment><USER55> I'm over 10 years in and it's worse for me. When I was less experienced I had problems with technical interviews and got rejected for any mistake or slower- than-expected answer. Now I have the experience and ace the technical interviews, but get rejected because of salary or culture fit (i.e. the interviewer doesn't like me).

You can't win in this field. Hiring is so random that the main advice everyone is offering is to apply everywhere and pray. I regret choosing it.

</comment><comment><USER17> > I have been in the field for a few years, mostly doing backend development.

Have you reached out to former colleagues to see if their current companies are hiring and if they'd refer you?

</comment><comment><USER56> > _How do you make sure that a celebrity 's tweet reaches all of her followers > in less than 3 seconds?"._

On the receive side, sample the current time, subtract 2 seconds, and adjust the message time stamp to that.

The recipient of a message from a celebrity has no idea when it was actually sent; they are not engaged in a real-time chat with that celebrity via another channel.

</comment><comment><USER57> The job market is exceptionally tight right now, so don't take it personally. I doubt anybody is giving good answers to stupid questions.

The quizzes and puzzles style of interviewing is terrible. Don't stress about it. Just be yourself. A good answer to most questions is, "I'd look on stack overflow and some blog posts to see what other people are doing." If they don't like it then you probably wouldn't enjoy working there anyway.

<comment><USER58> You must have been popular in school. I grew up playing with rubik's cube and tavern puzzles. Programming interviews are designed to find people like me.

<comment><USER57> I like puzzles and quizzes plenty but it has nothing to do being a good programmer.

</comment></comment></comment><comment><USER59> Try applying for roles outside of tech companies if you haven't already. It can potentially be a lot less stressful while still being fulfilling and paying well.

<comment><AUTHOR> I apply to insurance companies, banks etc, roles which are not glamorous.

Same deal there, in fact I just bombed another test. Had to do a whole bunch of things to a graph (4 part thing) in 45 minutes.

One look at the question and i knew I was toast.

</comment></comment><comment><USER60> > System design rounds require me to solve problems that the top engineers in > the world spend months on

Usually with these they just want to see how you think. Nobody's really expecting a complete answer, much less something you could go implement and have it solve the problem flawlessly from the get-go. They just want to watch the gears turn; don't be so hard on yourself.

</comment><comment><USER61> What are you passionate about? Find out what that is and see if they can use engineering at all. You'd be surprised at what you will learn to do the thing you love. We all have things about engineering that we don't necessarily like but that isn't any reason to give up. Keep trying, I hear the market is hard right now due to some type of pandemic.

</comment><comment><USER62> The challenge of quitting software is clearing stating what other job you would like to do. I just recently discovered there are many police officers who were former lawyers that quit the law out of frustration and enjoy policing so much more.

</comment><comment><USER63> Sure do something else for a while. In my experience, skills transfer well by experience. It's experience that counts.

Sounds like you're pushing a rock uphill and you need a change. Good luck.

</comment><comment><USER64> 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 past that, better really start acquiring other skills.

<comment><USER65> 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.

<comment><USER66> Do you stay current?

I see resumes for similar aged people who know cold fusion and Delphi, and those that know JavaScript and Elixer.

I suspect interviews go very differently for the two groups.

<comment><USER65> Absolutely. C++, C, Java, Python, learning Rust now. Working on another MS just for fun.

I don't do web dev so I don't give a shit about javascript.

<comment><USER66> Yah it doesn't mean you need to know everything, but you have to know something current or I think life gets hard for you..

</comment></comment></comment></comment></comment><comment><USER67> 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.

<comment><USER68> You're saying that riding the train of being a very solid generalist doesn't work past a certain age?

It may not be exciting, but don't you think there are lots of 45-55 year old Java backend engineers that get paid pretty decently? (140k-200k)

</comment></comment><comment><USER69> Just that you're asking this question strongly suggests you should not.

I worry about the horde of people who never ask. How do we cull their numbers?

</comment><comment><USER70> in the same boat

</comment><comment><USER71> I don't know if you should quit or not, but I do think you're mostly just psyching yourself out here. I can't see your actual interviews, but I'm just guessing a little based on your example.

On the 3 second tweet time question, I think you're just getting anxious at the thought that they might expect you to replicate thousands of engineer- months of work in a 20-min interview session. Nobody sane expects you to do that. If I was asking that question, I know nobody's gonna build Twitter in 20 minutes - what I want to know is how you think about and attack the problem.

I've never worked with anything Twitter-scale, but I might attack it like: How many followers are we talking about here? Okay, let's just start with a simple, dumb system and build it up. Simplest thing I can think of is a basic CRUD application backed by a Relational DB. SQL joins to get the tweets from your followers. You'd have to make a new request and new query manually to load new tweets. You could auto-poll, but that'll get real hard on the DB with even a modest number of users trying to refresh semi-rapidly. Maybe we can have a system where a single DB is still the source of truth, but there's a parallel system to load new tweets faster for those watching. Could maybe use websockets or long-polling for web clients. Let's build some separate servers for that websockets traffic. I'm pretty sure that as long as there isn't that much overall traffic to any one watcher, we can handle a good number of connections on one server, so we don't need a ton of them. Maybe creating a new tweet still adds it to the DB normally, but also triggers a background job, so the tweeter still sees fast response time. So we've got a background job going, and a bunch of realtime connection servers that are maintaining connections for specific users. We've gotta connect them somehow, send a message from the background worker to the realtime servers to send the tweet to connected clients that are following that user. Now let's think about how that would work...

Basically, show that you can examine the problem and come up with a few possible solutions and think about the trade-offs of them. I want to hire the engineer who can do that for any problem set in front of them. It's much harder to justify hiring the one who just has a blank stare for anything they don't have experience with already.

And for the record, that question isn't inherently bad IMO. But it would be a bad interviewer to just ask it and stare at the poor nervous candidate who has no idea what you want. A better interviewer would make it more clear what they're looking for, and help them down the first few steps of what I just went through above until they get the idea. Ex: So let's say Twitter 1.0 is a basic CRUD DB app. What might the DB schema look like? What's going to happen in terms of DB queries when we try to render a timeline for a user? What's going to happen if they all start hitting refresh every 10 seconds? If we want users to be able to see tweets faster than that, what might we do?

</comment><comment><USER72> 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](https://bramcohen.livejournal.com/4563.html)

</comment><comment><USER73> 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?

</comment><comment><USER74> A bunch of people will tell you you just have impostor syndrome and 10x programmers are a myth and don't believe everything you read about Silicon Valley and blah blah blah.

I dunno guys, maybe some of these people really should try to do something else! It is no shameful thing to leave the field of software development. We've had a huge influx of people and interest to our field in recent years, is it really so crazy to think that some of those people and some of that interest is not well-placed?

</comment><comment><USER75> There must be something else thats blocking your way. I did a round of interviews with top notch distributed systems teams that deal with the kind of scale youre describing. All FANGs or similar ranked companies, with 400-600k / year offers. I have no experience in backend programming of distributed systems and every interview I started with "I don't know much about DS: Ive only read a couple books, but here's how I'd solve this problem". Got offers from every company, some chased me for a few months after. Perhaps the trick here was my credentials (in an unrelated field), ability to bullshit my way thru and the skill to be likeable, which is really finding something in common with interviewers.

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

You need to realize you're competing with people for whom programming really is a passion.

Also, perhaps more important, ask yourself if, at any particular time, the programming job market is a seller's or a buyer's market. If it's a seller's market (meaning favoring the programmers), after a brief interview employers will take you on as an intern for a week and see if you can produce results. If it's a buyer's market, the employer will ask hypothetical questions having little to do with actual programming, in a process that may seem to be intentional discouragement. From your description, your interview fell into the latter category.

The intern approach addresses a well-known problem in the field -- interviews don't efficiently identify productive programmers, they identify whiz kids. This is why the intern arrangement has become more popular over the years.

But the bottom line: if find yourself asking whether you really want to be a programmer, chances are, you don't.</comment>


Jeff Atwood Finally Jumps the Shark - <AUTHOR> http://www.kevinwilliampang.com/post/Jeff-Atwood-Finally-Jumps-the-Shark.aspx

<comment><USER2> I'm getting a bit tired of these people, they post stupid mindless entries that make the whole blogosphere shake like they know everything about programming and their word is holy. They argue with common practices or beliefs and all of the content can be summarized to: "there's this thing, and there's the exact opposite, but _you should try be in the middle and take the best of both worlds_ ". Every single one of their posts boils down to that. Then comes a follow-up, and a follow-up to the follow-up, and here I am making a comment about how stupid I think their blogs are.

Come on, there's much more interesting people out there, don't focus on this nonsense.

<comment> old-gregg That's precisely why I don't want NY Times or WSJ or Washington Post to "die" and why I have never believed in "citizen's journalism" and "user generated content".

Because citizens and users aren't producers nor journalists, they're just bored programmers dying for a drop of publicity.

<comment><USER3> > That's precicely ... why I have never believed in "citizen's journalism" and > "user generated content".

Ah yes, only people with formal training have good ideas. Everyone else should step aside and make way for The Real Authors.

> Because citizens and users aren't producers nor journalists, they're just > bored programmers dying for a drop of publicity.

Some people enjoy writing. Not every person who goes fishing on the weekends needs to be a commercial fisherman. Similarly, not everyone that writes need be a professional author.

<comment> old-gregg Who are you replying to? Certainly not to me. My words you've picked for quotation do not correlate to your responses at all.

I didn't say people with ideas shouldn't be writing and having blogs. I simply said they aren't journalists and they can't replace a group of professionals, i.e. folks who're doing it full time and have certain resources unavailable to a guy with a laptop.

Moreover, I didn't say a word about "formal training". BTW not all professional journalists have a formal training.

Don't try read between the lines and don't argue with imaginary opponent please. Besides, how exactly do you picture the world without "traditional" media? _Links to what_ you're going to be posting to HN or reddit or digg then?

</comment></comment></comment></comment><comment><USER4> If you think about programming from the Dreyfus level perspective, in the manner of the Pragmatic Programmers, the principles are attempts by people working at the wizard level to try to communicate some of the things they do intuitively to people at other levels of learning. What Jeff Atwood is overlooking, is that these are principles, so they are not targeted at the novice level practitioner, who needs step by step instructions, not principles. Rather, they are concepts for more advanced programmers to examine so they can be aware of them the next time they encounter a similar issue. The question of whether to add a method to an existing class or create a new one, for example, happens all of the time in programming. It can be helpful to see how others have approached this problem so that you can use their experience to form intuitions that reflect situations beyond the ones you have encountered.

Joel Spolsky's dismissal of these rules is rather insulting from that perspective...but actually, he has formed his own intuitions and famous little sets of rules for how things should be done. Complaining that the principles of OO design, which aren't just Robert Martin's, but come from many sources, are too pedantic seems hypocritical.

Oh well, like the other people said, it's an offhand comment on a podcast, who cares? I can only imagine how much stupid stuff would come out of my mouth if I had to blather on about programming for an hour every week.

<comment><USER5> I agree with your basic point (I upvoted you from zero to one. What's with you getting a zero score? !!), but

"principles are attempts by people working at the wizard level to try to communicate some of the things they do intuitively to people at other levels of learning"

Thinking of Robert Martin (Or Ron Jeffries or most of the agile consultant crowd) as "wizards" to learn from is hilarious. I've noticed that most of these people have no "wizard level" code or achievements to justify their role as "transmitters of wisdom".

A "wizard" should (imho) be able to _do_ magic, not just talk about magic or write books about (how othe rpeople should do) magic.

When I think of "wizards" I think of people like Linus Torvalds or John Carmack or Peter Norvig or our own PG. In my opinion, one can learn more form one page of wizard _code_ than all this abstract talk of "principles of coding" from people who haven't written any top notch code in years, if ever.

<comment><USER4> "I've noticed that most of these people have no "wizard level" code or achievements."

I agree in general, but I was talking about Robert Martin in particular. Check out his code: <http://github.com/unclebob/fitnesse/tree/master> It's really clean. While the guys you mention have been very effective and productive programmers (maybe by having better ideas and writing more useful applications), their code accomplished really new things, as opposed to finding better ways to do old things.

Norvig wrote some good books, but I never really got the sense of how he approaches a problem from them, although I did like the AI stuff quite a bit. Martin's "agile software development" is really good. I don't know why I benefit more from a little analysis on top of the code reading, but I think it helps me put a mental framework around stuff more quickly. Anyway, you've got to love a guy who writes a book called "UML for Java Programmers" that simply trashes UML...

<comment><USER5> "Check out his code: <http://github.com/unclebob/fitnesse/tree/master> It's really clean. "

It is decent certainly, but nothing very ground breaking (imo) which is what "wizard" would imply. In no field of endeavor I know do we call people "wizards" for mere competence. The term is (imho) reserved for people who do ground breaking things / display _astounding_ levels of competence/performance. Iow, someone isn't a "wizard" musician just because he knows his scales.

You express this much better as "their code accomplished really new things, as opposed to finding better ways to do old things"). May be we just understand "wizard" differently, which is completely all right.

"Norvig wrote some good books, but I never really got the sense of how he approaches a problem from them, although I did like the AI stuff quite a bit. "

I learned quite a bit from his python code, specifically some of the AIMA code, and also his spelling corrector (<http://norvig.com/spell-correct.html>) and sudoku solver (<http://norvig.com/sudoku.html>).

How I learn from such examples is (1) I read the writeup to get a basic idea (2) I write my own version (in python for the spelling corrector example) and (3) see what differs between my version and the "wizard"'s.

Specifically to answer your "I never got an idea of how he approaches a problem from them"

Firstly, I wasn't speaking of Norvig's books but his _code_.

But let us speak of books- Have you read Norvig's "Paradigms Of Artificial Intelligence Programming"?. The whole book is essentially Norvig programming "blow by blow" finding mistakes and reversing design decisions and so on. I found it very useful to get some insight about his thinking and programming style.

Also Norvig does have some interesting thoughts on how to code in <http://norvig.com/luv-slides.ps> [postscript] where he talsk about how he iterates between an english description of an algorithm and (lisp) code till he gets it right.

All the people I mentioned (PG, Norvig, Carmack, Torvalds) are top level _programmers_ (vs being people who make living from selling - in one form or another - programming methodologies telling _other people_ how to code)and have publicly available "wizard level" code to learn from.

Robert Martin does write publicly available code - as does Kent Beck with Junit- so all due credit to them but most other agile "gurus" know jack all about coding at least as evidenced by their publicly available code. That said, I don't find Martin's code to be particularly inspiring as compared to the other people I mentioned. I find Martin's code to be _competent_ but not "wizard level". I agree that this is largely a subjective judgment. YMMV.

As I said in my earlier post, I largely agree with your original point.

</comment></comment></comment></comment><comment><USER6> One of the coolest things about the internet is how people rush to be the first to declare that something has jumped the shark.

Wait, that's not cool at all. That's just lame.

Anyhow, alas, it was all for nought anyhow as kevinwilliampang.com has been beaten to the punch, repeatedly, as a quick Google search will show. '"jeff atwood" "jump the shark"' comes back with 267 results, not all accusing Jeff of jumping the shark, but enough to make my point.

Thinking hating on things is cool is for lamers. (Or some phrasing like that.)

<comment><USER3> I agree with you, but Jeff Atwood is a really harmful influence. He just doesn't know anything, but continues to make stuff up and pass it off as fact.

He can write his blog the next time he writes some code to go with it. Or does some research. Right now, the only reason he is popular is because he says what people want to hear. That's pandering -- not intellect.

Anyway, I guess I don't care. I realized a long time ago that most people are stupid, and stupid likes to travel in hordes. There is plenty of real education out there for people who seek it.

<comment><USER7> Is it the form or the substance of jrockway's comment that gets it downmoded? (pure curiosity)

<comment><USER3> Incidentally, after you posted that, it got modded up.

Upon further reflection, it wasn't really that great of a comment.

</comment></comment></comment></comment><comment><USER8> See this incredibly effective satire of Jeff's daily inanities: <http://blog.wekeroad.com/blog/nothing-to-say/>

<comment><USER8> I submitted it a week ago when it was published, but it fell right off of the new page without being voted up: <http://news.ycombinator.com/item?id=465886>

</comment></comment><comment><USER9> Joel Spolsky: _Yeah. And the worst thing that happens is that you get people that just stop thinking about what they're doing._

Jeff Atwood: _Rules, guidelines, and principles are gems of distilled experience that should be studied and respected. But they're never a substute for thinking critically about your work._

Kevin Pang: _we should be in support of anything that will force programmers to think more about the code they write, not less_

Aside from brand arguments about "Agile" versus "SOLID" versus "what-would- Jesus-do" style programming, where, exactly, is the "war" here?

</comment><comment><USER10> Snappy answers to stupid questions:

Q: Has Jef Atwood jumped the shark?

A: Hell no. If you don't like is blog, don't read it. Stackoverflow is still a great resource.

Q: Is SOLID a good idea that more programmers should read?

A: Hell yes.

Q: So why is he "waging war against SOLID" and saying we shouldn't we follow these rules?

A: He didn't say that. Solid principles are absolutely worth knowing. But when you're a master programmer, they more what you'd call "guidelines" than actual rules. (<http://en.wikipedia.org/wiki/Shuhari>)

Q: do these "Ferengi rulebook programmers" exist?

A: it's rare, but they do.

Q: So Kevin Pang is wrong then?

A: Well, he's wrong about Atwood jumping the shark. He's right that the vast majority of programmers aren't masters, so Atwood's points don't apply to them and they should learn the rules. Maybe he's wrong to get into a blog-post- fist-fight, maybe he's right to stir up debate. Take your pick on how you want to see that one.

</comment><comment><USER11> _I wonder if Jeff and Joel are secretly just messing with us to see how much commotion they can stir up._

Is this not what you were doing with this post, by singling out the author instead of the argument?

</comment><comment><USER12> "Jump the shark" jumped the shark like 5 years ago.

<comment><USER8> No, it "nuked the fridge"

</comment></comment><comment><USER13> I hereby announce that I have jumped the shark. I used to be so original and relevant, but now I just make stupid meta jokes about myself. It's sad, really, but there it is.</comment>


KetoHub Update: Month 3 - <AUTHOR> https://mtlynch.io/ketohub-month-3/ <comment><USER2> Matt, Tyson here. Great update on the site. Have you consider adding a blog off the main page to build some organic traffic?

If you really want to dive into the Google Analytics, you could always setup API access. Its a little bit of a hassle, like 17 steps, but the python interface gives you lots of fine grained data you do not get from the GA client.

One other thing you can try is log everything with a tracking ID and timestamp. Then just process these particular logs and you can get some idea about what return visitors do.

<comment><AUTHOR> Hey Tyson, Thanks for reading!

>Have you consider adding a blog off the main page to build some organic traffic?

That's a good idea. The thing I feel like I'd run into is that I'm excited about the website as a tool and a project, and I can write about it from that perspective. I don't know that I'm passionate enough about keto as a lifestyle to write interesting posts about it.

But I do like the idea of adding a bit more content. One thing that gets asked a _lot_ on Facebook is, "Can someone give me a simple explanation of keto?" A lot of the bigger sites have very complicated explanations. I could maybe write a "keto in two minutes" and link people to that.

>If you really want to dive into the Google Analytics, you could always setup API access. Its a little bit of a hassle, like 17 steps, but the python interface gives you lots of fine grained data you do not get from the GA client.

>One other thing you can try is log everything with a tracking ID and timestamp. Then just process these particular logs and you can get some idea about what return visitors do.

Oh that's a good point. I hadn't really thought about trying to lean more on GA, but I should try to see how far I can get with custom events and the API before I add another heavy monitoring dependency to my stack.

-Michael</comment></comment>


Google Launches MyMaps - Platial Gets Screwed - <AUTHOR> http://mashable.com/2007/04/05/google-mymaps/ <comment><USER2> Up until now, Google Maps was entirely one-size-fits-all mapping software. Now they are adding some customization tools to go a little beyond that (and touch into more of the long tail).

That said, I think the Geoff fellow put it best when he commented on the post:

"Sure, Google is great at the tech, but they are a bit weak when it comes to building 'places'. They don't have enough touchy feely people over there to get the warms and fuzzies right. So, their sites, while they work well, all feel very cold and sterile, and don't really build a social community. That's why Google Video didn't take off and they bought YouTube."

Our startup is geography-heavy, but our mantra has been 'we are not a mash- up.' This is because we are aiming for the warm and fuzzies (serving the needs of a specific community of users), and almost all mash-ups that I've seen lack the warm and fuzzies because the Google Maps API limits their ability to custom-tailor their service and presentation. I don't think these few new buttons greatly change that.

As an aside, one of the reasons I really enjoyed Chris Anderson's speech at Startup School was his repeated assertion that one-size-fits-all solutions are (in some ways) necessarily inferior to products and services that focus on the niche.

</comment><comment><USER3> haha, great (tragicomic) headline. but i think this is an important lesson. api/platform providers and the startups that build on top don't really have aligned interests when it comes to building companies. mashup makers (e.g. frappr/platial) are basically free R&D; for the platform (google), and if a startup creates a mashup with a lot of value, it's unlikely the startup will be able to capture it -- or conversely it's doubtful that google will be able to keep its hands out of the cookie jar and sit back while the profits go to the startup (yes, google could acquire the startup but it certainly isn't obligated to.)

microsoft left dozens if not hundreds of startups in its wake this way (cherry picking good ideas and bundling them with the next version of office/windows/visual studio), and i'm sure there are more contemporary examples in the making (amazon could do this with S3/EC2, e.g. by selling an "s3drive" or other value-added services.)

it's too bad to see this though; it's a big disincentive to innovate on top of these platforms.

<comment><USER4> Good points. I agree that there are important lessons to learn, but I wouldn't say that there is a big disincentive just yet. A powerful (open) platform is attractive because it brings to light new opportunities. The lesson would be not to sit idle afterwards. A successful mashup/product proves that there exists a market; a starutp with foresight will develop themselves fully enough as to not fully rely on the API. As you said, it's R&D; for the platform companies, and they can dominate the startup's space if the startup doesn't keep iterating.

Even though YouTube was not built on a Google platform, there're some parallels to be drawn. Google had a video service; YouTube was better. With their advantage in size and resources, Google could have put out something better, but YouTube had such a lead already. True, YouTube didn't have to rely on Google's API, but even Statsaholic is continuing on without Amazon's Alexa.

</comment></comment><comment><USER5> I really don't think most of these mashups INHERENTLY will die. They might take a huge beating in how fast they grow but I think if the current mashups continue to focus on their CURRENT userbase's needs, they can turn it into a modestly profitable venture. Not everything has to return a fortune financially:)

I do pity the startups that raised millions and were based off of google maps. It never made sense to me but hopefully they know something I don't about their long-term strategy.

-Zaid

</comment><comment><USER6> This is the main reason you have an API. See what people do with your stuff and then do it better!

</comment><comment><USER7> If these products are ultimately just about creating your own maps, it's merciful that Google kills them off. If they are something significantly more, then they've gotten plenty of a head start from their create-your-own-map functionality.</comment>


Becoming a dramatically better programmer - <AUTHOR> https://recurse.henrystanley.com/post/better/ <comment><USER2> "Pick nodes on the knowledge graph which are highly-connected to things you do routinely". I am really interested in knowing what are the nodes I should focus on for data science and machine learning? My thoughts are first focusing on the tools and libraries I interact with every day, then the harder/high level concepts.

<comment><USER3> My problem is that I have a huge amount of these nodes. It becomes harder and harder to focus solely on one of these

</comment></comment><comment><USER4> This is a great post especially for an up and coming programmer. Thanks for this!</comment>


Dean Baker's Negative Take On Patents In Medicine - <AUTHOR> http://www.cepr.net/index.php/blogs/beat-the-press/tyler-cowan-recognizes-public-health-problem-of-pandemics-more-money-for-drug-companies?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+beat_the_press+%28Beat+the+Press%29

<comment><USER2> _If a company has a major breakthrough drug that produces high profits then its competitors have a substantial incentive to try to duplicate this drug in a way that circumvents the patent. In a regime where patents provide a monopoly, the availability of potential substitutes will have the benefit of bringing the price down, however if the drug were already selling at its free market price, without a patent monopoly, no one would look to waste resources developing a second drug that essentially does the same thing as the first drug._

This is the key takeaway for me.

Also, there is more effort on securing patents than there is on reducing the cost of research than there would be without the patent system in place. By having a patent system in place which grants monopolies, we have redirected the efforts of the marketplace to focus on attaining monopolization as opposed to commodification of the means of testing and improving medicine.

<comment><USER3> Not a very strong argument. I assume you have never heard of allergies or personal incompatibiities with treatments? Because of that you should be glad there are usually different molecules aimed at the same target.

And the means of testing medicines have their costs pressured down as much as they can currently. But please do not forget that there is a heavy cost of doing medicine research because of regulatory requirements (which keep expand from one year to another. further increasing the costs of developing new drugs).

Having goverments provide money to drug companies removes the incentive to be the first one to launch a drug on the market and I would expect it to significantly slow down research. This would be going the wrong way, just like NASA which has been so very little innovative for dozens of years. Hardly a good example to follow.</comment></comment>


What I learned from trying to be too productive - <AUTHOR> https://adolos.substack.com/p/what-i-learned-from-trying-to-be <comment><USER2> i began taking side projects on the cheap so i can get paid to do other stuff aside from my day job. stuff that i like. its so cheap that i can tell my clients that i am taking my sweet time so no pressure at all on my end. if they disagree then i can fire them without regrets. ill be making stuff anyway with or without getting paid because that's what us makers do.

but somehow i dont feel productive even when doing side projects. i fear that what people at my day job think is what matters at the back of my mind. sometimes the things i do at day job are those things i dont want to do.

i cant quit because its a high paying job so i guess i need to change mindset instead.</comment>


Living on the Edge – Story of an Iranian Student in US - <AUTHOR> https://medium.com/@fardinghooli/living-on-the-edge-6a692c4a7f38#.fhnz76kg4 <comment><USER2> It looks like we went to the same college in the US and in fact, I remember seeing you around. Such a shame these draconian laws exist.

<comment><USER3> What'd you say if a chap you knew at school then turned up on the ISIS reports? This isn't a fantastic scenario isn't it?

<comment><USER4> Probably "Such a shame he decided to join ISIS." It doesn't have to be so either/or or black and white?

<comment><USER3> Somehow its becoming just that: 51/49 split everywhere

</comment></comment></comment></comment><comment><USER5> Same story here. I got admitted to Georgia Tech MSCS, and now I have to forget about it.

</comment><comment><USER6> I think all immigrants and nonimmigrants in the US face some degree of this, though obviously the Iran and friends group is significantly worse off.

American citizens don't realize the restrictions placed on even "friendly" aliens (excluding LPRs for the most part):

(1) AR-11 form to file every time you move so the government can keep track of your address.

(2) You cannot perform any work in the US, paid or unpaid, that's not for your employer -- so even open source can be a grey area. Contracting is off the table.

(3) You can trade stocks but not "too much" (undefined quantity) because it then becomes active income and you're out of status.

(4) Every time you cross the border you're advised to bring your entire petition with you (H1B, TN) in case the guards decide to drag you into secondary. Further, TN status can be revoked at each border crossing. The _one_ time I left my H1B petition at home I got dragged in, they spent about an hour validating my status; luckily the initial officer wrote my WAC number into my passport and they could look it up.

(5) TN only: 3 year visas, indefinitely renewable so long as you convince the border guard you won't renew them indefinitely. The mental gymnastics hurt my brain. Then there's the whole software engineer vs. computer systems analyst vs. programmer distinction that's apparently the most meaningful thing in the world. Much of your TN petition relies on the mood of the border guard. And that's if there's even going to be a NAFTA in a few weeks.

(6) You basically can't found here without a green card, and that takes the better part of a decade to obtain from start to finish, unless you're an Indian national in which case god help you. You can't even get a buddy to start the company and sponsor you unless you're Canadian and can TN your way in, because of the sheer quantity of recordkeeping, cost and 33% chance once a year in April of obtaining an H1B for an employee who can't start until the new USCIS fiscal year beginning October 1st.

(7) Out of status for 180-364 days? 3 year bar. Out of status longer? 10 year bar. Even if you marry someone, you can't adjust status from within the country so you get wanged with the bar on your way back in.

(8) H-1B: Last day of work? GTFO time. Officially, no grace period, it's back where you came from. Also? You simultaneously have to get an IRS form 1040-C Sailing Permit approved by your IRS field office before you go. Though many aliens who are fired/laid off obviously can't satisfy both requirements at once. Pick the one you want to piss off least.

Every US immigrant and nonimmigrant knows this stuff, ask one next time you see them, it's what we bond over ^_^

When I elected not to pursue a green card and left the US, it felt really good not to be under the thumb of the government. And this is 'easy mode' \-- as a Canadian software engineer with 6 years of professional experience.

<comment><USER7> This x1000

<comment><USER8> Please try to be more substantive in your comments. The equivalent of "+1" or "me, too" doesn't add much to the conversation.

</comment></comment></comment><comment><USER9> I had a friend when I was in grad school who was from Iran, during the Iranian revolution. We had a lot of discussions on what was happening and why. He was still intent on getting his grad degree and going back home and teaching Chemistry. I lost track of him so I wonder what happened. Education is a great way to bring people together. Treating people like dirt is a great way to ruin everything.

</comment><comment><USER10> In retrospect, Toronto might have been the better choice. He didn't mention Waterloo (Canada), but that would be up there, too.

</comment><comment><USER11> What should the process be for foreigners in the US?

</comment><comment><USER12> _As an Iranian in the US, you are restricted._

What is it like for others in Iran?

<comment><USER13> I think it's important to note that the author explains exactly how he is restricted (and it applies mostly to the professional/tech world), and I don't think the experience would vary by person based on his examples. From the Iranians I know as well as other international students in general, what he has described is pretty common. Not Iranian myself though so haven't seen every detail up close and personal, and small sample size. I have never seen evidence or heard of experiences that suggest otherwise in the cases of his examples.

</comment></comment><comment><USER14> Used to have an iranian neighbor, he had two really smart kids with a sweet mexican lady. Great people. I still support these temporary bans. And I would like to see more people complain about Obama admin sending iran 400 million cash secretly and then lying about it. Obama also gave or attempted to give 221 million to palestine in the last hours of his presidency. So many things wrong with that, frankly Obama admin simply couldn't be trusted for the safety of the U.S.</comment>


Quokka Brew: The Caffeinated Jitterless Coffee - <AUTHOR> https://www.indiegogo.com/projects/quokka-brew-the-caffeinated-jitterless-coffee/x/24138023#/ <comment><USER2> It uses oat milk.

Those of you who are lactose intolerant and know about the extreme constipation that can result, will be happy to know that oat milk can have the opposite effect. Extremely opposite. You don't want to know how I found out.</comment>


Looking for a learning opportunity - <AUTHOR>

I have been doing front end web development(mostly HTML/CSS) for about 8 months and I want to improve my JavaScript and more importantly, my design skills.
I am looking for an opportunity to join a startup in the Silicon Valley(part-time) as a front-end developer where I can learn a lot from others. I have found working with others is a great way to learn.
I am open to all kinds of suggestions and I appreciate the help.
Thanks. <comment><USER2> Such a strange post on a lot of levels. First off, if you go to a company of any size and say, "I want to use my time with you to learn x", then that company will say, "Thank you. We'll call you if there's such an opportunity." You will, of course, never hear from them again.

Second, you clearly do not know how "the game" is played as a front end developer. You've done with the least with the least here by posting these few paragraphs. If you want to get someone to pay attention to your front end skills, then you need to show them your work. Period. And preferably over a long period you will show a history of excellence. People will see that and viola - you will get a call/email.

Third, your post comes across as either 'This guy is very humble' or 'This guy is a complete newbie'. The problem is that I can't tell which. That's a big problem for you. No one is going to take the time to ask you, "Hey, which is it - are you a guru or a noob?" thus you'll receive no contacts from such ambigiousness.

</comment><comment><USER3> I agree with others that have replied. If you change your stance to, "I have X skills, and I can use them to provide your business with X, which is good for you because X," then you are much more likely to attract interest. It seems that the best way to attract attention is to show off your best work. Don't be too worried with the HN community. Worst case scenario, you'll get a bunch of useful constructive criticism.

</comment><comment><USER4> You might have better luck if you posted some of your work.

</comment><comment><USER5> Send me a link to something you've built and we'll talk. My site is in my profile.</comment>