First of all, I owe an apology to many people. I said on April 23 that I’d be getting back to people quickly if they reached out, and I failed at that. My mailbox is full of messages to which I intend to reply. My life is hectic right now. First, I’m evaluating whether my startup concept has legs. I’m concurrently job searching, and working on a couple consulting projects, and getting back into Clojure, which has proven itself an awesome language because my knowledge has “stuck” even though I was away from it for 2 years. It would seem a bit manic, but I know what I’m doing. Solving problems is something I’m good at, and can do for 70 hours per week. Put me in an office and make me suffer social anxiety due to visibility (fuck open-plan offices, which make me feel like a zoo animal) and expected hours and various forms of conformist human idiocy, and you’re lucky if you get 20 decent hours (out of me, or out of anyone, because humans don’t work that way). Give me a problem to solve and I can just go. I’ve been “going” on a lot of different, important problems. Anyway… my apologies. I’ve been far busier over the past few days than I would have ever expected.
Let me get a bit more into “The Idea” behind the startup concept that I discussed on April 23, 2013. I won’t get too specific, because the tactics are still being determined. I’m ready to discuss the why. The how I am keeping confidential.
I have one policy with regard to the “stealing” of my ideas as I share them. I can’t stop you. So go ahead, but let’s agree on one rule. Only do it if you’re in that tiny set of people (maybe 20 in the world for this particular idea) who would do a better job than I would. If you can take my 9.5 idea and turn it into a 9.8 and build something transformative, then go ahead. And if you’re that good, you’ll certainly recognize that I have a place in whatever is built, at least in the discussion; if you think I’m a “bozo” then you can’t assess talent properly and you have no place in anything within 1000 miles of a hard problem. So just keep that in mind.
What problem do I want to solve? Career coherency. First focus would be on software engineering, where the job market is disastrously inefficient because it’s extremely hard for engineers and employers to evaluate each other. Here are just a few of the pain points:
- Good engineers are very hard for employers to find, and good jobs are very hard for engineers to find (bilateral matching problem).
- Engineers rarely improve on paid work, having to dedicate time and mental energy to unpaid learning, possibly jeopardizing job performance. (That’s career incoherency, which is when job and career conflict.)
- Engineers rarely know how to improve, or even where to look for mentorship. How do we turn a query like “I want to become a data scientist in 3 years” into a traversal of the pre-requisite graph (e.g. start with linear algebra, then take a machine learning course, then learn about databases) that a person can actually execute?
- Employers’ demands for “production experience” with hot technologies (rather than self-directed learning being sufficient) create environments within companies characterized by nasty, careerist technology wars that have nothing to do with solving problems. Finding some other way to validate engineering capability would be valuable, if for no other reason than the fact that it would clear out the toxic “resume-driven development” that creates unnecessary tech-stack churn.
- Companies currently have very little incentive to invest in employees’ careers. They tend to see that as counterproductive, since it makes them more externally marketable, and because there’s no penalty (especially in a fascist environment where “bad-mouthing” even deserving companies hurts a person’s career) for them to hire people but fail to invest in them.
There are some really BIG problems here… Can I solve all of them, individually? Of course not. I’d rather build the tools that make people who have the relevant domain knowledge better at solving them. For example, coding tests might be one way to validate engineer capability, but I’d rather not get into that business directly (by designing the exams) if I don’t have to, because I’d be competing in a red ocean with people who know the problem better than I do.
“Recruiting” is, likewise, a field that is ripe for disruption and it’s quite a major business. Wall Street and technology recruiters collect 15 percent of first-year salary (regardless of employee success). I don’t want to put them out of business or compete with them (again, I can’t). I’d rather work on building tools to make them better. Can a recruiter assess the quality of someone’s open-source, 3000-line Scala library? Of course not. Can an engineer? Probably, but who has the time to read all that? The goal isn’t to compete with existing players. It’s to make them better at their jobs by giving them tools to help them do what they’re currently bad at, and having those tools collect lots of valuable data about market conditions, the career landscape, and the “hidden nodes” of the job market structure.
Finally, a major component of what I want to build is career coaching for engineers: find them mentors, recommend jobs, tell them how to improve their employability, long-term success and happiness, and become better engineers. Hidden node discovery is also a part of it. Let’s say that Jake is 23 years old and just discovered Python. He wants to be a data scientist by age 26. There’s a huge prerequisite graph (linear algebra, to start) of which he has no idea. How do we provide that in an automated way? How do we connect him either with an individualized career plan, or with someone who can build such for him?
The Whole Problem would take 5-10 years to solve, at least. But there are subproblems within it that can get the game started.
Where do I (and what I want to build) come in? Well, there’s a lot of data to gather, and then to mine. I personally would like to focus on the data-mining and market analysis, because that’s my strong suit. That’s where I’m a 3-sigma player– not recruiting or designing code tests. This isn’t a “Big Data” problem, because we’re not talking about sorting through petabyte-scale datasets to extract microstructural signals. It’s a Smart Data problem. The end goal, actually, is to provide a value-added ranking (or employer “credit scoring”) of job and educational opportunities that tells young talent which jobs will help their careers, and which will hurt them.
See, code tests (in theory, anyway) and open-source code samples solve half the problem, which is keeping engineers honest by evaluating their capability in order to see if they’re as good as they claim they are. We don’t need to build code tests; people are working on that problem, and it’s probably cheaper to partner with them (if possible) than to build all that infrastructure ourselves.
Instead, I want to attack the other half, which is using various signals about engineer success (compensation, capability, career progress) to keep employers honest. Companies that improve their employees’ long-term career prospects should be lauded in the public. Companies that take in a lot of talent, but load people with crappy work that stagnates their careers, should be penalized severely. People have a right to know whether a specific job is likely to improve their (a) compensation, (b) career fulfillment and happiness, and (c) skill growth. Right now, they don’t. The result of this opacity is that employers can (and often do) recruit in bad faith by overselling crappy roles and work that damage peoples’ careers. I want to drop a pipe on that shit.
Here are some queries that, right now, go unanswered, and for which no one knows the right answer:
- do engineers improve faster (in compensation, career mobility, and skill set) working at Google or at Facebook? How about Google’s Mt. View office versus New York versus Seattle? What’s the best job to take if you want to become a data scientist? Or a founder? Or if you don’t care but really want to make a lot of money?
- how will the decision to live in Palo Alto versus Austin affect one’s earnings 10 years out? Is it worth it to live in a high-COL “star city”? Or are the career opportunities just as good or better in the Austin area?
- who are the 10 best engineers, based on quality of open-source contributions, in Boston?
- for a client founder: what city has the best brains-to-bucks ratio? Developer salaries (per location) are easy to figure out. What about developer quality?
- which recruiter at, e.g., Google is most likely to respond positively to John Doe’s resume? Which recruiters place the most successful candidates (both in terms of getting the job, and in doing well there)?
- for a client engineer, Mike Roe: is Mike Roe strong enough to command $7,500 per month as a freelancer? How would this change if he moved to San Francisco? Can we connect him with appropriate work? If he’s not ready to go independent, which jobs will get him there the fastest?
- for a client founder or CEO: is Sarah Noh a capable enough engineer to be CTO? How adept is she at assessing technologies and reviewing code for quality?
I’d like to solve some of that stuff, with some hard-core data analysis, and fix this fucked-up inefficient job market. Here are the things I really want:
- I want engineers to get what they’re worth. Right now, engineers suffer under conditions of low autonomy that render them unable to deliver much economic value, and are poorly compensated because of that low value rendered. In other words, typical shitty companies give engineers low-quality work and compensate them appropriately for what is done (within the context of the closed-allocation system). Slightly better companies give them good work and compensate them at-market because, if they’re already giving engineers real work, they’re already ahead of 90% of the pack and don’t need to compete on salary!
- I want companies to get good engineers. Right now, assessing a software engineer (even after day-long interviews, code samples and tests, etc.) is almost impossible. Non-engineers literally can’t do it (a non-technical CEO is playing the lottery when he hires a CTO, because if he pulls in a smiling idiot– and those smiling idiots are great at seeming smart– his company will be bozos all the way down) and most engineers themselves are bad at it (tending to rely on technological prejudices, e.g. he used <language X> so he’s an idiot, rather than substance).
- The two problems above are connected! Engineer compensation is low because assessment is bilaterally impossible (employers can’t tell if an engineer is any good, and engineers can’t tell if a job is any good, until ~6 months). What emerges is a sociopathic climate of reckless over-hiring, low compensation, and fast firing. Compensation and job autonomy are low because there are so few good engineers out there; but in the rare case of a “hit”– the engineer and company work well together– conditions rarely improve because, as the firm sees it, he should be happy to have a job!
- I want transparency (into engineer and job quality) that kills off this feudalistic reputation economy. For good. Word-of-mouth is slow. It doesn’t scale. It makes location far more important to a person’s career (driving up real estate prices) than it should be. It also enables professional extortion (bad references, “job hopping” stigma, internal and external credibility markets). Let’s nuke this nasty edifice from space by outperforming it so decisively (by actually figuring out the things it’s supposed to assess, but fails at doing so) that it can never come back.
- I want engineers to improve. Or, at least, I want them to know how to improve. If Sarah wants to be a data scientist at Palantir in 4 years and is willing to put in the work, she should have the resources to get there.
- I want companies to improve. If employers are ranked in a globally visible way by the long-term career success (or, more specifically, the value-added; Google’s alums do well but not because of the work most of them get, but because Google gets high-quality inputs) of their alumni, we can start discovering companies (and educational programs) that improve peoples’ careers, and we can embarrass companies that hurt their peoples’ careers. This will provide an incentive for good behavior by employers that, currently, doesn’t exist.
So, I think above is a rough outline of the game I’d like to play. Unfortunately, I can’t afford to do this unless month-to-month funding starts coming in quickly (hence the importance of the business co-founder). As I said, I’m concurrently job-hunting and, if I find something compelling before that happens, I’d like to make it a 4+ year fit, meaning I’ll have to put this concept away for a while. But that’s the idea, as it exists now. Thoughts?