Last time I presented some comparisons of average DBA salaries in California. But the data set I’ve been looking at has more than just info on DBA’s. This time I’m going to walk through some queries that look at other tech salaries in California and the distribution of tech jobs accross the state.

To get started, let’s run a straightforward query to find the average salary for the tech occupations listed in the data.

SELECT Location, SOC_Code, Occupation, Mean_Annual_Wage, Employment_Estimate 
FROM TotalData
WHERE [year] = '2016' AND MSA_Code = '000006' AND SOC_Code LIKE '15-1%' 
ORDER BY Mean_Annual_Wage DESC
SOC Code Occupation Mean Wage Employment Estimate
15-1111 Computer and Information Research Scientists $131,346 5,280
15-1143 Computer Network Architects $128,830 14,320
15-1133 Software Developers, Systems Software $128,394 82,370
15-1132 Software Developers, Applications $125,696 123,950
15-1122 Information Security Analysts $110,691 8,090
15-1121 Computer Systems Analysts $100,841 73,860
15-1199 Computer Occupations, All Other $97,097 24,130
15-1141 Database Administrators $95,880 12,040
15-1131 Computer Programmers $93,506 38,650
15-1142 Network and Computer Systems Administrators $93,354 43,270
15-1134 Web Developers $82,793 21,320
15-1152 Computer Network Support Specialists $79,404 19,840
15-1151 Computer User Support Specialists $62,726 62,830

Nothing too surprising here. One thing to note is that the OES makes a somewhat unusual distinction between computer programers and software developers (I always thought computer programming was just “rebranded” as software development to try and sound more impressive). The distinction is roughly that computer programmers create code from a specification, whereas software developers are heavily involved in the larger software design process.

Anyway, let’s do another query. Let’s see which areas have the highest percentage of tech jobs compared to total jobs. We’ll exclude places with fewer than 500 tech jobs.

WITH TotTech AS
(
SELECT Location, SUM(Employment_Estimate) AS TechTotEmp
FROM TotalData
where [year] = '2016' AND SOC_Code LIKE '15-1%' 
AND Employment_Estimate IS NOT NULL  
GROUP BY Location
HAVING SUM(Employment_Estimate) > 500
)
, TotArea AS
(
SELECT Location, Employment_Estimate AS TotEmp
FROM TotalData
WHERE [year] = '2016' AND SOC_Code = '00-0000'
)
SELECT TotArea.Location, TotTech.TechTotEmp, TotArea.TotEmp, 
ROUND(CONVERT(float,TotTech.TechTotEmp)/CONVERT(float,TotArea.TotEmp),3) AS Ratio
FROM TotTech INNER JOIN TotArea
ON TotTech.Location = TotArea.Location
ORDER BY CONVERT(float,TotTech.TechTotEmp)/CONVERT(float,TotArea.TotEmp) DESC
Rank Location Total Tech Jobs Total Jobs Ratio
1 San Jose-Sunnyvale-Santa Clara, CA 122,600 1,011,840 0.121
2 San Francisco-Redwood City-South San Francisco, CA 78,320 1,020,020 0.077
3 Oakland-Hayward-Berkeley, CA Metropolitan Division 42,800 1,053,950 0.041
4 San Diego-Carlsbad, CA 47,590 1,353,180 0.035
5 Sacramento–Roseville–Arden-Arcade, CA 30,390 874,610 0.035
6 California Statewide 529,950 15,496,600 0.034
7 San Rafael, CA Metropolitan Division 3,550 112,400 0.032
8 Anaheim-Santa Ana-Irvine, CA Metropolitan Division 47,950 1,523,780 0.031
9 Santa Maria-Santa Barbara, CA 4,330 181,190 0.024
10 Los Angeles-Long Beach-Glendale MD, CA 93,410 4,103,590 0.023
11 Oxnard-Thousand Oaks-Ventura, CA 6,590 295,700 0.022
12 Santa Cruz-Watsonville, CA 1,740 89,660 0.019
13 San Luis Obispo-Paso Robles-Arroyo Grande, CA 1,650 110,730 0.015
14 Santa Rosa, CA 2,790 187,850 0.015
15 Vallejo-Fairfield, CA 1,690 125,020 0.014
16 Salinas, CA 1,940 161,580 0.012
17 Bakersfield, CA 3,440 295,130 0.012
18 Riverside-San Bernardino-Ontario, CA 13,990 1,310,300 0.011
19 Fresno, CA 3,550 340,660 0.01
20 Chico, CA 710 72,300 0.01
21 Northern Mountains Region 590 62,340 0.009
22 Merced, CA 560 64,040 0.009
23 Stockton-Lodi, CA 1,630 218,840 0.007
24 Modesto, CA 1,170 166,250 0.007
25 Visalia-Porterville, CA 880 141,020 0.006
26 North Coast Region 570 95,040 0.006

This is interesting. Silicon Valley truly is an usual region, with 12% of the total jobs categorized as non-managerial tech jobs; this doesn’t even include workers in non-tech roles at tech companies. Closer to home, San Luis Obispo with only 1.5% of jobs classified as non-managerial tech, has a long way to go before it would feel like one of the tech hubs in the major cities.

Finally, let’s calculate something a little more difficult (at least from a SQL perspective). Let’s take a look at which tech jobs are most common in which cities and see if there are any interesting discrepancies. I’m going to have to pivot the data (boo), so I’ll be somewhat arbitrarily selective about the locations and occupations.

WITH TotTechByLoc
AS
(
	SELECT Location, SUM(Employment_Estimate) AS TotTechLoc
	FROM TotalData
	WHERE [year] = '2016' AND SOC_Code LIKE '15-1%'
	GROUP By Location
)
SELECT Location, [Computer Systems Analysts], [Database Administrators], 
[Web Developers], [Software Developers, Applications],
[Software Developers, Systems Software], [Computer User Support Specialists]
FROM 
(
	SELECT TotalData.Location, TotalData.Occupation,
		ROUND(CONVERT(FLOAT,TotalData.Employment_Estimate) / 
		CONVERT(FLOAT,TotTechByLoc.TotTechLoc),2) AS PercOfTech
	FROM TotalData INNER JOIN TotTechByLoc
	ON TotalData.Location = TotTechByLoc.Location
	WHERE [year] = '2016' AND SOC_Code LIKE '15-1%'
) AS BaseTable
PIVOT
(
	MAX(PercOfTech) for Occupation IN
	([Computer Systems Analysts], [Database Administrators], [Web Developers],
	[Software Developers, Applications],
	[Software Developers, Systems Software], 
	[Computer User Support Specialists])
) AS OccuPivot
Location Sys Analyst DBA Web Dev App Dev Sys Dev User Support
California Statewide 14% 2% 4% 23% 16% 12%
Los Angeles-Long Beach-Glendale MD, CA 13% 3% 6% 16% 12% 17%
San Diego-Carlsbad, CA 12% 2% 4% 21% 16% 12%
San Jose-Sunnyvale-Santa Clara, CA 12% 1% 2% 35% 22% 6%
San Francisco-Redwood City-South San Francisco, CA 14% 2% 5% 29% 13% 10%
Oakland-Hayward-Berkeley, CA Metropolitan Division 17% 2% 3% 22% 17% 9%
Sacramento–Roseville–Arden-Arcade, CA 29% 2% 2% 13% 17% 10%
Santa Maria-Santa Barbara, CA 9% 2% 7% 2% 2% 12%
San Luis Obispo-Paso Robles-Arroyo Grande, CA 13% 4% 6% 19% N/A 26%

I highlighted a couple of the numbers that were especially notable.

  • Sacramento has the highest concentration of systems analysts, and it’s significantly higher than any other major metro area. If I had to guess, I would suspect it’s because governmental agencies are more likely to employ systems analysts rather than developers.
  • Silicon Valley also has an extremely unusual distribution of jobs. Applications and systems developers are way more common there and user support is especially uncommon.
  • I only included Santa Barbara/SLO because that’s my neck of the woods.
    • I’m surprised by the lack of developers in Santa Barbara.
    • I’m not surprised by the number of user support workers in SLO. It’s got a big software company with a large customer support team.

Alright! That’s it for today.