Four ways to improve your next job interview

Learn about your interviewers

They’ve almost certainly looked you up on Google, LinkedIn, and probably Facebook and Twitter too. You can do the same. For example, search their company on LinkedIn for the type of role for which you’re interviewing. Even if you can’t find people specifically, you can get an idea of the culture and skills that are important.

Come with suggestions

Show that you’re really interested. They’re investing time in you, so show that you’ve done the same. Show that you’ve thought about why this job in particular is so important. Show that you’ve taken the time to research what they do and try to understand it.

One of the best ways to prove your interest is to offer suggestions on how to improve their product, process, or some other part of the company. They may disagree with your idea, but they’ll appreciate that you took the time to try.

Don’t call it Resume.pdf

This is hardly new advice, but it’s evidently still a problem. I currently have 14 files called Resume.pdf in my default download folder alone. Put your name and something descriptive in the filename, so it’s easier to find and remember.

For example: “josh_tyler_resume_sw_engineer.pdf“

Five minutes early is much better than five minutes late

Obviously. But let me explain why.

First, it might come across as rude. You’re taking this seriously, right?

Second, if you arrive early, your interviewers might not be fully prepared. This gives you a tiny psychological edge. (If you’re into mental judo or Sun Tzu-type stuff.)

Finally, you’re possibly shortening the time available to impress with your skills. If you’re fortunate, your interviewers will have extra time to run late. But they might not.

Remember, your interviewers have to start by assuming you’re not going to get an offer. The interview is your time to prove you should. Don’t shortchange yourself.

Next Story — Writing a Book
Currently Reading - Writing a Book

Writing a Book

Last week, I was proud to publish my first book, Building Great Software Engineering Teams: Recruiting, Hiring, and Managing Your Team from Startup to Success. This book is the result of years of experience and writing on topics of software management and team-building, and was only possible because of the support of many people I’ve met along the way.

The idea for the book originated with my writing here on Medium. With the support of a great editing team at Apress, and a lot of nights finding a few extra minutes to squeeze in some writing, it quickly became a reality. Here’s why I was driven to write such a book.

After several years as a professional software engineer in a variety of Silicon Valley companies, I started to develop an interest in technical management. The primary reason was simple: I disagreed with decisions being made by my superiors (or at least thought I did) and realized the only way to do something about it was to get into those conversations. This wasn’t purely driven by hubris or an inflated sense of self-importance; I honestly felt I could make things better for the engineers with whom I worked. I believed we needed an advocate and representative for the technical folks on my team, and that I was the most willing and motivated to provide that service.

My first real experience in management came at a local-events web-search company called Zvents. Later acquired by eBay, Zvents was in many ways a typical fast-paced Silicon Valley venture-funded startup. At the time I became a manager, my small team of engineers was working furiously on several initiatives as the company iterated and experimented on the product. I had a lot of ideas about how my team, and the company in general, could be doing things better — and I was certainly wrong about most of them.

Over the next several years at Zvents, robotics research lab Willow Garage, and robotic telepresence startup Suitable Technologies, I gradually figured things out. Through a series of mistakes (some of which are detailed in this book), a consistent effort to learn by reading and consulting with experienced managers and leaders, and analysis of what has worked and failed in my own experience, I developed a deep appreciation for the challenges of the position and much sharper instincts about how to succeed. Only now do I believe that I truly understand what it means to build and manage a team.

As vice president of engineering and design at Course Hero, the world’s leading crowd-sourced educational materials platform, I’m able to apply this knowledge and experience on a daily basis. With the support of our chief executive officer (CEO) Andrew Grauer, we’ve created a team that’s productive, sustainable, growing fast, and a joy to be part of.

I don’t look at the information in my book as part of a zero-sum game. By sharing what I’ve learned, I hope to make others more effective in their work, help build value in interesting new companies, and, perhaps most important, make engineers around the world just a little bit happier.

The book on Amazon:

Next Story — Do You Want to be a Manager?
Currently Reading - Do You Want to be a Manager?

Do You Want to be a Manager?

Years ago, in an interview for an engineering management position, I was asked, “Why do you like being a manager?” I had never been asked this question so plainly. Having no prepared answer, I had to think about it for a bit. Finally, I responded, “I like to make people happy.”

It’s more than just making people happy, of course. A more complete description of technical management might be, “Achieving business and product objectives while simultaneously creating an engineering culture that delives results and makes people feel their work has an impact and that they are progressing and developing new skills.”

You’ll struggle to be effective in the long run, however, if you don’t truly enjoy the idea of making people happy. Not just your reports, but all of the other departments of the company that count on you as well — Product, Marketing, Support, and so on. All of these people are looking to you to make them more productive, efficient, confident, and, well, happy.

As you consider the prospect of a career managing engineers, let’s discuss some of the important aspects of the role.

You Work for Them

Contrary to what you may see and hear from a lot of people, a manager is not most effective when telling everyone what to do. When you’re responsible for creative professionals, the best results come from creating the environment, structure, and process in which those people can flourish, and then trying to stay out of the way and remove obstacles.

Michael Lopp (aka Rands in Repose) captures this concept perfectly in his excellent book, Managing Humans:

Another favorite move of the busy manager is to schedule a 1:1 for 15 minutes or less. It’s the best I can do, Rands. I’ve got 15 people working for me. First, those 15 people don’t work for you; you work for them. Think of it like this: if those 15 people left, just left the building tomorrow, how much work would actually get done? Second, if you’ve got 15 people working for you, you’re not their manager, you’re just the guy who grins uncomfortably as you infrequently fly by the office, ask how it’s going, and then don’t actually listen to the answer.

You’re trying to build a team of people you can trust to do great work, which is why recruiting and hiring are so critically important. To achieve scale and speed in your organization, you simply must hire people you can trust, and then give them as much autonomy as possible.

These people don’t work for you; you work for them.

Your Time is Less Important than Theirs

A good manager is obsessed with removing obstacles and time-sinks. In many cases, this means taking on tasks that would ordinarily distract people on your team.

To fully embrace this mission, you should adopt the attitude that your time is less valuable than that of your team. Though not strictly true in all cases, this philosophy will give you a useful perspective on how to best spend your time.

The typical workday of a manager is different from an engineer’s in a few important ways. First, it’s full of interruptions and context shifts. Whenever someone has a problem, you’re there to help, no matter what you were already doing. Second, a manager usually talks to more people, more frequently, than an engineer. The job is largely about communication. Finally, a manager is a pressure release valve for issues building inside a team. By coming to you first, people can head off more destructive outcomes that interrupt the workflow of the larger team.

These differences make a manager more suited for handling a lot of tasks that affect a team. By spending a few minutes resolving a personal conflict or bureaucratic process question, you can save an engineer hours of interruptions, learning about things in which they have no interest, and dealing with frustration.

Perhaps it’s not totally accurate to say that your time is “less valuable” than that of your team, but that the time you invest in certain tasks is returned many times over in what it saves your team.

Example: Hiring

As Course Hero’s Engineering and Design team has grown past 25 people, one thing that hasn’t changed is that I, the VP of Engineering and Design, still screen all resumes and conduct our first-round phone screens. Though it’s appealing at times to farm out these tasks, and I know our senior staff would pitch in without complaint, I continue to resist the temptation.

Screening resumes is arduous, unending work. As soon as you finish one batch, more come in, and unless you’re motivated above all else by the excitement of meeting new people and hopefully bringing them into your team, it will wear you down. I love building a team, and even I get fatigued by the process from time to time.

Asking for help starts innocently, but before long could create a burden that’s stealing hours a week, taking your best engineers away from the work they love, and sowing seeds of frustration. For these reasons, I plan to continue handling the front end of the hiring funnel for as long as possible.

You Care About Helping People with Their Careers

Career development is one of the most important functions of a manager. Creative, thoughtful people want to make progress, learn new things, and work toward goals, and it’s your job to help them. Furthermore, not everyone knows exactly what they want, or where they’re going, and you need to help them chart that course as well.

Being effective with career development requires many skills. Chief among them are:

  • Being a thoughtful listener
  • Possessing and being able to discuss relevant experience
  • Attentiveness to peoples’ goals and potential opportunities.

Let’s discuss each one a bit.


You absolutely must be a good listener — to have the patience to hear and discuss a person’s goals and thoughts, and give them the consideration required to be useful. Don’t interrupt, and don’t start giving advice until you’re confident you’ve gotten to the bottom of an issue.

If you quickly tire of hearing what other people want or need, management may not be for you.


It’s difficult to advise others on their careers if you don’t share their experience. How can you properly advise them on important choices if you’ve never faced similar ones? Your own path from engineer to manager or leader is a critical teaching point, and you must be comfortable using your experience to educate and advise others.

Furthermore, your credibility as a mentor will be limited if your employees don’t trust that you have the proper experience to guide them. Sharing relevant stories and information from your career is an important way to build the confidence of your team in your abilities as a coach.

If you happen to find yourself in a situation where one of your reports has a lot more experience than you, don’t hide from the situation or pretend it doesn’t exist. It may actually be a learning opportunity for you. You can still provide guidance by being an attentive listener and sounding board for questions and ideas. It’s better to be honest about your limitations than try to fake your way through it — inauthenticity is much more damaging than inexperience.


Understanding a person’s goals is only the first step. Next, you must find opportunities for them to make progress toward those goals. Do you have an engineer who’s been aching for a chance to move into mobile development? Remember that, the next time you have a position open on your mobile team. Has someone been hoping to add front-end skills? Suggest an upcoming conference or workshop that would help.

Being a manager means constantly trying to match people with the correct opportunities and projects. You’ll never make perfect choices, but in order to make the best ones possible, you must remain attentive and mindful of your people at all times.

If you’re only able to talk about career growth, but never able to follow through on it, you’ll eventually lose your team’s faith. Career development isn’t just a discussion of an abstract set of goals — it’s the realization of those goals through real-world projects and responsibilities.

You’re Not Afraid to Correct Behavior

When you see something being done the wrong way, or people behaving inappropriately, are you comfortable being the one to step in? Or would you prefer to wait and hope the issue resolves itself, or that someone else takes care of it?

As a manager, it’s your responsibility to handle problem situations. You shouldn’t be looking for confrontations, but neither should you run from them. Your team is counting on you to know when and how to correct incorrect behavior.

You need to do the dirty work.

Though you may have to deal with difficult tasks in the short-term, such as coaching an employee through an improvement plan, terminating a poor performer, or conducting a layoff, you should see clearly that these actions benefit the team and company as a whole. If you can’t convince yourself of that fact, then either you’re not suited for management, or the plan itself is flawed.

These sorts of tasks should be painful. If you actually enjoy firing people, you’re probably also not suited for management. You’re dealing with real people and significant consequences — it should be difficult to deliver harsh feedback or tell someone their job is gone. Only the conviction that your actions are necessary should push you to make these difficult choices.

You Can Trust Others

An effective manager must be able to delegate responsibilities and tasks to others. In some ways, your effectiveness as a manager is the sum (or product) of the actions of your team, so the more you can delegate, the more leverage you get.

As Andy Grove writes in his classic book, High Output Management:

Because managerial time has a hierarchy of values, delegation is an essential aspect of management. The “delegator” and “delegate” must share a common information base and a common set of operational ideas or notions on how to go about solving problems, a requirement that is frequently not met.

Grove continues:

[B]e sure to know exactly what you’re doing, and avoid the charade of insincere delegation, which can produce immense negative managerial leverage.

It takes time to learn when and how to best delegate work, but the first prerequisite is an ability to trust others to do things that you could yourself do. Without this trust, effective (or in Grove’s terms, “sincere”) delegation is impossible.

One useful approach to delegation is to look for ways to make yourself redundant. By creating the ability in others to accomplish your tasks, you free yourself up to work on other, higher-value projects. And by contrast, those who feel threatened by making themselves redundant (because it diminishes perceived job security) are not management material.

It can be a bit uncomfortable to trust others with tasks you can do, especially when you, as their manager, will be judged on the results. Don’t give in to the temptation to jump in and handle it directly — rather, trust your training and monitor progress from a distance. Get involved only if you see things going wrong.

Over time, this trust will be rewarded, as you build a team that can handle not only the tasks you used to do, but a variety of others as well.

You Like to Garden

One of the best metaphors for management is gardening.

To grow a garden, you start by preparing the ground and planting seeds, but if that’s all you do, your results will be disappointing. A thriving garden requires constant care, attention, and small adjustments.

Just like gardening, effective management requires patience and diligence. Cutting corners rarely works, and the results correlate strongly with the amount of effort put in.

The seeds of your garden are the people you hire. The soil is the team structure, process, and culture you instill. You must regularly water your garden with one-on-ones, discussions of how to improve things, and events that build team relationships. Every day you should be looking for signs of disease, over- or under-watering, or any of the myriad other dangers than can befall your team. And the harvest, when you ship your product, is a time for celebration that your diligence and hard work have paid off.

Just as you can’t grow a potato in a week, no matter how badly you want to, you can’t rush things as a manager. Short-term sprints are useful when used sparingly, but if you don’t want to strip the soil — burn out your team — you’ll save them for true emergencies.

You Obsess Over Details

If you miss something important that affects your performance — a costly bug in the product, a request from the CEO, or changes in the market that affect your team, for example — that’s a problem.

If you miss something important that affects someone else, someone for whom you’re responsible, that’s a catastrophe.

The people you manage depend on your ability to represent their interests, further their careers, and, by extension, improve their lives. That’s a lot of pressure. If you let them down by making simple errors, you’ll quickly lose this trust, and probably feel pretty bad about it too. The best managers double- and triple-check their work to prevent mistake, and learn techniques and tools to help them. These techniques often involve copious use of notebooks, calendars, and various types of productivity software.

You Care About Accomplishments More Than Friendships (At Least at Work)

In many ways, being a manager is a lonely job.

One of the most difficult parts of being promoted to a manager, from within a team, is accepting that you can no longer be friends with those on the team. Your priorities have shifted, and your primary responsibility is now to get the best results out of your team — not to be buddies.

As a leader, you now represent the company to the people on your team. Your actions reflect the culture, mission, and goals of the company, and your people will see you more as a company representative than as an individual. This loss of identity can be difficult to accept.

In some ways, becoming a manager means losing a lot of friends. No longer can you commiserate with your team about decisions with which you disagree or make jokes at the company’s expense. You always have to be “on” in front of your team, showing your best and most professional side. Furthemore, they don’t want to hear about your problems. It’s hard to empathize with your boss.

Your friends are now the other managers at your level — and there aren’t nearly as many.

Personal Experience: First-time Manager

My first experience as a manager was at local events search startup Zvents (later acquired by eBay), where I was promoted from web developer to manager of the front-end engineering team. Like a lot of first-time managers, I was more confident than I deserved to be. I thought, “I’m smart, how hard can it be?”

Needless to say, I faced a lot of challenges during that time, but one of the biggest changes I had to accept was the relationship change between me and my former colleagues, now my reports.

I had a lot of fun with the other engineers. We worked hard, but also joked around, teased each other, and spent time together outside the office.

We also shared our successes and failures. Shipping big releases was a bonding activity. More importantly, when bugs and other problems were found, we didn’t point fingers or try to find someone to blame, we shared the responsibility of coming up with a solution. When the VP came over to tell us the site was down, we buckled down and fixed it together.

After I became the manager of the team, though, that changed. Now the VP came to tell me, specifically, when there was a problem. Being friends with the other engineers was now secondary to delivering results. I couldn’t commiserate about things like company decisions we found silly, since it was now my job to keep morale up and motivation strong. And it was hard to have fun and goof around when I also knew that I would have to judge peoples’ performance.

In short, nobody cared about my problems anymore.

This shift was hammered home for me, conclusively and permanently, when I first had to help the company prepare for a layoff. In some ways, laying off an employee is harder than firing them, because it’s less about their performance and more about the company’s. It’s an admission that the company and, by extension, you have let them down in some way by failing to succeed as a team.

Zvents, like many startups, went through some ups and downs, and had reached a point where our burn rate was too high and we simply had to bring costs down. My role in the layoff was small, but it left an indelible mark on my management philosophy. I came to realize that my commitment to help people succeed in their careers, and to make our company successful, are more important than friendships, and that I would be letting my people down if I didn’t act accordingly.

This experience, and others like it, that I faced while receiving my education in management from the School of Hard Knocks, had me frequently questioning whether management was the right career choice for me. Ultimately I decided that it was, and have loved my work ever since, but I certainly would have appreciated some more preparation for the challenges and decisions I had to face.


Management philosophy continues to evolve. To succeed leading creative, highly-trained technical teams in a fast-paced environment, the best managers today are motivated by the idea of helping others — helping people grow in their careers, helping solve tricky problems of which others are scared, and generally doing whatever is necessary to help their teams be more productive. These managers also are highly attentive to any factors affecting their team, and have the ability to trust others with important responsibilities.

Next Story — Teachability: The top thing we look for in software candidates
Currently Reading - Teachability: The top thing we look for in software candidates

Teachability: A must-have quality for software candidates

In discussing and preparing for software interviews, people typically focus on the technical aspects: Algorithm design, data structure selection, performance and complexity analysis, and so on. As our interview process has evolved and matured at Course Hero, however, the factor that probably rules out more candidates than any other, is this:


Everyone is going to learn and grow into a new position. Nobody is a perfect fit when you first meet them. The question, therefore is: How much of an investment do we need to make in this person, and how much will it pay off?

Junior candidates will require more mentorship than senior ones, but in both cases, some will be required. Even for people who already are skilled programmers, they need to learn our process, codebase, and conventions. In our interview process, we’re looking for signs that this mentorship will be productive. It really boils down to two questions:

  • Is this person interested in learning?
  • Is this person capable of learning?

There are a few ways to demonstrate that you are teachable in an interview setting.

  1. Receive and incorporate feedback from your interviewer. If they suggest a way to approach a problem, listen. They’re not trying to trick you. (If they are, I suggest you interview somewhere else.) Respond to that feedback and try to incorporate it into your work. You might know a better approach, but if you decide to say so, you need to be right.
  2. Apply things discussed earlier in the interview to subsequent questions or problems. This is a great way to demonstrate you’ve learned something.
  3. Communicate and have an active dialogue as you work through things. Good communication is an indication that people will be able to have productive work sessions with you.
  4. Talk about projects where you’ve tried to learn things, beyond strictly what was asked. Show that you’re self-motivated to learn, improve, and share knowledge with others.

Presenting yourself as a teachable team member can really set you apart — in your next interview and throughout your career as well. By nature, “being teachable” means that you are receptive to testing and trying new approaches. Your mentors and colleagues will be eager to share their unique perspectives, and you’ll learn how to attack projects from a variety of angles. This experience — and your willingness to learn — will be invaluable at your current position and beyond.

Next Story — A manager’s most important deliverable
Currently Reading - A manager’s most important deliverable

A manager’s most important deliverable

People moving toward management in their careers often develop a sense of unease about their contributions. This is natural. While it’s fairly straightforward to see your output as an individual, a manager’s work product is harder to define. Making peace with this ambiguity, and understanding the subtle ways in which you have impact, is a critical step in becoming an effective manager of people. In many ways, what you’re delivering—to your team, your manager, and your organization—is confidence.

As a software engineer, I always had a good, rewarding feeling seeing my code running in production. I knew that I had helped complete a project or ship a product. The hours I worked translated directly to an equivalent impact on the company. Furthermore, it was pretty clear whether or not I was doing a good job. Meeting deadlines, making customers happy, and keeping our product free of bugs are things that are relatively easy to measure.

As I started to take on management responsibilities, a new sort of stress crept in. More than just, “Am I doing a good job?”, you start to wonder: “How do I know what a good job is?” And, “What exactly am I doing, anyway?”

There’s an initial temptation to quell this anxiety by simply continuing to do a lot of work as an individual contributor—to keep doing your old job while you learn the new one. For me, this meant writing and shipping code. For a little while, this makes you feel better, and might seem like a solution. Over time, however, the pressures of doing two jobs simultaneously will break you. I reached this point one evening when I woke up on my train ride home, groggy and confused, several stops past the one at which I was to get off, the first time that had ever happened. At that point, I knew I had to choose—be an engineer or be a manager. You can’t be both at the same time.


What I now understand, years later, is that the primary deliverable of a manager, the most important thing a manager can produce, is this:


This means different things for all the people you interact with.

Your team is confident that:

  • You have their best interests at heart.
  • You give them the information and tools they need to succeed.
  • You help them grow as people and professionals.
  • You protect them and advocate for them, insulating them from the distractions of corporate politics.

Your manager is confident that:

  • You get good results from your team.
  • Your team acts and behaves consistently with company goals and practices.
  • Your team is happy and satisfied with their situation.
  • You provide adequate career development for the people on your team.

Everyone else in the company with whom you interact is confident that:

  • You’re doing the the things that the company needs you to do, and doing them well.
  • You’re a valuable person to have in the company.

Recognizing that your deliverable is confidence makes some things easier. In particular, determining how much value you’re adding. Are the above statements true, for your team, manager, and colleagues? If yes, how sure are you?

Setting up tests

Understanding the answers to these questions is critical.

As an engineer, you typically write unit tests to make sure your code is functioning as desired, and to detect when it breaks. Think about the equivalent for the assertions about confidence, above. Your tests aren’t in code, but people. Who can you trust to tell you when people are concerned about a decision you make? What communication patterns can you establish to tip you off to a looming crisis of confidence? Regular one-on-one and staff meetings, if done correctly, are an important part of the solution.

Confidence is valuable

Getting great results from a team requires confidence. Without it, people will regress toward second-guessing each other, risk aversion, and a general loss of productive collaboration. Building and maintaining confidence in your team, and others, is an incredibly important and valuable skill, and the most important one for a manager.

Sign up to continue reading what matters most to you

Great stories deserve a great audience

Continue reading