Steve McConnell wrote a book called “After the Gold Rush” that was published back in 1999. He wrote about how the software development industry would benefit by maturing and becoming a professional industry that had learned from the mistakes made during the tech bubble of the late 90s (Steve is actually better known as the author of “Code Complete,” a great book that influenced very many developers). We, as an industry, have learned a lot since then and there are far fewer colossal failures, but we still have plenty to learn about building successful software products. This is especially important when you’re considering your next gig.
The (tech) Gold Rush is still going strong, having dipped only a bit in the mid-naughts. If you’re an experienced designer, developer, or product person… you have more opportunity than most people out there. That’s a great position to be in and we should all be thankful.
All that opportunity makes deciding where to exercise your talents harder. There are many factors at play when you’re looking for a job, some of which may be obvious (e.g. size and location) and others which require looking inwards (e.g. culture, work style, and hierarchy). If you’re looking for a new gig, here are some tips that will help with the process.
What are you looking for?
Of course you know what you want, right? Well, it’s okay to admit that you’re not totally sure. After all, there are many variables involved in what makes a job the right fit for you. It takes time figure out what the options are and experience to know how they’re different in practice. Here are some questions to get you thinking about what you want:
- Do you care more about what you’re building than how it’s built and with whom you’re building it?
- Do you want to work someplace where you’re given the room to dive deeply without interference for days or weeks at a time, or do you like collaborating daily? Is pair programming important to you?
- Do you want to work from any place at any time, or do you prefer to work with people in person and/or on a schedule?
- Do you want to be told what to do, or given abstract goals and then expected to find solutions that realize those goals?
- Are you more excited about solving technical problems than thinking about how someone will be using the things you build?
- Do you like cozy vibe of a small company or the immensity of a large company (or something in between)?
- How important is stability?
The only right answers are the ones that come out when you are being honest with yourself. Soul-search a bit to see what else is important and ask your friends what they value to gain additional perspective. Getting out there and talking to real companies is a good way to hone in on what matters too; sometimes you just have to see it to know it.
Now that you have found some companies to check out, or they’ve found you, it’s time to learn as much as you can about them.
The Interview Process reflects the Company Culture
How a company conducts an interview is an important indicator and is representative of how they treat and respect their employees. It’s valuable information that shouldn’t be ignored. They should work hard to connect with you during an interview. Do they care about what you’re interested in or just interested in what you can do for them?
Interviewers should focus on what you know and care about, not what you don’t. Hopefully you haven’t had to sit through an interview where you’re asked questions about stuff with which you have never claimed to have experience. A good interview is going to focus on what you say you know and measure the depth of your understanding of your strongest skills, not your weakest.
If you’re a developer, you should be asked to write code as part of the interview. If you’re a designer, you should be asked to design something or facilitate a design activity. Whatever you’re doing, you should be doing it with an employee of the company, rather than asked to spend a hunk of time completely on your own.
That’s because interviews are mutual. You should not only be allowed, but actively encouraged, to ask questions so that you can decide if the company is right for you.
Ask the Right Questions
Despite all of the lessons learned since The Bubble, a huge difference between companies that are doing it right and those who are just getting by remains. It’s actually pretty hard to reliably tell the difference from an interview. Ask the important questions in the right way, otherwise you may have an unpleasant surprise when you show up on day one of your new job.
Don’t forget, recruiters and hiring mangers are salespeople. It’s their job to hire people like you. That doesn’t mean they’re liars or otherwise evil, but it does mean that some people will try really hard to give you the answer you want to hear without going as far as lying. You can get to the root of things by asking questions that are less susceptible to slippery answers. Here are some examples:
Instead of: Is there work/life balance?
Ask: When do employees come and leave? How many hours do staff work per week? How do you know whether or not employees are working long hours? Who works on the weekends?
Instead of: Do you value code quality?
Ask: How does the team measure code quality? Is it enforced? How does the team deal with the entropy that affects every product and manifests as technical debt? How long does it take to run the test suite and what kinds of tests does it include?
Instead of: Do you validate ideas before building them?
Ask: Where do ideas for new features come from and how are they validated? Ask how a fledgling idea grows into software that’s placed in to the hands of customers.
Instead of: Is the company diverse?
Ask: What is the gender/ethnicity breakdown by tech/non-tech workers? What are you doing to build a diverse team? Why is a diverse team important to the company?
Ask people to explain what their day looks like in detail. How do they know what to work on? If someone is telling them, how does that person figure out what’s important? Ask follow up questions about the answers you’re given.
Don’t be afraid to ask questions about the business too. What are the revenue sources and how healthy are they? Why is the company growing? It’ll be harder to get detailed answers from private companies, but you should be able to get something.
Asking good questions not only gives you a better idea of what the company is about, it’s also going to improve your standing with them. Being curious and showing some dynamic inquiry makes you an attractive candidate.
Within five minutes of walking into a tech company office, you’re likely to see a wide range of very shiny things. In house chefs, foosball, ping-pong, beers on tap, cafes, full bars, DJ booths, stages with musical equipment, game consoles, trampolines, meditation rooms, etc. It’s easy to forget that this is a place where people (supposedly) get work done. Don’t get distracted by the shiny things.
What’s behind all of those shiny perks? Do they want you to work long hours? Are they making up for something that’s missing (like a business plan)?
Don’t get me wrong, perks are nice and not always a negative indicator, just don’t forget to ask the hard questions. The perks and toys may be fun, but they’re not what makes a job rewarding and deeply satisfying.
People Matter Most
I hear a lot of stories from people about about their jobs… the good, the bad, and the ugly. A common message has emerged from those conversations: the specifics of what’s being built matter less than the quality of personal interactions. That isn’t to say that the “what” doesn’t matter, but if you don’t enjoy the interactions you have with your team (and customers), it’s going to be hard to stay psyched, even when you’re building your dream product. Make sure you leave the interview knowing what you’re getting into and with a good feeling about the people with whom you’ll be working.
What do you look for when you’re talking to a potential employer? Share your favorite questions and tips for finding great jobs.