2017 Louisville Tech Community Salary and Benefits Survey Report
Released February 2018
Louisville Tech Community Survey Committee
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Table of Contents
- 1. Introduction
- 2. Confidentiality and Protection of Sensitive Data
- 3. Sample
- 4. Salary
- 4.1. Salary Modeling
- 5. Benefits
- 6. Languages We Use
- 7. Job Satisfaction
- 8. Open Comments
- 9. Limitations
- 10. Footnotes
1. Introduction
The purpose of this report is to present and discuss the results of a survey distributed by the Louisville Tech Slack community. The survey grew out of a discussion on our Slack channel regarding local salaries and the common perceptions that technology jobs in Louisville are not as well-paying as in other areas and that the national tech salary surveys do not accurately represent the Louisville area. The survey was created by a small group within the Louisville Tech community and made available for public response during the month of December 2017. Anyone in the tech community who lives and/or works in the Louisville area was invited to respond. If you have any questions about the information in this report, please contact the organizers via LouisvilleTechSurvey@gmail.com.
2. Confidentiality and Protection of Sensitive Data
We recognize that salary and other compensation can be a very personal topic of discussion, so no question in the survey was required; any participant could skip any question they did not feel comfortable answering. To that end, some of the statistics and analyses in this report may be based on different numbers of responses and is noted where appropriate. Additionally, certain statistics may be listed as having been redacted. In these instances there was data available but we did not feel confident that we could protect against the potential of data being associated with a specific individual. Finally, while individuals were asked for the name of their employer as part of the survey, only one company had enough responses to do any kind of by-company salary analysis. As such, company data was removed from the dataset and not used in this report.
3. Sample
We received 207 responses to the survey, representing employees of 90 different companies. After case removals (see Figure 1), 193 responses remained for analysis.
The ethnic and gender makeup of the sample is given in Table 1. The vast majority of the people who responded to the survey were cis male (78.24%), white (90.16%), and not Hispanic (94.22%), which makes some of the subgroup analyses that were of interest more difficult or not possible to do. This also makes it harder to draw conclusions about the data, since a single response can have a disproportionately large effect on a statistic when the group size is small.
Of those who were willing to report their age, the median age was 34; half of those who responded to the survey were between the ages of 21 to 34 (Table 2). Combined with the length of time reported for working in tech (Mdn = 9 years), we can infer that the majority of people working in tech in Louisville have been working in tech for most, if not all, of their careers. These data also show that people in tech do tend to change jobs relatively frequently; 75% of the sample have worked at their company for 5 years or fewer, and half of the sample have worked there for 2 or fewer, although there are a number of outliers who have worked at their company for over a decade (Figure 2).
4. Salary
Within the full sample, 183 full-time employees provided income data. Since these data reflect a mix of salaried and hourly income, we converted the hourly wages to an annual salary equivalent (hourly wage x 40 hours per week x 52 weeks per year). Only salaries from full-time employees in order to keep hours of work for the amount of money relatively consistent. The mean salary for across this group was $88,011 (SD = 38,054) and the median was $82,000.
Discussing salary for the entire sample doesn’t really give the most useful information given the breadth of job types within technology. The survey asked individuals to give their job title, which we then sorted (via group consensus) in to one of 12 job categories. Figure 3 and Table 3 confirm that there is a good deal of variability in salary between the job categories; for example, architects have almost no overlap in salary with data scientists. Because of this, it made more sense to do examine salary data within job category and not across the full sample. Three categories (business, database developer, and instructor) had 3 or fewer individuals who both work full-time and reported an income, so only mean and median are reported in Table 3 instead of the full range of values to help prevent identifying any one individual’s salary.
Over half of the people who reported their income data were categorized as software developers (n = 97), while the remaining 86 responses were spread across the other 11 categories. Since none of those other categories had very many responses, the remaining salary data is reported only for software developers. Similar to the small numbers in the demographic subgroups, it is hard to draw conclusions when there is only a small amount of data to work with.
One final concern is that most statistical comparisons assume that the data are normally distributed (that is, fall along a bell-shaped curve). Since many of the subgroups have a very small number of people in them, a single value can have an outsized effect on the mean. To avoid this, comparisons were performed using the median, so that any outliers will have much less of an effect than on the mean. The test we used to compare pairs of medians is the Wilcoxon-Mann-Whitney U test. This test is similar to the more familiar t test, but does not assume normal distributions and is appropriate for imbalanced group sizes (i.e. one of the groups being compared is much smaller than the other). When the groups are normally distributed, the U statistic has slightly less power to show a significant effect/difference than does a t statistic, but is a safer and more statistically conservative choice in a situation like this.
Note: categories do not sum to 183 because not all who reported a salary gave a job title.
One area of particular interest to the community was the perception that individuals who live in the Louisville area but work elsewhere remotely get paid more than those who work in Louisville. Via Table 4, individuals who work in Louisville have a median salary of $79,500, while those who work remotely have a median salary of $100,000, which is a significant difference (U = 254, p < .001). Interestingly, software developers who work remotely for a job based in Louisville were paid more than those who work on-site in Louisville (Mdn = $91.650 vs Mdn = $79,343), although this difference was not significant.
We want to remind readers to be cautious in interpreting these values. These results do not necessarily mean that all remote jobs pay better than local ones, or that the only way to make the extreme upper ends of the pay scale are to work remote jobs. It is possible that developers who wanted a higher salary than they could find locally looked for remote/national jobs, which means they would naturally exclude jobs from their search that paid the same as local jobs. That is, it is possible that the jobs do not pay more because they are outside of Louisville, but that these individuals sought out jobs that pay more, regardless of the job location. It is also possible that since remote jobs have a national talent base from which to select, those employers have to pay more to get the individuals they want, but that would in turn make such jobs harder to get because of increased competition; that is, the job doesn’t pay more because it is remote, but because of the talent/skills of the person in the job. While it may be that remote jobs do just pay better in general, or that the Louisville tech market is undervalued compared to other locations, the nature of a self-selected survey sample and relatively small subgroup sizes reinforce that these are relational observations only, not causal conclusions.
Other data in Table 4 shows how median salary grows with years of experience working in tech. Salaries for software developers rise quickly in the first 10 years, with a rise in median pay of almost $30,000, but level off after that point. Potential explanations include that most developers have reached senior developer level by that point and so have pay parity with anyone else at that rank or because those seeking higher salaries have shifted to other tracks (management, architecture, etc.) after gaining experience as software developers.
Table 4 also compared salaries for those working at tech companies (as self-defined by respondents) to those working at other company types. While developers working at tech companies did have a slightly higher median salary ($88,000 vs $81,700), the difference was not significant. There was also a greater amount of variability in tech company salaries.
In Table 5, we compared median salaries across demographic groups and education types, both overall and across levels of years of experience. To make the data clearer, we only used median salaries and not the full range as was used in Tables 3 and 4. Additionally, there were few enough individuals in some of the subgroups that some of the experience categories were aggregated instead of the exact categories used in Table 4. Even with this change, many of the individual cells in demographic category by years of experience had either no one who fell into that combination of categories, or only a single person. In the latter case, salary data was withheld from the table due to identifiability concerns.
The salaries for those identifying as female vs those identifying as male show that the males have a higher median salary ($83,200 vs $73,000 for the full software developer subsample). While this difference is not statistically significant, it is persistent across all levels of experience for which we had data. In all cases, software developers who identify as female make approximately $10,000 less than their male counterparts with the same amount of experience.
The difference in salaries for white vs minority (defined as reporting one’s race as anything but exclusively white) is somewhat harder to interpret. The overall difference in median salary is substantial ($66,000 for minority vs $83,000 for white) but not statistically significant. Looking at the salary by level of experience, median salaries are very nearly comparable for the experience levels for which there is data. The difference in overall median salaries is then possibly driven by the fact that all but one of the developers with more than 10 years experience is white. We would need a larger sample and more responses from minority developers in order to more fully explore this.
It is similarly difficult to interpret the data for Hispanic/Latinx vs non-Hispanic/Latinx software developers and for the type of programming education. The overall medians are almost identical (Hispanic/Latinx: $85,000, non-Hispanic/Latinx: $82,000) but the median salaries by level of experience have a greater disparity and variability. Likewise, the overall median salaries vary depending on type of programming education, but much of this variability could be driven by a lack of individuals with more experience for some of these categories.
The last topic we looked at with regards to salary was changes in salary, due to factors such as annual raises, changing jobs, or getting a promotion. Within the subsample of software developers, 69 people reported both a current and previous salary. As before, hourly wages were converted to an annual salary equivalent at 40 hours per week, 52 weeks per year. Figure 4 shows that the large majority of salary changes are positive, up to a $30,000 annual salary jump. There are a few outliers above that, up to $50,000, and a few who took a pay cut via a change in job title and/or change in employer.
Table 6 splits those salary figures by changes in employer and job rank (e.g. getting a promotion, change in job title). The largest median salary gains were for people who had changed job rank (Mdn = $9,500 for people who stayed at the same employer, Mdn = $9,100 for people who changed employers). These salary changes likely involved a promotion, such as becoming a senior developer. Individuals who stayed in the same job rank received bigger pay jumps by changing employers (Mdn = $5,000 for those at the same employer, Mdn = $7,750 for those who changed employer). As with other findings from this survey, we encourage caution in interpreting these numbers, as this was a relatively small, self-selected sample and not an experiment or large-scale survey with random selection.
4.1 Salary Modeling
We intended to use the data from this survey to build a model to predict salary, but were not able to come up with any strong models, especially given the limitations of the data and the sample. The single largest factor correlating with salary is years of experience in technology (r = .50), followed by whether or not someone’s job is outside of Louisville (r = .42). Taken together, these two factors predict approximately 40% of the variability in salary (adjusted R 2 = .39, df = 94, p < .001)2. Other than these two factors, however, none of the data we collected were significant predictors of salary or improved the overall model fit. Variables that were tried during modeling included gender, race, degree status (both 4-year and computer science degree), working at a tech company, and different groupings of languages individuals reported using as a regular part of their job (e.g. front-end languages, JavaScript frameworks).
5. Benefits
The second main section of the survey asked individuals about their benefits, both formal company-sponsored benefits (e.g. health insurance, retirement plan) and informal perks and other workplace enhancements, such as a flexible schedule or free food and drinks in the office. Since these benefits are usually the same for everyone at a company and not dependent on job performed, all job categories are included in this section and not just software developers. However, these statistics are restricted to full-time employees only, since most part-time employees are not eligible for benefits.
In general, tech companies in Louisville offer comprehensive benefits (Table 7). Health, dental, and vision insurance, life insurance, retirement plans, and paid time off are all available to at least 75% of the sample. The two benefits with the lowest availability are stock options (22.80%) and paid parental leave (45.60%). Most of the benefits are comparable for full-time contractors as they are for permanent employees, with the exception of stock options and paid time off.
The additional benefits have a much greater variability in their ability to employees. The majority of participants have a flexible work schedule (77.72%), are able to work from home (78.76%), and can dress casually at work (67.88%), while fewer work in a pet-friendly office (17.10%) or have on-site childcare (3.11%). It is likely that there is some variability in how each individual defined these benefits and perks; for example, one person’s flexible schedule might be restrictive to someone else.
In addition to the availability of benefits, we asked how satisfied individuals were with each type of benefit and how important that benefit is to them. For example, someone might be very satisfied with their stock options, but doesn’t really find it important to have that benefit as an offering. (Note: while the survey asked about the availability of life insurance, this option was inadvertently left out of the benefit satisfaction and importance items.) The data, given in Table 8, Table 9, and Figure 5, show that the benefits people are most satisfied with are their vacation/sick time and paid holidays; in both cases, approximately two-thirds of the sample reported being somewhat to very satisfied with the amount of time off they have. These were also two of the most important benefits to individuals, where in both cases over 75% of the sample said that the benefit was very important to them. The only benefit that had a larger level of dissatisfaction was the availability of stock options, where 33% of the sample were somewhat to very dissatisfied with this benefit.
Finally, we left an open response area in the survey for people to list benefits provided for their company that we didn’t ask about. The unedited responses:
- company laptop provided
- Employee Stock Pricing Plan, Bonuses (15% of base salary)
- Entertainment options e.g. ping pong, TV, couches
- Cell phone and plan, paid meals, mentorship
- tech culture, meetup space, parking, burboun
- Bonus
- Paid parking
- Gym
- Company offsites, reimbursements for any equipments including desks, chairs, monitors, etc
- Public Transit, Employer-based discounts
- On site fitness
- In-office gym with free trainer
- Matching charity contributions, paid jury duty
- Company pays for co-working space
- Tolerance for my sarcasm
- "Gadgets for geeks" (electronics reimbursement up to a certain amount), gym membership
- reimbursement
- Liquor stipend
- on-site health clinic
- In-house training; work clothes
- 50% off any Carry-Out order at Papa John's
- No restrictions on outside/on-the-side work
- Paid quarterly team outings
- Daily open bar starting at 5pm. A slide.
- Free glasses
- Tickets to local events.
- They pay for some college titution and some certifications
- Massages / haircuts 3 free meals a day
- Whole company given holiday from Christmas/New Year
- Unlimited PTO
- Nonprofit donation matching
- International Travel
6. Languages We Use
While it turned out that an individual’s salary was not strongly influenced by the languages they regularly use at work (see Section 4.1), the local tech community was still interested in the languages that are commonly used here. Figure 6 shows that the languages and technologies we use most commonly are for front-end work (HTML, CSS, and JavaScript) and for databases (any variety of SQL). Object oriented languages such as C# (used by 30.98% of programmers in the sample) are also relatively popular. Additionally, while none of the major front end JavaScript frameworks had high individual usage (e.g., 14.13% use AngularJS, 11.41% use React, etc.), aggregating the data showed that 35.33% use at least one of those frameworks (AngularJS, Angular, Elm, React, or Vue.js).
7. Job Satisfaction
Our final goal in this survey was to look at how satisfied individuals in the Louisville tech community are with their jobs and how likely they are to look for a new job in the coming year. Figure 7 shows that just over two-thirds of the survey (69.79%) like their jobs, rating that they were either somewhat or very satisfied with their job. However, this does not necessarily mean that they are not still planning on looking for a new job in the coming year; 38.54% of those who responded said it was somewhat to very likely that they would look for a new job in the coming year.
Figure 8 adds additional insight to this issue by plotting the distribution of likelihood of looking for a new job by level of job satisfaction. Unsurprisingly, the less satisfied an individual is with their job, the more likely they are to say they will be looking for a new job. However, not even people who are very satisfied with their current job (n = 73) are sure they will stay where they are; 13.70% of these individuals responded that they are somewhat or very likely to look for a new job in the coming year.
We also wanted some insight into how people in the Louisville tech community find their jobs (Table 10). Almost half (46.84%) reported getting their job via a personal contact of some kind, such as a friend or someone they had met via professional networking. Individual contact in general was very important; for example, only 16.32% of individuals said they got their current job via a general job posting.
Finally, we wanted to understand what is important to individuals in our community when it comes to looking for and selecting a new job, such as money, time off, or intangibles like company culture. The survey asked respondents to rank eight factors in terms of most to least important to them when looking for a new job. In Figure 9 these factors are grouped by ranking, e.g. the number of people who ranked each factor first, then the number who ranked each second, etc. In Figure 10 they are grouped by factor, showing how many people ranked salary first/second/third, then who ranked benefits first/second, third, and so on.
There is a lot of information that can be extracted from Figures 9 and 10, so we’ll focus on a few highlights. First, salary is either very important or very not important for job-seekers, as shown by its clear bimodal distribution in Figure 9. Benefits followed a similar general pattern, although very few people ranked them at the extremes of most or least important. Figure 10 shows that there was no clear pattern for what individuals feel is most important if not salary and benefits; the rankings for first- and second-most important are fairly evenly distributed across the remaining six categories.
8. Open Comments
We left an open comment section at the end of the survey for individuals to volunteer anything else they wanted to say about the Louisville tech community. Here are their words, unedited.
- A lot of Louisville seems to be stuck in old corporate mindset when it comes to technology.
- Although I don't get the chance to actively participate in the Louisville tech community asich as I'd like, I love how vibrant it is.
- I do love the Louisville tech community. It's big enough to invite a wide variety of individuals, but small enough that we're able to connect (it's very Louisville in that regard). I would like to see even more opportunities for the community here, especially UX.
- Compucom does not give raises
- Employers need to be frank and honest about hours and expectations
- I feel like the freedoms to learn a diverse set of skills and being able to contribute to open source projects at work is also a big perk.
- I was an intern turned contractor and was paid decent amount with 0 benefit. When offered the full time position, the offer made was lower than current wage but I was threatened that my current contractor position would be gone and I would be out of a job if I did not accept. This turns out to be untrue as they back-fill my position with another contractor after I came on board.
- If your company has national/international clients, you need to be paid a national salary. The salary in Louisville is very less compared to the national average.
- it is amazing.
- I've often considered leaving Louisville to find more compelling industries and technical exposure. It's getting better, but the amount of "building CRUD apps with .NET" jobs around town I think might be a limiting factor in the software sector here. I do believe this is changing for the better.
- Like minded Co workers are nice.
- Louisville offered no jobs to me. Both my jobs have been remote.
- More work from home jobs would be great!
- Not much good tech around.
- Tech companies are still dumb about work from home.
- Tech in Louisville seems very underpaid and undervalued and there is a dearth of options.
- Trying to improve how the company works feels like just as much of a project as any product I've ever built. Being at a small company makes me feel like I can really have an impact.
- We need a stronger community of Data Scientists in Town!
- I love my job because of the impact it provides. I am able to directly see a life changing impact on others from my work. I won’t go to another job unless I am able to have a similar experience.
9. Limitations
This was our first attempt at creating a community-wide salary and benefits survey, and as most first attempts, it was not perfect. One main area that we missed was asking about bonuses when discussing compensation. There were a few survey feedback comments regarding how their salary was not a good reflection of their overall compensation due to non-salary additional income like bonuses. We listened, and if we repeat this survey we’ll be sure to expand salary questions to include bonuses. Feedback provided by some survey respondents also showed us that we did not do a good enough job in making a distinction between employer and workplace, such as for individuals who are contractors and are not directly employed by the company at which they work. Again, if this survey is given out again in the future we will revise the questions to be more clear and improve the questions’ intent. Finally, when asking individuals about what is important to them in their workplace, we neglected to ask about the mission or goal of their work. While we did ask people to rank the importance of the type of company in choosing a job, we did not consider the type of work being done at that company, such as work designed to have a positive social impact.
10. Footnotes
1 Need help interpreting this? This is called a boxplot, which is one way of showing a distribution of values. Each “row” shows the salary distribution for a given category. The width of the box indicates the middle 50% of salaries for that category (called the interquartile range, or IQR), and the line in the middle of the box is the median (the salary where 50% are above and 50% below). The lines dotted coming from either side of the box are called “whiskers” and extend to the furthest of the minimum/maximum value for that distribution OR the furthest value that is no more than 1.5 times the IQR. Salaries outside the box and whisker area are considered outliers, and each of those salaries gets its own dot.
2 Need help interpreting this? A bivariate correlation is one way of showing the relationship between two continuous variables, like salary and years of experience. A correlation of r = 0 means there was no relationship, while r = ± 1 means the two variables were perfectly related (e.g. by knowing the value of one variable you know the value of the other). Multiple regression is when you use multiple variables at the same time to predict a single dependent (outcome) variable. It is measured by the R 2 statistic, which is the amount of variability in the dependent variable that the predictors account for when taken as a set; basically, how good of a job does this group of variables do in predicting the outcome variable. If the set of variables perfectly predict the outcome variable, R 2 = 1. We used the adjusted R 2 statistic here, which modifies the R 2 value to account for the number of predictors used and encourages a statistical modeling concept called parsimony.
Have feedback or questions about the survey or this report? Contact us at LouisvilleTechSurvey@gmail.com.