Hacker Newsnew | past | comments | ask | show | jobs | submit | smokinn's commentslogin

Based on your comments about salary and working at a startup, I think you're probably being taken advantage of.

I think you may at least subconsciously know it too given that you wrote this post.

Step one is to start dialing it back. Another commenter suggested reserving an early hour of the day for leetcode. That's a good idea. When you're ready to start work, don't. Work on a leetcode problem but timebox it to an hour. Then get about your workday. You'll very quickly start to realize that there's nothing special about algorithms. It's basic patterns. No one is asking you to invent new distributed consensus algorithms on the fly in a coding interview. Mostly they're looking for whether you studied to the test or not.

So for the first little while, it's going to suck. You'll be stumped and frustrated. That's fine. Spend a bit of time trying to figure out the answer yourself but if you've given it an honest try, just google the answer. It's about pattern matching mostly so you need a base to pattern from.

Make sure you type everything out. Don't copy/paste. That'll be important for both mental memory (multiple input paths (tactile + visual) leads to better retention) but also that muscle memory will be critical when it comes to the actual interviews.

Eventually you'll get to cruise control. Easy problem won't be stumpers anymore, they'll actually be easy. Mediums will be hit and miss and hards will still be mostly failures but doing some every now and then it worth it for pattern matching to make the mediums easier.

Now that you're cruising and touch typing without IDE assistance through the easys you're ready to interview. You'll probably fail the first few. Interviews are a skill separate from actual programming and they also involve a lot of luck. All the interviews have some random set of qualifications they feel are super important. Unless your practice overlaps heavily with their preferences they won't be inclined to hire you. And when there are like 5 interviewers on a loop you can afford not having overlap with one but if you don't have overlap with 2 or more that'll usually sink you. And like I said, you can grow that overlap percentage but not much, it's mostly luck. If you get a bunch of interviewers that mostly ask questions similar to the ones you practiced and you pattern match them easily (hashmap! tree search!) then you get hired.

The first step though is cutting down your dedication to this company. You're dedicating your life to them and unless they're paying you enough to retire extremely early that's a really bad deal you're taking.

So please cut back on your hours. Take that extra time to take care of yourself first and meet up with friends and family again. Use a small portion of the extra hours to grind out the algo questions. If you can write mobile and web apps you can learn this too. It's a different skill though and it will take time. But it's worth it because you need this practice to match up against everyone else that studied to the test. When you feel you're ready take a long vacation. At least two weeks. Line up a ton of interviews and just power through. Take a break of a least a few days in the middle to regroup and analyze but in general book at least 6 interviews (not phone screens) in those two weeks. Chances are if you've practiced enough you'll get at least one offer. If you don't, that's fine, it just means you need to practice more. Analyze what went wrong, practice more and try again in a few months.

When you get an offer, don't stay at your current company. With your effort and dedication they absolutely know they're taking advantage of you. They'd probably be willing to double your total compensation if you were to actually be ready to leave. It's a trap though. They've already shown they're willing and able to take advantage and will do so again. So when you have a better offer elsewhere you should take it.

Good luck.


First off, excellent article. I've read a huge number of these and almost didn't click on this one. I'm happy I did. All your points are excellent and absolutely true.

That said, I think you may have missed an important one for engineers: respect

In my experience, engineers highly value respect in their current position and a slap in the face from the company can breed lasting resentment or an immediate job search in the current environment.

Respect comes in a few forms:

1) Believing you were actually listened to and your ideas were fairly evaluated, even if in the end the decision didn't go your way. If you're repeatedly getting shot down and don't understand why that feels like the company doesn't value you or your opinion.

2) Compensation: While the absolute number itself to a surprising degree doesn't matter all that much, what effort the company puts in when it can, does. If the company posts record profits, gushes about your performance, you max out your rating and get a 2% bump in pay as a result when at the very least inflation seems to be 6% right now that cognitive dissonance hurts a lot. This is another form of lack of respect that engineers rarely let slide.

3) Clear growth path/investment: If the company respects you and your term goals, you'll see it through an established career plan, at least for the short/medium term (1-3 years). If you're going about the same stuff every day with no room for growth and no one seemingly cares that you want to take on more or you don't see how you could given the pile of work you're stuck under, that's demotivating and shows that the company doesn't really care about you, just about your monotonic cog-like output.

4) Impact and impact recognition: Engineers want to do things that matter. (Already a theme in your article) and often they want that to be known. Not in a cheap artificial pat-on-the-back and flattery way, but in a tangible way. Success should lead to greater responsibility. Failure should lead to introspection and another swing with advisors brought in. Given your successes you should be given opportunity to advise others working on similar problems you've been successful solving. If all you're doing is solving problems in a silo and no one seems to notice or care, it gets demotivating again.

I'm sure there are others but I find that a general theme of respect for the individual is usually very important for engineers.


I suspect it's this scam: https://gimletmedia.com/shows/reply-all/n8ho3a

Spoiler Alert: Don't read below if you don't want the podcast episode ruined.

You're not the one being scammed it's the telco.

From the episode:

JAMES: The way that the toll-free industry works is that it's a reverse payment system, right? So you have a toll free number, I call you, I don’t pay. Right? The--the remote end pays.

PJ: So-- so that I knew. But what I didn’t know is that when a company has a toll free number and they pay the phone company a dollar or whatever, the phone company takes that dollar, and shares it with every other phone company that helped make the connection.

[MUSIC]

PJ: So like I’m making this up but if I call Jodie right now, I’ll place the call and it’ll go to like an AT & T tower near me, and then a Verizon Tower in Manhattan, and then over to a Sprint tower to New Jersey, to Jodie.

JAMES: So there’s 1, 2, 3 hops down the chain. Each one of those, you know, for a 1 dollar phone call, is getting maybe ten cents, right? Carrier 2 is getting ten cents. Carrier 3 is getting ten cents.

PJ: So, it’s actually even less money than that. But, there’s so many of these calls happening every single day, that even though the phone companies might just be dividing fractions of penny each time, those fractions of pennies add up to like millions of dollars.

ALEX: Right.

PJ: And so what happened a few years ago apparently, is some brilliant person was like, "Huh, I would love to take some of that money." And what they did was go to some shady telecom company somewhere, like Crazy Eddie’s Phone Service and they were like, "Listen, I am going to place a ton of 1-800 calls though you, and when you get paid for them, share that money with me."

JAMES: So, the more phone calls I can make, and the longer that those phone calls stay up, the more money that I make. PJ: OK, so how does that get us to spooky phone calls from nowhere JAMES: Aha! So, let’s think about that, right? PJ: OK. JAMES: I send out a bunch of phone calls that are just silent, right? It takes you what, a second, two seconds. “Hello hello, damn it.” Hang up the phone, you’re done, you're gone. So how do you keep people on the phone, right? You appeal to their curiosity. PJ: Right.


Seattle also has a growing affordability problem and is in the same zoning situation as SF or Vancouver.

Here's the official zoning map showing the absolute domination of single-family zones: http://www.seattle.gov/dpd/Research/gis/webplots/smallzonema...

And an article with commentary on how much of Seattle is zoned for single-family home only: https://www.seattletimes.com/business/real-estate/amid-seatt...

Something needs to give.


Is the very competitive salary over 300k USD?

That's what's competitive in the Bay Area or Seattle for senior talent. While there are benefits to Canada as you mentioned, for a lot of people they don't make up a 50% pay cut.


> Is the very competitive salary over 300k USD?

How many jobs are actually paying that? The salaries posted on the "Who Is Hiring?" threads don't corroborate that, nor does my experience in NYC (which is supposed to be on par with those areas).


Neither do sites like Glassdoor and Paysa. Maybe if you count signing bonuses + equity bonuses. But those aren't salary per se.

With that said, 200k wouldn't be that unreasonable as an expectaction at a senior level or above at a household name tech company.


Google has at least 1000 employees in the Bay area in the $300k+ income bracket. The entry-level job at Google pays like a staff engineer at a mortal company.


So, 1000 out of a few hundred thousand employed as software engineers in the area?


When you say you require 5 years of related experience as a minimum bar, most applicants read we don't train or invest in our employees. It's not surprising you don't get the best candidates applying.


If I want a junior person, I place an ad for a junior person. We do quite well with those.

If I want somebody with 5 years of experience, it's because I need someone who has already got familiarity with the tools and can apply good judgement.

I have had both positions open simultaneously on occasion, and discovered the same people applying for both. Some of them were even qualified for the junior position.


You removed the word "related" in this reply.

I think our contention centers mainly around this word. When I see the word related I envision most standard job offers that have a laundry list of 10+ technologies, not all of them particularly related.

Software engineering is such a wide field with such a huge array of available technology options that if you're limiting to 5+ years in a specific stack you're already massively narrowing down your field to a small percentage of the available workforce. If you aren't offering significant advantages to offset that huge initial filter you're not going to get many candidates you find acceptable.

At the company I work at we hire for "general software engineering ability". You can pick whatever language or tool you want to get through the interview, we don't care. Most strong candidates will ramp up on whatever specific stack way more quickly than you expect.


To clear this up:

If I ask for five years of related experience, I mean that if my list includes an object-oriented language with a well-known framework, I expect to see someone who has worked with an object-oriented language with a well-known framework and has perhaps dabbled in the particular one I mentioned.

Instead I get many resumes from people who have never used an object-oriented language to contribute to any software project that wasn't assigned by their professor. They haven't got five years of experience, period.

Does that help?


When I was fresh out of University I had to send at least 2 resumes per week to get my unemployment money. Sometimes there were no positions open that matches my criteria, so I just send it to what I could find.

The worst I could get was a no :)


The Nexus Q was Google dropping the ball: https://pogue.blogs.nytimes.com/2012/07/05/the-google-nexus-...

I have a couple of friends who still have one in a drawer somewhere and it was just poor execution all around. They could have been way ahead of the curve but now they're playing catchup. They're definitely still very well positioned and catching up fast though. Google's AI capability and straightfoward integration with exclusive market-leading products (Google Now, Google Maps, etc.) will likely make them a leader eventually unless they drop the ball again.


Also interested. My email is in my profile. Thank you!


Adrian Colyer does something similar with his blog which I highly recommend:

https://blog.acolyer.org/

Every weekday he posts a digestible summary of an influential paper, typically with a link to the paper itself.


+1 for this; Colyer's blog has been incredibly eye-opening.

Just reading the summaries is pretty interesting, but having a curated set of papers to dig into as time permits is fantastic as well.


It was much worse than just a do-not-call.

The evidence states that the defendants agreed not to poach employees from each other or give them offers if they voluntarily applied, and to notify the current employers of any employees trying to switch between them. They also agreed not to enter into bidding wars and to limit the potential for employees to negotiate for higher salaries.

http://techcrunch.com/2012/01/19/damning-evidence-emerges-in...


Thank you, you have more courtesy than the people who simply downvoted my question.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: