Engineering Lessons Learned in San Francisco Bay Area

This is going to be the first part of a four-part series related to the lessons learned in San Francisco Bay Area, a.k.a. the Bay Area. This post is reserved to the things learned as a engineer. The upcoming ones are related to the lessons learned related to engineering management, immigration and entrepreneurship.

Let’s start with a disclosure: This article is related to software engineering, may not be applicable to other engineering branches. Also this is mostly applicable to the Bay Area, again may not be applicable to the other parts of the USA.

Quick Bio

I moved to the Bay Area to join Udemy as founding engineer at the beginning of 2011. As of 2014, I have been serving as an engineering manager, being responsible for the top of the funnel and recurring revenue for the user side of the business. Udemy is a venture-backed marketplace for online education.


Engineers are opportunists. The average turnover for engineers even in hot startups, e.g. Pinterest, Uber, and companies, e.g. Facebook, is 1.5 to 2 years. Engineers, as other employees, are in search of the next big thing for big exists. Since the demand for engineering is higher than the other workforces, even a small thing can be a reason for job change, for example:

  1. Being bored
  2. $10K yearly rate increase
  3. Since Facebook will look cool at resume
  4. Trying to be a part of next possibly big thing

Although there is nothing wrong with being opportunist, I’d suggest trying to form long lasting relations with the companies/people you are working for/with. Remember the people you worked with, and show your appreciation. Do not forget that the opportunities are not one folded, you cannot guess where the next big thing is going to be originated from. Maybe the next big thing will be started by the person you are sitting next to.

Contribute Bigger than the Job Description

Do not let your contribution be limited by your job description. This leads to really awkward situations because your manager cannot write everything on the job description. And if you are not showing up often, your manager will have hard time to call your name when the things are hot. Then your name will be associated with the ordinary tasks.

Think out of the box: Try to see the major problems, suggest solutions, and sometimes solve the problem without getting permission. Don’t forget that perfectly timed constructive rebellion is better than running after permissions to do things.

Competition is Bigger than You Think

It is hard to see the competition inside the organization or in your peers’ eyes but it exists. People are working hard, so should you.

Although the competition is bigger than you think, the way you can contribute is not straight, you need to find the creative ways to contribute as written in the section above.

Being Productive at the Office & Don’t Miss the Magical Moments

You can be more productive at home or at a coffee shop. Unless it is a remote job, it is better trying to find ways to be productive at the office. Especially at startups magic happens instantaneously and during these instantaneous moments, CEO or other executive/manager looks for reliable people to turn this magical moment/idea into some real thing.

During these times, don’t passively wait for your name is called: Your knowledge and your input are critical. And if you are not in the office, no matter how well the company is using Slack and teleconferencing you’ll miss these moments. So try to be as productive at the office as at home. That way, you’ll be in the office and will not miss the important things.

Soft Skills are as Important as Hard Skills

If the keyboard is the only thing that you are comfortable interacting with wait AI managers to start giving tasks to white collars. Since this type of AI managers is not something expected in near future it is important to focus on soft skills, including but not limited to:

  1. Communication Skills: e.g. What is wrong with the thing you are doing, what your feelings about the task in hand are

  2. Decision Making: Do you ask questions to your superior on every single task or do you make decision and go ahead?

  3. Self Motivation: What is your inner motivation to keep doing this thing? Does it pay good or does the mission resonate with your values (or do the tasks challenge you well)?

  4. Leadership Skills: Can you observe the hard times? When it is a hard time, do you take responsibility to take actions to help the company?

  5. Team-working Skills: Are others happy working with you? Can you include and motivate others to get the thing done faster and better?


These are the things I observed as an engineer and engineering manager in startup environment evolving from early-stage to mid-stage. Of course there are exceptions all the time but these learnings must apply to most software engineering jobs in the Bay Area.