Top Jobs to Earn $100k+ per year before you’re 30

I decided to look into which careers are the most rewarding early in your career. Most of the jobs aren’t a surprise with Software Engineers topping the list with almost 60k young adults under the age of 30 earning over $100k. This means about 21% of Software Engineers between the ages of 20-29 are making six figures annually. Here’s a treemap of the top jobs of 20-29 year old Americans who earn more than $100,000 per year.

Top 10 Occupations By Percentage Earning Over $100k

Looking at the raw numbers by job, you might notice a few stereotypically low paying jobs on the list such as Retail Salespersons. The reason for this is because only 0.5% of all Retail Salespersons make over $100k, but because there are 1.8 million 20-29 year olds who work as Retail Salespersons there are quite a few pulling a good amount of money.

If you look at % of Workers between 20-29 making that much the list changes quite a bit. Healthcare related occupations dominate the list, and it's important to note that Doctors a missing from the top 10 and this is most likely due to the fact that many are in residency until their early 30s.

Occupation% of Workers
Petroleum, mining and geological engineers, including mining safety engineers42.05%
Architectural and Engineering Managers25.58%
Physician Assistants21.32%
Software Developers, Applications and Systems Software20.93%
Chief executives and legislators/public administration20.46%
Lawyers, and judges, magistrates, and other judicial workers19.94%

Full List

This data was sourced from the American Communities Survey 2014-2018 data.

# Earning >$100k : Number of 20-29 year olds who earned over $100k per year for this specific occupation. These numbers are estimates by the ACS.

% of Workers : Of all 20-29 year old who worked in this occupation this is the percentage who earned over $100k. Small percentages mean it is less common for people in this occupation to earn that much. Large percentages mean it is common.

Occupation# Earning > $100k% of Workers
Software Developers, Applications and Systems Software5982020.9%
Managers, nec (including Postmasters)311196.3%
Lawyers, and judges, magistrates, and other judicial workers1922719.9%
Computer Scientists and Systems Analysts/Network systems Analysts/Web Developers182695.0%
First-Line Supervisors of Sales Workers164011.8%
Registered Nurses157202.9%
Managers in Marketing, Advertising, and Public Relations129216.4%
Accountants and Auditors125703.5%
Management Analysts123119.6%
Financial Managers111137.2%
Financial Analysts1061517.0%
Sales Representatives, Wholesale and Manufacturing104784.8%
Sales Representatives, Services, All Other92035.4%
Retail Salespersons91800.5%
Engineers, nec90308.2%
Securities, Commodities, and Financial Services Sales Agents812218.1%
Chief executives and legislators/public administration761120.5%
Personal Financial Advisors739412.2%
Computer Programmers73768.5%
Driver/Sales Workers and Truck Drivers66351.0%
General and Operations Managers60925.1%
Other Business Operations and Management Specialists60293.8%
Real Estate Brokers and Sales Agents58456.4%
Human Resources, Training, and Labor Relations Specialists57792.6%
Customer Service Representatives54060.4%
Constructions Managers52987.4%
Unemployed, with No Work Experience in the Last 5 Years or Earlier or Never Worked52200.2%
Police Officers and Detectives51232.7%
Physician Assistants498521.3%
Computer and Information Systems Managers476710.4%
First-Line Supervisors of Construction Trades and Extraction Workers46355.4%
Petroleum, mining and geological engineers, including mining safety engineers455542.1%
Construction Laborers41170.7%
Civil Engineers34854.3%
Welding, Soldering, and Brazing Workers34501.9%
Electrical and Electronics Engineers34409.5%
Computer Support Specialists33952.0%
Farmers, Ranchers, and Other Agricultural Managers33724.4%
Physicians and Surgeons33394.9%
Food Service and Lodging Managers33091.0%
Mechanical Engineers31324.8%
Insurance Sales Agents31093.3%
Athletes, Coaches, Umpires, and Related Workers28871.2%
Pipelayers, Plumbers, Pipefitters, and Steamfitters27712.0%
Electrical Power-Line Installers and Repairers27069.6%
Laborers and Freight, Stock, and Material Movers, Hand25320.2%
Property, Real Estate, and Community Association Managers24733.5%
Other production workers including semiconductor processors and cooling and freezing equipment operators24720.7%
Actors, Producers, and Directors24493.8%
Sales and Related Workers, All Other24253.1%
Credit Counselors and Loan Officers24194.4%
First-Line Supervisors of Production and Operating Workers23372.2%
First-Line Supervisors of Office and Administrative Support Workers23211.2%
Medical and Health Services Managers23154.1%
Human Resources Managers22943.5%
Chemical Engineers225212.6%
Industrial Engineers, including Health and Safety21454.6%
Health Diagnosing and Treating Practitioner Support Technicians20380.8%
Waiters and Waitresses20150.1%
Inspectors, Testers, Sorters, Samplers, and Weighers20071.0%
Physical Scientists, nec20043.5%
Aerospace Engineers19978.1%
Postsecondary Teachers19820.6%
Security Guards and Gaming Surveillance Officers18790.5%
Financial Clerks, nec18565.4%
Network and Computer Systems Administrators18375.1%
Architectural and Engineering Managers180325.6%
Extraction workers, nec17875.9%
Engineering Technicians, Except Drafters17611.8%
Military, Rank Not Specified17321.2%
Elementary and Middle School Teachers17310.3%
Grounds Maintenance Workers16840.3%
Advertising Sales Agents16523.5%
Chefs and Cooks16380.1%
Secretaries and Administrative Assistants16210.3%
Paralegals and Legal Assistants15821.6%
Editors, News Analysts, Reporters, and Correspondents15342.1%
Education Administrators15191.5%
Construction equipment operators except paving, surfacing, and tamping equipment operators15102.1%
Physical Therapists14973.3%
Other Teachers and Instructors14940.4%
Automotive Service Technicians and Mechanics14600.6%
Computer Hardware Engineers145116.6%
Writers and Authors13622.6%
Artists and Related Workers13222.8%
Diagnostic Related Technologists and Technicians13101.8%
Musicians, Singers, and Related Workers12972.3%
Janitors and Building Cleaners12920.2%
Mathematical science occupations, nec12815.6%
Aircraft Pilots and Flight Engineers12785.6%
Maintenance and Repair Workers, General12471.2%
Office Clerks, General12420.3%
Database Administrators12406.4%
Air Traffic Controllers and Airfield Operations Specialists121910.9%
Power Plant Operators, Distributors, and Dispatchers121118.8%
Chemists and Materials Scientists11975.7%
Industrial Production Managers11955.6%
Purchasing Managers11756.4%
Compliance Officers, Except Agriculture11473.7%
Financial Specialists, nec110911.3%
Derrick, rotary drill, and service unit operators, and roustabouts, oil, gas, and mining10888.1%
Licensed Practical and Licensed Vocational Nurses10780.6%
Heavy Vehicle and Mobile Equipment Service Technicians and Mechanics10712.1%
Nursing, Psychiatric, and Home Health Aides10570.2%
Medical Assistants and Other Healthcare Support Occupations, nec10480.3%
Public Relations Specialists10342.7%
Medical Scientists, and Life Scientists, All Other10294.2%
Emergency Medical Technicians and Paramedics10271.2%

Peer To Peer Lending Returns Look Terrible

I recently came across a dataset on Kaggle from a popular peer to peer lending company with data up to 2/2019–the start date was in 2007 but there weren’t that many loans from the early years. I’ve been reading other FIRE/personal finance bloggers touting more non-traditional investments, and I was a little bit interested to see the overall average performance of these kinds of instruments. Sometimes you never know if the bloggers are just pushing a product because it’s good or if they’re after ad money. So to find out, I decided to fire up R and run some quick analysis on the returns and my goodness they are very terrible.

36 Month Loans

Looking at 36 month (3 year) loans that have had at least 3 years between the start date and the data set’s end date, the returns are terrible. The only thing nice I can say is that at least it looks like you average a slightly positive return.

Grade# of Loans# BadTotal ReturnAvg Int Rate
A 7% return in 3 years?!?! What a terrible club to be in.

That total return is the total amount paid out over the life of the loan. A total return of 107.1% is basically an interest rate of 2.28% per year compounded each year. That’s pretty close to what an Ally CD would yield for the same period, which is pretty sad considering the amount of risk you’d be taking on to give out these loans to people. % Bad is the percentage of the loans that have negative statuses like charged off, grace period, or late.

How does this number work?

Screenshot from this company’s page. Captured 7/27/2020

Okay so I was thinking maybe I made a calculation mistake or the data on Kaggle was bad, so I went over to this company’s website to get the official public stats. They don’t make sense to me either. This company only offers loans of 36 months (3 years) or 60 months (5 years). So I picked issue dates up to 2014, so all the loans are paid off or charged off–nothing is outstanding.

Looking Grade A loans, their website has total payments of $740,746,894 = $669,115,583 (principal payments) + $71,631,311 (interest payments).

They issued $686,112,100 in loans. Simple division puts this return at $740,746,894 / $686,112,100 = 1.0796 meaning they got paid 7.96% more for loans that took 3 to 5 years to complete.

How in the heck do you get an annualized return of 5.14% over 3 to 5 years when the total return is 7.96%? None of this makes any sense to me, but maybe my untrained eye has just grossly misunderstood the basic figures on the dashboard.

Dropping Microsoft Office At Home

I recently got a new computer, and decided to go back to the Microsoft Home Use Program to get a new key to get Excel installed on my new computer. Much to my surprise they’ve completely gutted that program and the package now costs $70 / year for one license or $100 / year for 6 licenses. This is a huge increase when it was only $20 for a permanent license as recently as 2018. Now my old computer is completely gone, so I kind of gave up on rescuing my old license some how.

Free Alternatives : LibreOffice, Rstudio, and Google Sheets

As you know from this website, my typical data analysis toolkit is Excel, R and PHP/Javascript, so I’m currently exploring the open source options. So far, I’m really getting used to LibreOffice. LibreOffice is related to OpenOffice, but has been kept more up to date than OpenOffice. It looks like OpenOffice has basically been frozen in time for like 5+ years and really isn’t a great option at this point. A lot of the functions are the same as in Excel, but the only bad part about LibreOffice is that it feels a lot like using Excel 2003 from the UI perspective. It just isn’t as slick and fluid as the newer versions of Excel, but it does seem to be getting the job done. Pivot tables work, and the structure is very similar to how they are used in Google Sheets.

libreoffice screenshot
LibreOffice looking very 2005.

I’ve also started to lean a little bit more heavily on R (specifically RStudio) to do exploration via coding vs spreadsheet style. It certainly has been a learning curve, but I also feel like R is a marketable skill. I’ve also been using Google Sheets quite a bit for smaller spreadsheets, but Google Sheets feels a little clunky if you try to use a sheet that’s large.

Is the Microsoft Home Use Program worth it for some people?

Yes, it is worth it if you are going to use the 1 terra byte in free cloud back up. If you’re a light user of Docs, Excel and PowerPoint, LibreOffice or Google Docs should cover you pretty well for free.

If you’re trying to run a business from home, I could also see it being useful in situations where you’re going to be sharing files with clients or contractors. I can see it being important to make sure that your files are formatted perfectly across computers. For me, since my hobby data analysis work isn’t really shared via Excel, I don’t think that it’s worth an extra $70 / year for that.

How much extra does Instacart delivery cost versus Kroger pickup?

With all the coronavirus stuff, I’ve started to use Instacart more to shop at my local grocery store Marianos which is owned and run by Kroger.

With my latest cart, I was curious how much Instacart was charging versus the store. There’s a little vague note that I’m getting the Everyday Store Price, but I’m not sure what that actually means in practice. Instacart defines it as:

Standard store pricing. Loyalty cards not accepted. Most in-store sales, promotions, offers, coupons and discounts do not apply. Instacart specific coupons, promotions and discounts available. Price as displayed. 

The Instacart total
The Marianos / Kroger total.

So let’s get started, this is what my final Instacart receipt looked like with Everyday Store Pricing. $201.65 on products and tax, and then the remainder $44.26 on service, tip, and delivery fees.

Compare this to my Kroger pick up total of $194.45 for products and taxes. I added every single thing–including replacements–from my finalized Instacart order to the Kroger Clicklist order. Kroger pickup will give you the sale prices which is the cause of the difference between the Kroger subtotal and the Instacart subtotal. Because of this, I missed out on some BOGO bread, which I’m a little sad about now that I know about it.

There’s something odd about the tax total that I don’t understand how the Instacart value has lower taxes with a higher subtotal compared to the Kroger tax total on a lower subtotal. I’d imagine that there’s probably something wrong going on with Instacart’s algorithm that they’ll get in trouble over in the future.

So because Instacart charges about $10 more for the same products, I am in essence paying an even bigger premium for the grocery delivery than I originally expected.

In total adding up everything I basically paid $51.46 or a premium of almost 20% for someone else to deliver for me. versus if I had a Kroger employee shop for me and I picked up. Granted I could have shorted the tip a little bit (from 15%), but that seemed rude to short change some when I personally didn’t want to risk getting infected by going shopping myself. But you know, there’s definitely a lot of cost savings to be had if you’re willing to do the pick up.

Edit 4/26: We just got an Instacart from Aldi, and the shopper left the receipt. The total from Aldi was $188 with tax, and Instacart charged $207 for the products + tax, so the hidden Instacart price inflation ray was about 10%.

The data & privacy extract from Intuit’s Mint is mostly useless

Months ago, I requested a copy of my Intuit data to see what’s been tracked through my Mint account the last 12 years I’ve had it open. Well they weren’t kidding that it’d take up to 45 days to process the request. I requested it in early Feb and I finally got the download link in mid-March! amazing over a month to make a data dump!

What was inside?

After over a month of waiting, I ripped open the download to find that it’s a bunch of text files saved in JSON format. There wasn’t anything useful inside of the files. The budget data was unlabeled, and transaction data was unlabeled. Here’s an example of it looks like after I formatted the extracts in R so I could actually read them.

I think this is transactions but it’s really light on details, and IDK how I would have so many.

There’s a lot data in the files, but a lot of it is actually 100% unlabeled. I’m not sure what Intuit was thinking, but the data is completely unusable and doesn’t even match the “Export All Transactions” button that’s on on the transaction list button.

How to read your Data.

If you’re familiar with R, I basically used the step below to read thru most of the data.

The main file that looked like it had some meat was 10+mb in my extract and located in the Mint sub-folder and had a name like mind_data_78438432894932482339jdjfd.txt. Here’s the code I used to read the data in R:


#update the working directory and mint_data_
setwd("Your working directory")
con <- file("mint_data_YOUR FILE NAME.txt",open="r")
#read in the file, there might be an error
line <- readLines(con) 
#the main file has a bunch of JSON objects, mine had 22, So this step splits them up 
split_vars <- strsplit(line, "\\]")
#22 sub objects, I basically just went thru each one by updating X and re-running to see what was in it
x <- 1
mint_data <-, fromJSON(paste0(split_vars[[1]][x],"]"))))

For my data extract, these were what I think I saw in the extract:

  • #1 Personal Info: Most of it was wrong though
  • #2 Opt ins
  • #3 User actions?
  • #4 IDK what this is
  • #5 Something about banks mostly empty
  • #6 Something about stocks has my old stocks
  • #7 Stocks
  • #8 Budget, but unlabeled
  • #9 Goals, I don’t use these but the data looked clean
  • #10 Transaction types
  • #11 Transactions
  • #12 Account information
  • #13 Loans
  • #14 Something about credit card balances
  • #15 ?
  • #16 Currency
  • #17 Account ids
  • #18 Currency?
  • #19 Currency?
  • #20 Credit cards?
  • #21 Currency?
  • #22 Accounts and status

How to get a copy of your Data

If you’re still interested to see if maybe you’ll have better luck than me, here’s how you request a copy of the data they have. You can navigate to this page from Mint by clicking on Settings > Intuit Account > Data & Privacy > Request an extract of your data

Yay I have data to download.