© William Gant 2019
William GantSurviving the Whiteboard Interviewhttps://doi.org/10.1007/978-1-4842-5007-5_10

10. What to Learn During the Interview

William Gant1 
(1)
Nashville, TN, USA
 

The goal of an interview is not to convince someone to hire you. It’s for the interviewer to determine whether to hire you and for you to determine whether you want to be hired. Both sides are equally important. The interviewer should, theoretically, have their end of things under control. However, you have to make a decision about whether you want to take the job. Not only should you not take a job that isn’t a good fit but you need to have some reasonable criteria to arrive at your decision.

Most of this stuff is highly subjective. Personally, I don’t really care for corporate cubicle-style environments. They make me miserable. However, I have friends who do extremely well there and are miserable in the sort of small business environments where I thrive. Everyone has different preferences, and you’ll need to carefully consider yours in light of any jobs where you interview.

In this chapter, we’ll discuss some of the things you should be learning from the interviewer during the course of the interview. Not only does learning this stuff help you learn more about the business but also changes the tone of the conversation. Interviews are far better when they become a discussion of whether you and the organization want to work together, instead of you trying to convince them to hire you.

Why the Right Kind of Organization Is So Important

It’s not just about whether you can work with a particular organization, but you also need to make sure that the organization is suitable for you. Depending on your current life circumstances and your goals, any given organization might be more or less suitable for you.

An older, larger organization is more likely to be stable and have good pay and benefits. However, the work may be boring compared to other environments, and the opportunities for growth may be fewer. Smaller organizations may be far less stable and have lower pay, but may offer far better opportunities to improve your skills.

There are also cultural differences to consider. Smaller, newer companies may be a little more “relaxed” in regard to things like coding standards, dress code, and process in general. Older, larger companies may be more restrictive in these things. You can find employers that match your own preferences pretty easily, but you do want to make sure the organization fits in with your personality and goals. While considering this, don’t forget that by taking a job somewhere, you are inviting that organization into a sizable chunk of your life.

Risk Tolerance

The first major factor in evaluating an organization is the amount of risk that you are taking on by working there. Earlier, we discussed finding out as much as you can about the company and its quality-of-life factors. While research before the fact is great and can warn you away from companies that are having severe issues, it’s unlikely to tell you everything that might concern you. It may be impossible to find anything out about smaller companies, while larger organizations may have recently changed.

Toward that end, you need to be asking questions to determine how volatile an environment really is and comparing that to the information you found in your research. Here are some good ones to start with. You should be trying to get answers to these questions during the interview, although you may not have to ask them directly.
  • How stable is the organization’s revenue? Has that changed in a big way recently?

  • How long do employees typically stay at the organization?

  • Has the company recently purchased another company (or been purchased itself)?

  • Have there been major changes to the management of the organization recently?

  • How much has the organization expanded (or contracted) in the last 18 months?

This may sound like a lot of prying (and it is), but to get a good idea of the risk that a particular job presents. We’ll get into why these questions require answers in a minute, but the goal here is to balance your salary against the possibility of suddenly finding yourself unemployed. This doesn’t mean that you don’t take a job that’s risky—some of the best ones I’ve had have been very risky. Rather, it means that you evaluate the risk and determine whether you can take it.

For instance, when I was single and during the early years of my marriage (before we decided to start a family), I worked at a few small businesses and startups with a lot of volatility. When we decided to have a child, I transitioned to a more stable, corporate job and stayed there for the first couple of years. Afterward, with finances a little more stable and childcare a little less expensive, I started consulting again. A few years later, we started wanting to move a little further out of town, and I started moving toward more stable employment. As I’ve gone forward and built out the podcast and other interests, it’s been important to me to keep the day job as stable as possible, simply so that other things will remain that way.

Over the course of your career and life, you’ll probably experience periods of relatively higher risk tolerance and periods where you really don’t want the risk. That’s completely normal. There’s also nothing wrong with having low risk tolerance, as long as you remain happy. There’s (probably) nothing wrong with a high risk tolerance all the time, so long as you have a backup plan.

The questions listed previously are designed to help you determine how risky a potential job is. Things like major changes to revenue, recent acquisitions (or sales), and large management changes could foreshadow structural changes to the organization. Sometimes these changes will be very good for you, while other changes could mean that you are the first one laid off, due to being the newest employee. Risk factors often come with at least some chance of a reward, but you have to evaluate which you think is more likely.

Rapid expansion or contraction of an organization can mean lots of problems. It almost certainly portends major changes in company culture over time (for good or ill). It also poses a risk to you, since these things tend to happen more than once. If the company had major layoffs, there is a good chance that more are coming. Similarly, a round of sudden growth tends to create a bit of organizational chaos until things settle down.

It’s also good to find out how long a typical employee will stay with an organization. If it is a short period of time, like a couple of years, you may find that there are good reasons for that. In particular, it can mean that the company doesn’t do a very good job with raises and promotions. Companies cannot retain good people if they don’t pay well.

You might think that this means that companies with very good retention pay well and have a good environment. That might be true, but there is another possibility. You’ll often see companies where many employees have been there for 10 years or more, while there is a lot of churn in the newer employees. This often occurs when the long-time employees aren’t particularly good, but are comfortable. The newer employees stay until they give up and then they leave. This is often referred to as the “Dead Sea Effect.” An organization with these characteristics tends to be highly siloed and resistant to using newer technology. While less of a risk in the short term, they can be a huge risk to your career over the long term, as these jobs tend to go away after you’re already well behind with your skills. As a result, you may find yourself out of work and having to improve your skills before you can get another job.

Structure

You should also learn a bit about the structure of the organization. Organizational structure may have deep hierarchies or be relatively flat. While a deep hierarchy typically reflects a larger organization, some smaller organizations have a surprising number of people between the average developer and the CEO. The way that teams are managed has a huge impact on developer quality of life and on the ability of developers to move up in the organization.

Additionally, the depth of the management hierarchy also makes it harder to know what is really going on in the company. If you work at a company without a huge hierarchy, you’ll often be able to see the warning signs of layoffs well in advance of them occurring, and you are more likely to have regular contact with the people making decisions. This can give you a lot more opportunities to provide value within the organization, but it also exposes you to corporate politics. Depending on your personality, this is either a bug or a feature…

Things get even more complex if your management structure isn’t in the same building (or even the same geographic area). While this can mean that you are largely left alone to do your work, it also reduces your chances of advancement. You’ll be spending more time showing your management that you are actually working, and it is easy to end up feeling left out. On the other hand, if your management is remote and you are able to show that you are productive, you’ll find you have a lot more freedom at work.

Pay Scale and Compensation

The interview, or shortly thereafter, is when you will find out about your actual compensation. Note that this may be wildly different than what was in the actual job listing. If you do particularly well in a corporate interview, it’s entirely possible that they will offer more money to bring you on board.

It goes without saying that you should know what a job pays before even considering taking it. To be honest, you’re probably better off knowing whether the pay rate is sufficient before even interviewing. You don’t want to waste your time interviewing with an organization that won’t pay you enough, unless you think you can get them to make you a better offer.

In addition to the starting compensation, you need to find out about things like benefits, time off, and insurance. While this varies a lot depending on where you live, these things are part of your compensation for working (at least in the United States—insurance tends to be very different elsewhere). In addition, if you are moving, or are incurring other costs for working somewhere, such as the cost of your commute, you have to be rather careful when evaluating a job based on compensation.

Rather than simply having your salary increase, what you really want is for your available disposable income to increase. That is, your spending power after your expenses should be steadily increasing over time, barring any lifestyle changes. We’re going to get into a little math here, but we’re going to try and keep it reasonably simple. First, an equation for disposable income (not available disposable income, which we’ll get to in a minute):
  • Disposable Income = Total Personal Income – Personal Current Taxes

The formula is simple and shows the first thing that you need to consider when looking at a job. Your disposable income is the money you actually get to keep after taxes, fees, and the like that you are forced to pay, simply to live and make a certain amount of money. You need to examine how a new job will impact your disposable income, especially if the new job will force you to move, because it’s easily possible to get a higher paying job and have less available money. For instance, if you are making $50,000 a year at a 10% effective income tax rate (it’ll be worse, but round numbers make math easier), then your disposable income would be $45,000. If you leave that job for a $60,000 a year job with a 25% effective income tax rate, then you’d still have $45,000 in disposable income. While that sounds like it would be the same, the latter would actually leave you worse off, because housing, food, childcare, education, and transportation expenses would probably be higher in the new location. If a new job leaves you with an equal or lower amount of disposable income, you should think long and hard about whether you want to take it. There are reasons you might, which we will discuss later in this chapter, but a decrease in disposable income might make life very uncomfortable if you are unprepared.

However, total disposable income isn’t a good measurement of your quality of life. You will still have other, nearly unavoidable expenses that will take away from your disposable income. While an exhaustive list of these would be excessive, pointless, and rather painful to think about, we can at least discuss some of the big ones. To be able to live, you’ll have expenses such as the following:
  • Food

  • Housing

  • Transportation

  • Medical expenses

  • Utility costs

  • Childcare (if you have children)

  • Insurance

  • Education and student loan costs

Many formulas for this sort of thing will try to calculate your discretionary income by using a complex formula using the Federal Poverty Line (FPL) formulas based on the size of your family, your adjusted gross income, and a bunch of other stuff that seems really relevant. We’re going to simplify this a lot. Discretionary income calculations can tell you that you have more money when you actually feel like you have less. In particular, things like housing costs, transportation, education, childcare, and medical costs can factor into this to make you feel like you are broke when the equation says otherwise. Instead, we’ll consider the following:
  • Available Disposable Income = Disposable Income – Mandatory Living Expenses

Now, there is probably an economist somewhere who is going to read this and get extremely annoyed by it. But realistically, this is how you, I, and just about everyone we know really look at income. We look at what money is available after required expenses to build some kind of decent life for ourselves. The category of “mandatory” expenses is really subjective. While you might change your definition of “mandatory” over time, you will certainly feel it if your “mandatory” expenses increase. This happens regardless of whether an economist thinks your assessment of “mandatory” is valid or not.

Additional available disposable income gives you options and helps you absorb risk. It makes it possible to save, go on actual vacations, and just generally enjoy your life. This is the number you are aiming to improve, regardless of the other stuff.

When calculating this number, you’ll want to include all the expenses required to keep your quality of life at a tolerable level. For some people, this means that you live in a small house in a “safe enough” neighborhood, can afford a bus to work, and maybe go fishing on the weekends. I have friends doing this, and it is easier for them to have a lot of available disposable income. On the other hand, you might really feel that you need to live in a really nice neighborhood, with good schools, and you want to be able to pay for childcare and a vehicle for travel. We’re not injecting any judgments of your life choices here—we’re just doing the math.

It’s entirely possible to move to a situation where your disposable income and your official calculation of discretionary income both increase, while your actual available disposable income decreases sharply. For instance, let’s say that you live in a smaller, third-tier US city where the average house payment for a 1500 square foot house is $1000 monthly (yeah, we rounded down considerably) and your new job requires that you move to one of the “cool cities” where the monthly payment for a 1200 square foot home is $3500 monthly, on top of additional taxes, including income tax. Furthermore, that $1000 a month house was in a safe neighborhood, while the $3500 a month house is in a rough neighborhood. This may mean that you now consider it “mandatory” to send your child to a private school for the low price of a cool $24,000 a year. Let’s assume that all the other taxes and fees come up to a total of $12,000 a year. The question you need to ask is not “how much did my income go up?” but rather “how much more money do I need to have a similar or better amount of available disposable income for the same quality of life?” For the drastically simplified example earlier, let’s say that you are bringing home $5000 of disposable income a month. Your available disposable income would be defined by the following formula:
  • Disposable Income ($5,000) – Housing ($1,000) = $4,000

When you really calculate this, you’ll need to include all of the mandatory expenses on your list, so the real number would be less than $4,000 a month. However, we’re simplifying this to help make this less daunting. Now, let’s look at the same amount for the “new job.”
  • Disposable Income (x) – Housing ($3,500) – Taxes ($1,000) – School ($2,000) = Available Disposable Income

If we were aiming for the same amount of available disposable income in the new job, we need to do a bit of simple math:
  • $4,000 = x – Housing ($3500) – Taxes ($1,000) – School ($2,000)

Or:
  • x = $4,000 + $3,500 + $1,000 + $2,000 = $10,500

The same available disposable income requires a pay raise of $5,500 a month, or $66,000 a year. For a family, that’s pretty steep. For the purposes of a family, this seems like an indictment of expensive, first-tier, “cool” cities. And it probably is.

However , there is another angle here. What if you are single, childless, and perfectly fine with a long commute from the suburbs of the “cool” city? You are competing with people that require an extra $66,000 a year, simply to be in the same situation they were in before. If you were to take a $50,000 increase, you could outcompete those people on price, save up some significant assets, and then pay cash for a house in the third-tier city later when you decide to settle down and start a family. Without the mortgage, the third-tier city is also far more affordable, so it’s entirely possible that living in the “cool” city for a while will help you more in the long term.

Hopefully you can see how playing with the numbers in terms of compensation and expenses can give you some evidence of whether a job is financially better for you personally. It also (probably) makes it obvious that you have more options the fewer “mandatory” expenses that you have. However, you have to balance that with your quality of life, or you may find that you can be miserable, even if you have relative wealth.

These considerations are helpful, but they don’t completely cover everything you might want to consider. In addition to the available disposable income a particular position provides, you also need to weigh this against the total hours required for your work. Let’s start with some equations to make that understanding a little more obvious. First, we’ll start with a simple calculation for your available hourly pay rate (assuming that you are a salaried employee). We’re basing this off of what you actually have available after “mandatory” expenses, because that’s really a better metric for how much money you are making.
  • Hourly Available Pay Rate = (Available Disposable Income / Total Hours Worked in a Year)

For instance, if you have $25,000 in available disposable income after your mandatory expenses, you are expected to work 40 hours a week and you get 2 weeks of vacation time in a year, then you could say your available hourly pay rate is $12.50. Every hour you work, you get $12.50 of money to do whatever you want. That’s actually pretty good, until you start realizing what it takes in most places to get $25,000 in available disposable income. It’s doable if you are frugal and negotiate well, but it is going to be difficult until you have a really good job and low living expenses.

Like the previous equations, it’s also possible to have an increase in available disposable income, yet have a substantially worse life. For instance, a $1000 increase in your yearly available disposable income may not be worth it to you when the new job requires 80 hours a week of work. In that case (assuming you went from 40 hours a week to 80 hours a week), your hourly available pay went from $12.50 to $6.50. Looking at just raw numbers, you are better off financially, but the strain that an 80-hour-a-week job will put on your health, your sanity, your relationships, and just your available time is immeasurably worse. It’ll be worse than that if the longer hours cause you to have a major health problem, cost you a lot of extra money by increasing expenses (or causing a divorce), or simply make you miserable.

The preceding equation is useful, but there are a few issues with it. First of all, Total Hours Worked doesn’t include the time you spend commuting, getting ready for work, and traveling to and from lunch (if you need to get out of the office to remain sane). It also doesn’t include the time and expense caused by being away from your residence, which can cost you money and time for everything from childcare, to difficulty in arranging doctor’s appointments, to having packages stolen off your front porch. The preceding formula is only a way to attempt to quantify whether one job’s compensation is better than another, and it’s really only a starting point for things you need to consider. There are a lot of things that are hard to quantify with money, so this is only a partial solution to the problem. This is roughly my thought process, but it doesn’t fit everyone.

Advancement Opportunities

In addition to your pay scale and other compensation, you should also consider a position’s potential future ability to create income. That income may arrive in various manners and is highly subject to your creativity. You shouldn’t just evaluate jobs in terms of what they pay for however long they last. If you only factor pay into your calculations, it’s very easy to end up in a job that doesn’t help you over the long term.

For instance, if your job pays tens of thousands of dollars more over the course of a year than any other job you can expect to get, yet your job relies on technology that is becoming obsolete, you may find it impossible to get another job at the same pay when that one ends. This can be especially nasty if the job loss is sudden.

It can also be pretty miserable if the job itself doesn’t take your career in the direction that you want it to go. For instance, I personally could make more money, especially over the long term, writing software for various situations in finance. I enjoy some of the kinds of work that such a job entails, but I would be miserable with the hours and stress that comes with it. I suspect the same would be true of game development and a lot of heavy corporate programming in general. Ultimately, I would like to own my own software business and be my own boss. A lot of jobs won’t help me develop the skills I need for such a venture, and many of them may make it more difficult to get out on my own. The concept of “golden handcuffs” in a job that you hate is a very real risk, and it’s one you need to avoid.

Therefore, it’s necessary to weigh the possibility of future opportunities against the pay that a job offers currently. Some of this calculation is still pay related. For instance, if a job helps you learn a skill that pays well, it may be worth taking instead of a job that pays more, simply because you can make more later and recover the difference.

The nonfinancial aspects also need to be considered. You (hopefully) have some idea of where you’d like your career to be in the next decade or so. If not, you need to stop right now and figure that out, simply to improve the quality of your decisions. However, most people that have gotten this far probably have an idea of what they want out of life over the long term (even if that may change later).

While the way that you evaluate the longer-term career options that a job represents is almost entirely subjective, there are a few considerations that might help you reach a decision:
  • How soon would you like to reach your ultimate goal? You will have to be much more aggressive in pursuing opportunities if the goal is shorter term, while even small improvements can help with a goal pursued over a much longer period of time.

  • What skills and mindsets does this position allow you to develop and what are those worth to you? Are these opportunities presented in a real-world environment (as opposed to a classroom)?

  • What industry contacts does this position help you to attain? Will you be able to leverage those later?

  • What opportunities does the position allow you for self-promotion? Can you build credibility with people where you will need it later?

  • Could you develop a strategic partnership with this employer later if you need it?

  • Will this opportunity allow you to develop business knowledge that you can use in later jobs?

  • Will you have the opportunity to learn management, sales, project management, or other skills that are useful across a broad range of other opportunities in the future?

  • Does this position allow you to work remotely or give you more free time to develop your own products or services if you desire to do so?

  • Does this position allow you to purchase real estate or other property in an area that you have identified as being a good investment? While this is out of the scope of this book, good real estate investments can make a huge difference in your income if you can get them.

  • What opportunities does this position offer you as far as finding a mentor who will help you grow?

  • Does this opportunity allow you to learn technology or technological principles that will help you get positions with even more opportunities?

There are a lot of things that can make a job more valuable than simply the money involved. As long as you can pay your bills with the money you make from a job, these nonfinancial prospects should be a huge part of the criteria you consider. You can almost always find a job that pays a little more than your current one, but if you want huge increases in your income, quality of life, and ability to control your career, there are far more important things to consider instead of money.

Training Opportunities

While the previous section focused on the longer-term benefits that a position offers, one especially critical item to consider over the short term is the availability of training in a position. In the fast-moving world of software development, training is critical if you want to continue to be employable. It’s also really hard to train on your own off the clock, especially if you have other obligations.

Therefore, it’s entirely possible to end up trapped in a particular job, simply because you didn’t get any training to help you stay current. Since life is easier with options, even if you don’t take them, you’ll need to make sure that the job provides adequate training opportunities and that those opportunities will actually allow you to advance. Here are some reasonable questions to ask:
  • Does the organization pay for training web sites like Pluralsight, LinkedIn Learning, or Lynda.com? At a minimum, most organizations should do this, simply because it allows employees to learn things as they need them.

  • Does the organization pay for learning on the clock? If you are having to study and learn on your own time, your total number of work hours in a year is much higher.

  • Does the organization pay for onsite training or for sending you to training offsite?

  • What about conferences? Do they pay? Do you have to take conference time out of your time off?

  • What about further education? Can you get a master’s degree if it would be useful?

  • Are there people in the organization who are further along in their career path who would be willing to act as mentors?

Employers offer varying levels of training, and it’s important to have an idea of what those are before signing on. You should ask about this during an interview. After all, if you stay there 5 years and don’t get any training, you may have to stay there from now on. While you shouldn’t necessarily rule out working somewhere based solely on training, you do need to factor training in when comparing potential employers.

Red Tape and Bureaucracy

Another item that you should consider when evaluating a potential workplace is the amount of paperwork, red tape, and bureaucracy that you’ll have to deal with as part of your day. While there are lots of people that don’t mind a little bureaucracy, those who hate it tend to really hate it. It’s pretty rare to find anyone who truly enjoys convoluted, annoying processes at work, unless they either wrote the process or they plan to rewrite the process. If you are neither of these and bureaucracy is something you loathe, you should find out how bad it is before you take the job. A few questions can help you find out how much pencil pushing you will be doing:

  • What software development lifecycle methodology do you use? While agile is all the rage, if they answer with “agile,” you should ask more questions. Poorly implemented agile is at least as bad as “waterfall” development and can often result in a lot more useless work.

  • How do you handle bug tracking? They should already have a process for this. If they don’t, you’re going to be spending a lot of time either implementing a process or paying the price of not having one.

  • How do you come up with and design new features? Many companies have an extensive design process in which the developers are expected to participate. Sometimes these processes are extremely painful to deal with.

  • What is your software’s lifecycle in the world? If they are continually deploying to the cloud, their documentation requirements and instructions will look very different than a company that deploys to client systems every 6 months.

  • How much project management overhead are developers burdened with? Organizations may vary from simply requiring developers to periodically update their status, all the way up to developers spending a ton of time in a project management tool.

  • How quickly can a new developer add code and add value to an application? If the answer is “weeks” or “months,” they probably have a bit of a process problem that will manifest as paperwork.

  • How uptight are they about their time system? A general-purpose time system can really help the organization, but an overly complex and Byzantine time system can quickly destroy developer morale, especially if combined with management that doesn’t see it as a problem.

Red tape and bureaucracy is not a reason to avoid taking a job. However, combined with other problems, it is certainly a reason to reconsider. Besides how it wastes your time, you may also be expected to be as productive as a developer who isn’t similarly burdened. This can mean excessive working hours or the possibility of a stagnant pay rate as you fail to meet ridiculous requirements.

On the other hand, organizations with no overhead have their own problems. They may have such poor processes that you are constantly trying to figure out what you should be doing, rather than actually being productive. You will need to make judgment call in regard to whether you can handle the bureaucratic workload that comes with any position.

While you may not be bothered by an excessive amount of paperwork, it also has downstream effects on the rest of your team. In many cases, it damages morale in a way that you will notice and that will decrease your quality of life.

Technical Debt

Finally , when evaluating a potential position, you should also try to get an idea of the organization’s level of technical debt. While definitions of technical debt abound, what you are really trying to discover is how much of the codebase is crusty, hard-to-maintain, mind-numbing junk. Your definition of that will be different than everyone else’s. That’s OK, because we’re using it to make a subjective judgment about a potential job.

Experience will teach you that most organizations who have any level of technical debt also drastically underestimate the cost of this debt. Technical debt can slow the development of new features to a crawl, trap a team in an out-of-date development framework, and even leave them helpless in the face of new security issues. It’s more than just developers disliking old code—technical debt is a time bomb waiting to explode under an organization.

Technical debt also makes it more difficult to hire and retain developers (unless the company wants to pay more). Developers often find it extremely frustrating and would generally rather avoid it. Worse still, technical debt also decreases retention of more skilled developers, meaning that over time the organization will fill up with people who are incapable of fixing the technical debt and incapable of getting away from it. This phenomenon is referred to as the Dead Sea Effect. As a result of this increased rate of turnover, many companies with significant technical debt will be interviewing new developers far more often than their size might suggest.

Technical debt probably bothers you as a developer. While some developers are less concerned by it, every developer has a threshold of tolerance for it. Past that point, the job becomes miserable and you’d rather be somewhere else. It’s often not the technical debt itself that directly causes the problem—it’s often the organization’s reaction to technical debt issues that causes unpleasantness.

Since there is some level at which technical debt causes too many problems to tolerate, you need to have some way of determining how much technical debt an organization has. This can be tricky, since organizations with severe issues in this area are usually in denial about how bad their problem is. Here are some questions that might help you get started:
  • How old is your codebase? A really old codebase is going to have lots of little wrinkles hidden in it, no matter how diligently the developers have tried to maintain it.

  • How common is it for developers to spend time refactoring or cleaning up code? If this never happens, or if the word “refactoring” seems to trigger something negative in management, their issues are probably severe. Worse, they may still have the management issues that caused the technical debt in the first place.

  • How do they prioritize bugs, feature requests from existing clients, code maintenance, and features for prospective clients? This will tell you a lot about how much technical debt is driven by management priorities.

  • How would you compare your development team a year ago to your development team now? If the quality of the team is roughly static or on the decline, that usually speaks to the sort of problems with retention that form most of the feedback loop that creates technical debt. Don’t expect an honest answer to this question with the team in the room.

  • What are your backward compatibility constraints? Either extreme can be annoying here. If they have to support particularly old browsers and operating systems, then they aren’t as likely to take risks with stability. If, on the other hand, they don’t care about it at all, you’ll probably still encounter many of the same problems that occur in organizations with excessive technical debt, namely that problems in the code tend to overshadow your efforts to fix things.

  • Has your organization always been comfortable with code cleanup and refactoring practices? If not, how recently did you change your mind? If a company has just recently started cleaning up their code, it’s often an excellent time to get hired there. Not only will this help force you to improve your skills, but this also reflects management changes that empower developers. The latter is not only important for your job satisfaction but also indicates management commitment to stop doing some of the things that lead to technical debt.

Technical debt can make a job more difficult than it has to be. Many organizations struggle with years or even decades worth of “temporary decisions written in stone” that have to be managed to varying degrees in order to be productive. However, cleaning up technical debt can be a lot of fun and can greatly improve your code if done in the right environment. You’ll only find out whether the environment is right by asking a lot of good questions.

Summary

In this chapter, we discussed some of the things you need to learn during the interview process. When interviewing, you should always be of the mindset that not only do you have to convince them that you’d be good but that they have to do the same for you. Toward this end, we discussed how organizational structures and tolerance of risk intersect with your own life goals. Next, we discussed how pay scale, advancement, and training opportunities are critical to your longer-term goals and how to find out about them. Finally, we talked about how red tape, bureaucracy, and technical debt can be motivation killers and how to find out how bad it is before taking on a job. In the next chapter, we’ll discuss some interview red flags that could indicate that a job is unsuitable.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.221.154.151