- Remote-- We've moved out of the bay area and it would take a lot to move back. It's stupidly expensive, dirty, unsafe, and not diverse at all. Let alone the time and money saved by not commuting is significant.
- Compensation. People love to harp on good comp for engineers until they realize how much execs make. I'll deliver excellent value if compensated appropriately.
- Work life balance. It's good if people are working hard but the key is "balance". Being constantly stressed out grinds you to the bone, kills morale, and breeds a cutthroat culture.
- Team expertise-- I prefer to work on a small team with highly experienced engineers vs. a large team w/ enormous numbers of juniors. It typically means we can be very strategic on what exactly to work on vs. building a ton of unmaintainable bloat.
- Team/Manager culture-- Again, cuthroat is a no-no. I like to collaborate with others on a team. If I'm having to watch my back or I'm on a team w/ stack ranking where everyone's clawing over each other to not end up on the bottom then everyone who's able to will leave at the first opportunity.
Only thought I have - the Bay Area is a very large place both population and footprint wise. If it doesn’t “seem diverse at all” that’s probably more a reflection of where one is within the Bay Area rather than the place itself.
Portland area-- my partner was up there already and although COL is not drastically lower we've enjoyed living in that area (not downtown for the same reasons we disliked SF).
Criteria: Salary/benefits better than current. Company stable. Hours less than or equal to current hours. The people don't seem like dicks. Doesn't require moving.
Work-life balance. This is the only non-negotiable. This includes - explicit and “zero expectation” of ever keeping me “on call” during my time-zone’s night-time. A pre-planned one off or not very frequently recurring late evening call is fine.
No on prem infrastructure and a dev cloud account with very wide guardrails. I didn’t focus on the cloud because I didn’t want to deal with administering servers. I moved to the cloud because I didn’t want to deal with server administrators.
No leetCode/DS&A monkey dance interviews. Let’s talk about your real world problems like adults and I can talk about how I can help you solve those problems. Yes that mindset got me into “a FAANG”
The application can’t be overly dependent on stored procedures and “database developers”
I only work for companies where their value proposition is “you give us money and we give you a service” - no adTech
I value equity in a private company at $0. If you’re not a public company you have to pay me in cash at market value. Yes my unvested RSUs are worth half their all time highs. But at least I can sell them and diversify when they vest.
- Flexible schedule (e.g., I can start at at 8am or at 10am. I can go and pick up the kids at 2pm from school. I have a dentist appointment tomorrow morning. Etc.)
- salary. At least 15% more than what I’m making now
- standard health insurance
- vacation days. No BS (e.g., unlimited vacation), just plain usual number of vacation days (around 30 where I live)
- people. I take a look at LinkedIn and check out the people who work there (experience, past companies, personal websites, Twitter profiles, etc.)
- product. Is it actually something I don’t hate?
- tech stack. Is it something I actually don’t hate? Would the stack make me more employable in the future?
- no on-call. This is getting more difficult to be picky about with all this stupid movement “you build it you run it”
- hardware. I hope I can choose the hardware
Everything else (conference budgets, learning budgets, etc.) are nice to haves but I couldn’t care less.
> no on-call. This is getting more difficult to be picky about with all this stupid movement “you build it you run it”
A lot many times employees themselves shoot in their foot. They don’t stand their ground and say yes even to nighttime on-call. Are you in a first world country? Wherever you are — isn’t there any legal deterrent against this practice?
The personal red flag I look for is when asking managers “how do you define success in this role?”
The answers are usually lame (which can be acceptable) but have also received “wow I’ve never thought about that” - which is a bad sign in my opinion.
During an interview I asked a hiring manager “How do you define success for your engineers” and they responded “Wow I’ve never thought about that”.
That’s a red flag for me because if there isn’t a clear definition of success/failure for the role how do you know if you’re meeting/exceeding expectations. This is relevant for reviews, compensation, growth for employees, growth for the Org, growth for a Team etc.
I typically expect a response along the lines of “the person can write the code and not break things” - which is “lame” in my opinion but tolerable.
- Compensation: This is one of the few things that I know before accepting a role. The larger the company the more comp I expect.
- Culture: generally I look for roles where I could wear any hat. Anywhere where employees are empowered to fix problems.
Red flags:
- Team activities: I do not want to play volleyball, paintball, or go to the CEO's house for cornhole on the weekend. Occasional lunch or happy hour is fine.
- Adtech, blockchain, or crypto: nothing against folks who work at companies in these spaces, but I have never been interested in these domains and probably never will be.
1. Co-workers who know their stuff, with personalities that don't need too much debugging.
2. Management that is sane. Not constantly changing directions or chasing the next sale.
3. Work/life balance.
4. Pay and benefits. I'm a for-profit enterprise.
5. Something meaningful to work on. It doesn't have to save the world, but it would be nice if it's something more than a "me too" product or, worse, something shady/immoral.
- People (Good coworkers, aligned values, top-down vs bottom-up, etc).
- Compensation/Benefits (Many things to look at but I favor base and liquid components like RSUs).
At different times I've optimized for different things. I believe is pretty common to optimize for work (learning/interesting) early in our careers and then start optimizing for compensation/benefits (I include company stability here as a benefit) as we grow older and have life responsibilities.
People is something that I did not realize had such a big effect in my career and even compensation until much later in my career. If I work for an organization with people I enjoy working, values most of the things I value and I'm good at, I maximize the odds of being successful. Changing the culture of an organization is very hard, even more so when you're a leaf in the org tree.
+ Flexibility - I don't want to have to be statically tied to a clock and I want to be able to take whatever breaks I need, whenever I need them.
- Micromanagement - I don't want anyone to overlook my work when it's being made, nobody to look over my shoulder and I want to just work in peace and only have any higher-ups wonder about the project(s) when finished or individual steps are ready for test.
+ Ability to work on my own things - I have many projects of my own and I want to be able to work on them and manage them alongside whatever work I am hired to do.
+ Trust - Very important that there's trust in that I finish my work regardless of how dynamically I work, as I don't work in a straight-line, I have to work a little here and a little there, otherwise I get nothing done.
- Work family bullshit - you know all that corporate cringe stuff
+ Remote work whenever needed - I should have the ability to work remote if I want to. I personally like to go see people, so I will not be working remote the majority of my time, BUT I want the ability to do so and without limitation. If I want to work home for the next 3 months then I should be able to do so.
+ Salary should be at least 20% above what I make
- Overtime without pay or without agreement beforehand - I refuse to work overtime unless it was agreed upon beforehand and definitely won't do it without pay. If a server is down and needs a restart and it can be done remote in 5 minutes, that's fine, but if I have to spent 1-2 hours fixing something, then it's not going to happen unless agreed upon beforehand, typically weeks in advance. I also work my specific hours per week and that's it. No more, no less. I prioritize working my exact hours a lot and anything extra is going to cost. At the moment that's up to 40 hours. I haven't worked over 40 hours for months and I will not do it without a good reason and pay.
+ Tech stack - I should be able to work with whatever language and tools I want, unless I have to maintain an existing project, but for new projects there should be no limitations.
+ Laptop, monitors etc. should all be paid for - I won't use any of my personal stuff.
red flags for me: bean bags & ping pong, disruptor, move fast and break things, rewrite, cloud, teamwork, culture, rock star, ninja, Christ-centered web developer
Early in my career was mostly fun project, young dynamic team and something looking good on cv.
Today (late 40s):
1. Salary & good boss
2. Solid company & good coworker I would enjoy working on a daily basis
3. Interesting fun project.
Fancy job titles and competitions with coworkers is something I am too tired and frankly realised that no single job can give me the satisfaction I have from my wife&kids and from discovering the world.
I have converged to a single (compound) criterion:
"Who are going to be accountable for my professional well-being?"
This encodes inside that I have partners in the organization, whose success is associated with mine, and who have at least some of the ingredients to make things work; indeed it also includes the assumption that success is even possible.
As time goes by, I learnt to reject everything besides that - fancy words, supposed interest, money, etc.
Optimizing people's professional well-being is a bit akin to engineering: a good practitioner can describe their potential strategies, their relative merits and consequences, and interactively - at least to the first order.
note that I'm not a software engineer myself (requirements eng.) and don't live in the US
- earn or learn. where the learn relates to how familiar the industry is for me. worked in banking, gambling and now logistics and there is a learning curve, even though the job description is the same. earn has to be the same I'm making now.
- size of the company. worked in orgs from 200 to 4000 employees. I get lost in the org chart somewhere. I think my sweet spot is in the 400-600. there's also significantly less bullshit in smaller sized companies.
- home office flexibility. If I'm juggling sick kids at home, I want to be able to NOT show up at the office and spare me the commute for a month without any explanations.
- location. I actually like going to the office couple of times a week. if I don't have to spend an hour getting there, I know I will.
- has to be an international company. I'm an immigrant and I'd rather be with some like me. also attracts different kind of locals, more open minded.
you take a leap of faith with coworkers and company culture. I peek in kununu.com or glassdoor to see what others comment about it, but it's almost always a leap of faith.
Just one: dollars in my wallet per unit of time worked, minus CoL. Any time my work expects to reach me (Eg: on-call or even having my personal cell#) is considered time worked. Time spent commuting (if required) is also considered time worked.
There's only one thing I'm really interested in seeing and it's the org chart. I want to see how the company is structured and their manager to IC ratio. It tells me all I need to know.
I think is true the org can hint at you the company culture, but an IC to manager ratio of 5:1 is just too many managers IMHO, and without really knowing the manager's responsibilities and quality, the ratio won't tell you much in itself.
I think you were downvoted because the ratio hardly tells you anything conclusive about the qualitative aspects of the org that are more important. Getting to know the org chart definitely helps ask questions that will reveal the culture during the interview though.
tech stack?, role?, typical working hours?, on call time?, do people work long days or weekends?, remote? friendly culture?, # meetings week?, security hoops to do development? which projects will I be assigned? comp?
- Compensation. People love to harp on good comp for engineers until they realize how much execs make. I'll deliver excellent value if compensated appropriately. - Work life balance. It's good if people are working hard but the key is "balance". Being constantly stressed out grinds you to the bone, kills morale, and breeds a cutthroat culture.
- Team expertise-- I prefer to work on a small team with highly experienced engineers vs. a large team w/ enormous numbers of juniors. It typically means we can be very strategic on what exactly to work on vs. building a ton of unmaintainable bloat.
- Team/Manager culture-- Again, cuthroat is a no-no. I like to collaborate with others on a team. If I'm having to watch my back or I'm on a team w/ stack ranking where everyone's clawing over each other to not end up on the bottom then everyone who's able to will leave at the first opportunity.