Skip to content

Instantly share code, notes, and snippets.

@dmi3kno
Created January 12, 2018 16:22
Show Gist options
  • Save dmi3kno/a9f2138c20308ea85d4329b807613c71 to your computer and use it in GitHub Desktop.
Save dmi3kno/a9f2138c20308ea85d4329b807613c71 to your computer and use it in GitHub Desktop.
# Data collected from the following link:
# https://us.teamblind.com/article/Stop-asking-for-tech-company-offer-numbers-Read-this-and-thank-me-later-sN8uYpop
comp <- data.frame(stringsAsFactors=FALSE,
company = c("Google", "Google", "Google", "Google", "Google", "Google",
"Google", "Google", "Google", "Google", "Google", "Google",
"Google", "Google", "Google", "Google", "Google", "Google",
"Google", "Facebook", "Facebook", "Facebook", "Facebook",
"Facebook", "Facebook", "Facebook", "Facebook", "Facebook",
"Facebook", "Facebook", "Facebook", "Facebook", "Facebook",
"Facebook", "Facebook", "Facebook", "Facebook", "Facebook",
"Facebook", "Facebook", "Facebook", "Facebook", "Facebook",
"LinkedIn", "LinkedIn", "LinkedIn", "LinkedIn", "Apple", "Apple",
"Apple", "Apple", "Apple", "Apple", "Apple", "Amazon",
"Amazon", "Amazon", "Amazon", "Amazon", "Amazon", "Amazon", "Amazon",
"Amazon", "Amazon", "Amazon", "Amazon", "Amazon", "Amazon",
"Amazon", "Amazon", "Amazon", "Microsoft", "Microsoft",
"Microsoft", "Microsoft", "Microsoft", "Microsoft", "Microsoft",
"Microsoft", "Microsoft", "Microsoft", "Microsoft", "Twitter",
"Twitter", "Twitter", "Twitter", "Uber", "Uber", "Uber",
"Lyft", "Lyft", "Lyft", "Lyft", "Dropbox", "Dropbox",
"Dropbox"),
base = c(115L, 110L, 105L, 110L, 105L, 105L, 110L, 110L, 112L, 140L,
155L, 170L, 110L, 155L, 145L, 145L, 120L, 170L, 150L, 115L,
105L, 105L, 110L, 110L, 105L, 107L, 105L, 180L, 160L, 145L,
110L, 115L, 175L, 160L, 170L, 175L, 170L, 210L, 160L, 175L,
150L, 150L, 160L, 125L, 120L, 140L, 170L, 140L, 140L, 110L,
155L, 120L, 135L, 160L, 95L, 100L, 103L, 103L, 130L, 95L, 95L,
110L, 103L, 135L, 152L, 160L, 178L, 127L, 106L, 145L, 160L,
100L, 106L, 106L, 110L, 106L, 106L, 106L, 106L, 107L, 119L,
107L, 130L, 120L, 145L, 160L, 110L, 110L, 140L, 170L, 135L,
152L, 175L, 167L, 160L, 160L),
stocks_4_yrs = c(180L, 180L, 180L, 270L, 330L, 280L, 250L, 160L, 180L, 430L,
650L, 350L, 90L, 315L, 415L, 270L, 220L, 400L, 400L, 150L,
120L, 240L, 150L, 235L, 150L, 150L, 100L, 600L, 300L, 220L,
150L, 160L, 250L, 300L, 500L, 450L, 450L, 1000L, 300L, 480L,
250L, 250L, 250L, 150L, 150L, 250L, 300L, 99L, 100L, 60L,
130L, 100L, 105L, 105L, 52L, 70L, 65L, 65L, 88L, 53L, 53L, 200L,
65L, 70L, 115L, 160L, 175L, 94L, 60L, 120L, 320L, 25L, 120L,
60L, 50L, 60L, 60L, 60L, 120L, 90L, 25L, 120L, 200L, 150L,
125L, 600L, 180L, 150L, 590L, 720L, 260L, 327L, 480L, 464L,
250L, 300L),
sign_on = c(50, 25, 22.5, 30, 22.5, 58, 20, 70, 50, 50, 50, 50, 0, 50,
100, 30, 25, 75, 30, 75, 120, 105, 75, 75, 75, 75, 50, 50,
70, 0, 110, 100, 0, 100, 100, 50, 65, 100, 100, 75, 25, 60,
100, 25, 10, 50, 30, 8, 20, 40, 65, 21, 20, 30, 47, 59, 52,
52, 62, 47, 47, 50, 40, 45, 72, 125, 100, 55, 65, 100, 185, 25,
20, 20, 20, 10, 15, 15, 15, 35, 15, 30, 20, 18.5, 15, 50, 0,
0, 0, 20, 60, 0, 0, 10, 10, 50),
year = c(2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2018L, 2017L, 2018L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2015L, 2017L, 2017L, 2017L, 2017L, 2017L,
2018L, 2016L, 2016L, 2017L, 2016L, 2016L, 2016L, 2016L, 2017L,
2017L, 2017L, 2017L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2017L, 2017L, 2017L, 2017L,
2017L, 2018L, 2018L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2017L, 2017L, 2016L, 2016L, 2017L, 2017L,
2016L, 2016L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L),
level = c("L3", "L3", "L3", "L3", "L3", "L3", "L3", "L3", "L3", "L3",
"L4", "L4", "L3", "L4", "L3", "L4", "L3", "L4", "L4", "E3",
"E3", "E3", "E3", "E3", "E3", "E3", "E3", "E5", "E4", "E4",
"E3", "E3", "E5", "E4", "E5", "E5", "E5", "E6", "E4", "E5",
"E4", "E4", "E4", "SE", "SE", "Senior SE", "Senior SE",
"ICT3", "ICT3", "ICT2", "ICT3", "ICT3", "ICT3", "ICT4", "SDE I",
"SDE I", "SDE I", "SDE I", "SDE II", "SDE I", "SDE I", "SDE I",
"SDE I", "SDE I", "SDE II", "SDE II", "SDE II", "SDE II",
"SDE I", "SDE II", "SDE III", "SDE", "SDE", "SDE", "SDE",
"SDE", "SDE", "SDE", "SDE", "SDE", "SDE", "SDE", "SWE1", "SWE1",
"SWE1", "SWE II", "L3", "L3", "L4", "L4", "L3", "L4", "L4",
"IC2", "IC2", "IC2"),
comment = c("Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Google\'s target annual bonus is 15%. Vesting is monthly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.",
"Facebook\'s target annual bonus is 10% for E3 and E4. 15% for E5 and 20% for E6. Vesting is quarterly and has no cliff.", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA,
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*",
"Amazon stocks have a 5154040 vesting schedule and sign on is split almost evenly over the first two years*", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA)
)
library(ggplot2)
library(dplyr)
library(forcats)
library(hrbrthemes)
comp %>% count(company)
comp_ext <- comp %>%
mutate(company=fct_lump(company, prop=0.05),
sign_on_1y=ifelse(company=="Amazon", 0.5, 1),
stocks_1y=ifelse(company=="Amazon", 0.05, 0.25))
comp_ext %>%
ggplot(aes(x=fct_reorder(company, base, fun=median),
color=fct_reorder(company, base, fun=median),
y=base)) +
geom_boxplot()+
coord_flip()+
theme_ipsum(grid = F)+
labs(y="Base salary, '000 USD",
x=NULL,
title="Base salaries",
subtitle="'New-tech' companies pay more",
caption="Source: posts on Reddit and Blind,\n'Other' include Dropbox, LinkedIn, Lyft, Uber and Twitter")+
theme(legend.position = "none")
comp_ext %>%
ggplot(aes(x=base+sign_on*sign_on_1y,
y=stocks_4_yrs*stocks_1y,
color=fct_reorder(company, base, fun=median))) +
geom_point(size=2)+
geom_smooth(method="lm")+
theme_ipsum(grid = F)+
ylim(c(0,250))+
labs(x="Base salary + Sign-on bonus in first year, '000 USD",
y="Stock vesting in year 1, '000 USD",
color="Company",
title="First year base salary + sign-on vs stock options",
subtitle="'New-tech' companies rely on short-term incentives",
caption="Source: posts on Reddit and Blind,\n'Other' include Dropbox, LinkedIn, Lyft, Uber and Twitter")+
facet_wrap(~fct_reorder(company, base, fun=median), nrow = 2)
comp_ext %>%
ggplot(aes(y=base+sign_on+stocks_4_yrs,
x=factor(year))) +
geom_boxplot()+
theme_ipsum(grid = F)+
labs(x="year",
y="Compensation, '000 USD",
title="Total compensation (excl. bonus)",
subtitle="Competition for talent seems to be intensifying",
caption="Source: posts on Reddit and Blind,\n'Other' include Dropbox, LinkedIn, Lyft, Uber and Twitter"
)
@dmi3kno
Copy link
Author

dmi3kno commented Jan 12, 2018

rplot1
rplot2
rplot3

@gleventhal
Copy link

The microsoft box --[]-- XD lol. No one makes 120K+ there? I don't believe that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment