Living in an Employer’s Market as a Developer

The great thing about being in technology is that it is a growing field. There are tons of jobs, and companies are always complaining about how hard it is to find talent.

That is until it isn’t.

It isn’t clear what will happen during this pandemic, but the layoffs and hiring slowdowns or pauses have started.

Many developers have never known a time when companies were not clamoring for their services and bidding against each other.

Having my startup go bust in the dot-com bubble bursting of 2000-2001 and having seen what employment options were like in 2008-2009, I thought I could give some advice to those of you who may be in brand new territory.

If you find yourself unemployed during a bust, you will need to change your tactics. You may be used to an employee’s market, but you are entering an employer’s market. Companies will suddenly find many options for their roles—very qualified, even overqualified, folks who are willing to take a lower salary for their positions. Jobs you wouldn’t have considered previously are no longer returning your e-mails. They can find people better than you cheaper.

Even if you currently have a good job, the security of that role may not be what you expected. Be prepared.

Save your money

If you live somewhere expensive, the rent and other prices are likely to go down more slowly than salaries. You need to start cutting your expenses and build up a cash reserve.

Hopefully, you already have a few months of money put aside somewhere other than the stock market. In a crash, selling your investments in the dip is the last resort. If you don’t have that cash reserve, start building it now.

Stop unnecessary purchases: buy groceries instead of door-dashing meals, take public transportation instead of Lyft, do your laundry instead of sending it out. This is the way that most people live.

You will be surprised how much money you can save by making a few changes. Once you have your reserve (enough to live on with a reduced, reasonable, lifestyle for a few months), you can go back to your spending patterns, or continue to build your savings (which is smarter). During the previous busts, very good, very senior developers ended up unemployed for many months.

Stay Positive

I left a good job at Microsoft to join a startup in 1999. That startup crashed a few months later. After trying to help the leadership revive it for a few months, I joined a friend in building a new startup. We had some angel money, but I was paying the rent and some of the other bills myself sometimes. We were ready to go out for our first real round of funding in September of 2001.

After 9/11, what was left of the investment and job market completely fell apart. We could not raise money. After a few months of trying to keep things going, I needed to start earning a paycheck again. I was selling my stock to pay the bills, and those shares were now worth half of it they had been before.

I assumed it would be easy to find a job. It always had been.

Jobs were suddenly scarce.

I found myself applying blindly to companies that I would never have considered before. Few replied.

Weeks turned into months. I started to lose faith. Occasionally, I would get an actual interview. But by then, the fire had gone out in my eyes. I was passed over for roles that required way less experience than I had. I had lost my confidence, and it showed in interviews.

Eventually, through a friend, I was able to land a contracting job, back at Microsoft. It was a bit humiliating, but I was happy to be working and earning again.

I later found out that I was one of the last people to get that level of contract. The contracting company realized that it could hire people of my seniority at lower contract rates.

Working again gave me my confidence back. I did well and got converted back into a full-time role. When I did, though, my manager negotiated my salary down. I had to take a serious pay cut. I had no choice, and he knew it. I took the job.

Now, as an employee again, I was on interview loops. I spoke to many good developers who were in the same situation I had just left. They had lost their confidence, just like I had. Their answers to questions were non-committal. They were tentative. They were so used to being rejected that it made it hard to approve them.

If you find yourself in that situation, you need to do your absolute utmost to project a positive aspect and some self-confidence in your discussions with recruiters and employers. Even if you have to fake it. Displaying confidence will make a substantial difference in how you interview.

Some money is better than none

If you get an offer, it may be well for a lot less than you expect. You may need to take it anyway. Some money coming in is better than none. The market will rebound eventually, and salaries will go up again. When that happens, you will be able to find a new role that will pay you appropriately. I left Microsoft for a second time when the market rebounded, and I got an offer for more than my old salary from somewhere else.

If the offer is much, much too low, take it. Keep looking for another role, but now with some security. No one says you have to put every position on your resume.

What you want to do and what you can do

Are you a developer, but a company is open to giving you a job as a tester or program manager? Are you an engineering manager, but a company is interested in talking to you about a product manager role?

If you are finding it hard to find a job doing what you want to do, it may be time for a temporary (or permanent) career change.

I wouldn’t automatically recommend this, though. If you switch into another role, when the market opens up, you may find it hard to go back to your preferred job. The market now sees you as a product manager or tester and may not consider you for a development role (especially if you are in the new position for a while). You may find that you enjoy the new job and want to pursue a new career, which could be a benefit. This situation happened to a few friends of mine during the 2008 crash.

If you decide to take the career-switching role out of necessity, make sure you keep your development chops up: contribute to open source, build apps or sites, whatever keeps your skills up-to-date.

You may be tempted to take a role outside the industry. This should always be the absolute last resort. Even with a strong resume, you may find it hard to get back in if you are in a very different field for a few years.

The sad fact for those who struggle during these periods is that most folks in the field will keep their jobs. When their companies start hiring again, these people will have a strong survivor’s bias. They may not understand the choices you had to make.

Build (and maintain) your network

Keeping up with your friends in the industry is probably going to be your best bet at finding a new role. Your friends can get you past the gatekeepers at the companies and make sure you are seen. They also may have more insight into what roles are open.

At first, it may be difficult to reach out to them. You may be embarrassed about the situation you are in. Get over it.

If you have been in the same company for a long time, or don’t have a big network in your area, start attending meetups or local conferences. Meet developers at other companies. You are likely to meet a lot of other folks in your situation, this is ok. You can form a group to share tips about companies hiring, maybe they may know someone at a company with a role appropriate for you.

Stay in your safe harbor

If you have a good job, with a good salary, keep it. Build your savings because even good companies don’t always survive. If you were considering that it might be time to move on and find a new role, don’t.

Even if you have an offer in hand, when companies hit a rough patch, after freezing hiring, they start rescinding offers. A friend of mine left his steady job during the bust to join another established company. He quit his old job and then the weekend before he started his new one, his offer was rescinded. He was now unemployed. His former company didn’t want him back. They got someone more senior for his role at the same salary.

The Reality

If you have been privileged to not know a time when you were worried about money, this will be scary. Hopefully, you find a new job, and this time will be brief. Many people in the world are not that lucky. They live constantly worrying about how they will pay their rent, or feed their families. When you are on the other side of this, realize how lucky you are and take your new perspective to be a better, more empathetic person. Do your best to help those in need, now that you have an understanding of what their reality is.

It will get better

Economies are cyclical. After the dot-com bust, there was exceptional growth in the tech industry. After the 2008 contraction, the tech sector went back into massive growth mode. If you lose your job and find it hard to get a new one, don’t despair. Things will get better. Until then, just focus on doing what you need to until that happens. Learn from this experience and be ready for the next contraction, because there will be one. Always.

If you don’t lose your job and you are in a position to make hiring decisions, try to be human. If you interview someone who seems to have lost all hope, try to see the person underneath who has had some bad luck. If you were lucky enough not to lose your job, don’t think you are better than those who did. Ask about their choices. Don’t assume that if someone went from being a developer to doing another job that it was a deliberate choice. Understand their story before making a decision.

These are amazingly challenging times for many people. Remember that if you lose your job during this downturn, even if things seem very bleak, you are probably still better off than 95% of the world’s population. If you want to grow your skills while looking for a job, you could build a website for a charity. That will leverage your skills, build your confidence, and do something for others too.

We’ll get through this.

Developing Your Developers: Constructing Career Paths For Your Technologists – Slides and Q&A

In September of 2019, I gave a talk “Developing Your Developers: Constructing Career Paths For Your Technologists” at the Honeypot Hive Conference in Berlin, Germany. The slides from the talk are below. There were many questions from the audience that I didn’t have time to answer. The questions and answers are here. The talk was recorded. I’m hoping that the video will be posted in the near future.

How the organizations you worked in were going about diversity recruiting? What kinds of initiatives were being taken?
In companies where we have had made good progress on diversity recruiting, we used a few different initiatives:
  • Made it clear to the organization that it was a priority by regular communication, and updates on our progress
  • Engaged the recruiting team to ensure that hiring pipelines included a reasonable slate of candidates from underrepresented groups, even if that meant taking longer to fill the role.
  • Incentivized external recruiters with bonuses when we hired candidates from underrepresented groups
  • Actively participated with external groups supporting underrepresented people in the industry
  • Ensured that every hiring pipeline included a diverse panel
Can you give an example of what you retroactively changed in a career framework without being too intrusive?
At Spotify, we created a new framework where there had been none. At Avvo, we completely replaced a very traditional structure with one more suited to our culture. At Onfido, we are currently evolving our framework. We are making conscious deltas from the previous career-pathing model to support how our culture has evolved. We have clear goals and will follow the path described in my talk to make sure that the team understands and supports the changes.
How did you test the distribution?
We tested the distribution by doing an exercise with all the managers where we did a preliminary slotting of each person into what level we thought they would go into, including doing a calibration across teams. We then compared the resulting distribution with the one we expected to have when we designed the framework. This simulation also served as part of the training for the managers in the organization.
How do you roll out an updated growth framework in a company where you have something in place? Do you then re-map existing people within new levels?
You should roll out a new framework in a similar way to creating a new structure from scratch, but you should make the process of how you will map from the existing framework to the new one explicitly part of the plan. The mapping will be unique to the old and new pathing models, but you should do a calibration step to make sure that people get mapped fairly.
A lot of companies do give you more money only when you threaten to leave. Should people be rewarded for staying also when they don’t get promoted with a title?
If the only way for an employee to get a raise is for them to threaten to leave, then the company’s compensation system is broken, and they will struggle to retain employees.
Do you think there is a possibility to develop an application for career development? (If yes, let’s meet :))
I know of one, https://www.progressionapp.com/, our design team uses it at Onfido. In general, it is hard to develop a career development tool that would be useful for multiple companies because, by requirement, it would need to be generic. I’m advocating for each company to build a unique career development framework. So, there is a mismatch there.
Is there a single company doing all of this well?
I think that many companies do this well. I only have direct experience with the ones that I have worked at, though.
Thank you, Kevin, for your interesting speech. I don’t have a question but as introvert I wanted to thank you for bringing up this issue.
You are welcome!
What about the people who are not promoted, do they have to work on continuous improvement to reach the goal.? Or are they considered as under achiever.
That will be contingent on the company culture. Some companies have an “up or out” culture that expects people to be continually working towards the next milestone in their career progression, or they will be moved out of the company. Other companies support folks who do not choose to pursue the next level. It’s a decision that must be incorporated into the design of the framework itself.
What to do when someone wants to be a manager but is clearly not going to be a good manager – how do you present other options to them?

You should have tracks that support people who want to remain and progress as individual contributors as well as those who want to move into management. If people can move forward in their careers in either track, then there is no pressure to move into management to advance in their career.

If you have good IC and manager paths and someone wants to move into management even if they aren’t suited for it, then you can have an honest conversation about how you see their skills relative to the role that they want.

You mention candidates having all the criteria for the next role. In some cases is it not impossible to have this without experience in the next role?

It is the responsibility of the manager to help people progress in their careers by allowing them to grow by taking on additional responsibilities when they are ready.

The manager should be giving the employee chances to get the experience needed to progress.

Any tips on creating a meaningful growth path in a small company without much hierarchy, where vertical growth is very limited?

In a smaller company, people can feel meaningful growth and career progression without a formal career path. If you do create a career path, you have to build it so that people can progress even without company growth.

Rather than building a career path, instead, focus on making sure people have opportunities to learn new things and take on new responsibilities and then find ways to celebrate them when they do. You can give people meaningful milestones in their personal development without having to make a formal career path.

This mostly considers a straight or slight forking line of development. What about moving across the business. A dev becoming product etc. How do you roadmap?

You can decide if you want to support this in your career pathing design explicitly. It does not tend to happen that often, so unless you want this to be part of your culture, you can probably treat it as an exceptional case.

If you don’t want to be explicit about how to transfer between functions, you can have people apply to the role they would like to switch to and evaluate their level against the new career path just like any candidate.

How can you make an attractive offer in regards to career development for developers? Can you give some concrete examples?

Make your career path and core parts of your culture public, given documentation on them to candidates. When you interview the candidate, ask them where they want to go with their career and then discuss how your career pathing framework can support their development.

I’m not sure I understand what you mean by concrete examples here. Feel free to clarify in the comments.

Would you recommend including values into the promotion process? If yes, how?

Your company’s values should be part of your career pathing framework and, therefore, part of the promotion process. If your companies values are not part of your career pathing, then you send a message to the organization that the values are not real values.

One way to tie the values into the pathing is to think about how each value would be demonstrated at progressive levels of professional maturity and use that as part of the requirements for each level.

What do you think about creative naming of roles? A lot of companies are renaming roles to make them sound more exclusive etc does this confuse career paths?

At this point, I think software engineering titles are so polluted from title inflation that it doesn’t matter what we call them anymore.

There are two benefits I see from using a more “traditional” title naming scheme. One advantage is that the job posting is easier to find, and when a recruiter contacts a candidate about the role, it may make it easier to decide if the candidate approaches them back. The second benefit is that people may have a title that they are mentally aiming for, “Principal Developer” is more likely to be someone’s career goal than “Master of the coding arts.”

You can always choose to have internal and external titles. One is the title that people inside the company use when talking to each other, and the other is the one that people use when talking to external people. People will do that naturally when speaking to outside people anyway, rather than try to explain some unique title naming scheme.

How do you make sure we don’t bias towards the people we have now, while ignoring the people who may join in the next year with different motivations?
If you have experience working in companies at different stages, you can try to anticipate what the next set of joiners may want, but it is probably a futile exercise. Focus on the company you are today. Make sure that you revisit and revise your career pathing framework with a reasonable frequency so that if it doesn’t perfectly align with the motivations of a new joiner, then they know they will have an input into the next iteration.
My last company decided to create a career path when I asked and for me that was a red flag. It means they were not thinking about employee progression. Agree?
Without more context, it is tough for me to make a sound judgment. In my talk, I make the point that you can create an employee progression framework too early. The company needs to move from the phase of “will the company exist a year from now?” to “what will my role be if I choose to stay another three years?” If you are asking the second question at a seed-stage startup, you are probably in the wrong place.
Many companies treat tech career pathing by intertwining seniority and leadership. What about people who want to grow and not lead? There can only be one CTO?

I am going to rephrase your question in the way that I believe you intended to ask. Please correct me in the comments if I got it wrong. I think you meant “intertwining seniority and MANAGEMENT.” I expect senior individual contributors to be technical leaders just as much as I expect senior people managers to be leaders.

In my talk, I make the point that companies should not intertwine these two things. There should be an individual contributor track and a management track, and as much as reasonable, the responsibilities and pay should be comparable, right up to the C-level.

  • As you say, there can be only one CTO. However, there can also be a Chief Architect, who may not be part of the executive team, but who has a level of responsibility and leadership equivalent to an SVP or similarly senior role.

  • When you have built a well functioning engineering team and things have stabilized, how do you keep career progression open?

    I have been privileged to work in some very stable, well-functioning engineering teams, including people with multiple decades of tenure.

    The biggest challenge to keeping career progression open is an unhealthy retention rate (too high), especially if organizational growth is near flat. I have seen this create a problem in an organization where up-and-coming talent leaves because they have a cap on their growth since there are no senior roles available. This describes one company I left after several years of very positive career growth. I knew that I had reached a level where I would be stuck, potentially for many years, because there were no roles likely to open above me for some time, and the company kept headcount flat year over year.

    The best thing you can do in that situation is to help your up-and-coming talent find new roles outside the organization, and then keep in touch with them, so that when a senior role does open up, you can hopefully get them to return.

    How do you know an idea is worth stealing/it makes sense in your organisation?
    Has the idea worked in an organization your size? Do you see it scaling up or down to your dimensions of an organization? Does it align with your culture? Would you need to do some culture change work to implement it? Is there a way you can try it in a limited way to test it in your organization? And of course, does it sound like a good idea to you? An idea that you can champion?
    Do you think it’s good to have career path development for start up with 60 people?
    How old is the company? What is the average tenure of an employee? If both of those are low numbers, then probably not. It is maybe too early for you to focus on career path development. Unless managers are getting questions about career development commonly from employees, that should be your first warning sign that it is time to think about career pathing.
    Doesn’t waiting for the timing to build a career pathing seem reactive? Ideally an organization should be proactive i.e think ahead of your employees.

    Yes, it is reactive. I think about it this way: One of the most attractive elements of a startup is the flexibility and freedom that come from being a small, growing company. Trying to impose structure and process too early can feel “corporate” too soon to those employees. It is also hard to establish what responsibilities levels should have as the team is still forming. You are likely to build a framework that matches current employees (who don’t want structure) instead of the one that will work for the employees who join later and are expecting more structure.

    If your company is already established and is of a certain size and attracting employees who want more structure, then you have probably waited too long.

    Do you think a good career development framework kan help with developer retention?
    A useful career development framework primarily exists to support retention. Beyond establishing career paths for employees, it also helps benchmark salaries for new hires. A career development framework ensures that pay is fair relative to the market (which is also essential for retention).

    If you read the slides and have questions not answered above, please ask them in the comments.