Silicon Valley hiring is not a meritocracy (2013)
blog.alinelerner.com
blog.alinelerner.com
How long does this have to be an unsolved problem before people start to think, hey, maybe future success just isn't predictable, and certainly not if all you have is a resume and a couple hour interview.
Maybe hire people with at least some demonstrated aptitude and invest in them instead.
how do you demonstrate this?
Someone who can show their own past work, either open-source, side-project, launched projects, or work at somebody else's company ... well there is a high chance that they can at least code their way out of a wet paper bag. Probably more than that too.
Another, perhaps better, approach is to just hire a few of the most promising candidates for a couple of days. Give them a small project. See if there's a fit.
I think that the issue is not only about predicting future success but about trust as well.
The code that they select tells a lot and is a great starter for further discussion and finding out about how they think. It also demonstrates an essential skill, and that is evaluating other peoples work and how to work with it rather than against it.
No one wants to admit this. We want to have control of the future! And prediction is one way to do that.
I once read in an agile book somewhere that certain factors don't necessarily predict success but merely the maximum possible value.
As in, if you don't do X, you cannot be successful. But if you DO do X, you have a probability of being successful, but you can still suck.
So the possibility of sucking is ever present, but the maximum ceiling of possibility is controlled by the number of best practices you implement.
So maybe there's something like that. Our factors aren't predictive, but they open up the landscape to find great people.
Sucky people are evergreen.
I would much rather join a company, devote myself to a problem, a team, and a product, and have the company reward me as such.
Instead, engineers who are willing to jump are generally able to attain much higher compensation than those who stay put - so we're incentivized to do so, rather than investing ourselves in a company and having the company invest in us.
As a result, engineers are forced to maintain two skillsets: one for interviewing, and one for actually building & shipping products.
And except for the time I gave up government contracting to move to the middle of nowhere, I've always made much more by switching jobs than I would have by asking for a raise.
That said, I've never switched jobs just because of the money. Either there was no more room for growth, the company was falling apart around me or I just wanted to take a different path in my career.
Notwithstanding the fact there are companies that under-invest in their employees, you make it sound like engineers are being forced to try to maximize compensation.
The reality is that compensation varies, and the differences can be quite pronounced in the technology industry. A startup with minimal revenue and $1 million in funding probably isn't going to be able to compete with Facebook or Google on salary and benefits. Expecting it to is like trying to get blood from a stone.
There is nothing wrong with trying to maximize your compensation at the cost of everything else, but if that's your approach, you need to live with the fact that you will almost always have better opportunities somewhere else. Constantly lamenting the fact that your current employer can't pay you as much as another employer can is no way to live life.
Incidentally, in my experience, a lot of people who allow their job satisfaction to be based entirely on a perception of relative compensation are never happy no matter how much they make. They constantly find ways to convince themselves that they could and should be making more.
Based on the recruiting contacts I get, there are some startups with massive amounts of cash in the bank that are still stingy on the salaries but will go on and on about equity even when they've raised several rounds at ever-higher valuations. But, fortunately, there are also others that are starting to be willing to pay more cash at earlier stages. I'm far from convinced that this is a bad thing.
I recall losing some relatively good engineers at various startups due to very small, in the end, not bank-breaking levels of compensation, we just couldn't compete with larger companies, when I really would have loved to hire them and maybe just hire less people.
Meanwhile, people who work at companies like Cisco in the area are able to command about 30-40% more in salary sometimes and have better hours.
If you find the right big company, your work can be quite as good as a small one, and you may have better hardware/software resources.
For me, I think the answer is mid-size to large startups right now, but small ones can be good. Can be. But they can go either way really quick.
I recall a similar thread somewhere about sales compensation, which gets super crazy at times, but sometimes getting an engineer who is going to work tons of hours $100k (who is going to make the product you sell or raise money for) at some companies can be really hard. It's not right.
They lose big to save a dime in the most important areas and blow it elsewhere.
If you have a more remunerative job offer from a big grey company and you still take the startup job they're pricing their offer correctly. Hell, they might be offering too much.
(Nor do you have to got to a huge corporation to find the larger offers.)
It's just something to keep in mind when you see "why can't I hire enough good engineers?" posts... not the only reason, by any means, but certainly a reason.
We should have stayed with thou/ye instead of you/you. It was more clear.
While there absolutely are startups offering unreasonably low wages, there are also a good number of startups where relatively young engineers with just a few years of professional experience are being paid well into the six figures annually.
A lot of the complaints about "poor compensation" are misguided and based on unrealistic salary comparisons. Just because Company A has salaries 50% higher than Company B doesn't necessarily mean that Company B is offering "poor compensation."
> Based on the recruiting contacts I get, there are some startups with massive amounts of cash in the bank that are still stingy on the salaries but will go on and on about equity even when they've raised several rounds at ever-higher valuations.
So you'd prefer to go to work for a company that isn't increasing its valuation?
If you think that a company's valuation is far too rich, by all means discount the equity you're offered. But also consider that your ability to predict a company's future value might not be very good. How many people claimed companies like Facebook and Twitter were already overvalued years before they went public? I'll readily admit that I'm guilty of this.
> But, fortunately, there are also others that are starting to be willing to pay more cash at earlier stages. I'm far from convinced that this is a bad thing.
That's great, but be mindful of how this affects runway. Such startups, if they don't hit the milestones required to get to the next round of funding, may not be able to continue paying you for very long.
I happen to make a living because this dichotomy is real. I run a bootcamp to prep engineers for interview skills (http://InterviewKickstart.com). We routinely have sad moments, thinking and seeing how little correlation there is, to what technical interviewing tests for, and what is actually required to ship a product.
Because I've also been on the other side, I clearly understand why it's so. There is just no good way to predict future success with what's demonstrated today. Human beings work differently in different contexts.
(BTW: Aline, who blog this article is from, is awesome)
This is all a loser like me has. I can't whiteboard too well, I cant talk so great some times (other times I'm great at it). I can work hard, though, and for longer hours.
I'm currently doing temp work at a startup now but it feels like they are constantly thinking of letting me go.
If we had a choice (we don't), how do we decide if we should invest in ourselves or not?
Anyone with a few months experience at a big company knows that a new hire's coworkers are, for the most part, selected randomly. When the co-workers match, everything can work out, even if the candidate isn't technically strong. If the co-workers don't match, for whatever reason, the working relationship can easily fall apart.
I don't know what the ultimate solution is. Even work trials aren't perfect since company and team structure change. Accepting the unpredictability of future co-worker relationships makes it easy to see there's no magical solution. Understanding this might help things move in the right direction.
> I don't know what the ultimate solution is.
Two approaches to this problem that might make sense are: (1) hire based on your current employees' recommendations; or (2) hire entire existing teams all at once.
Based on what I read, both of those are fairly popular approaches already.
It seems like most of our employers pass up on people we know are qualified BECAUSE WE'VE WORKED WITH THEM ON HARD SHIT, to hire people who can whiteboard but something but are miserable engineers.
Or, at one recent employer, desperation to hire a certain flavor of mobile engineer, only to interview them with graph theory questions and reject them on the basis of that.
Or, there's another, nastier possibility. Code quality + stability is not valued nowadays, just getting shit done, no matter how buggy it is later. Management and teams will probably churn before the product collapses into itself, so nobody loses.
1. Cultural compatibility. Ego generally not good. Wanting to work with others - good. I've knocked back "stars" because they'd try to derail a good team 2. Basic competency in the areas needed. If I need real-time knowledge or distributed systems, show me enough that you know the traps. 3. Ambition/commitment. If they're too ambitious they won't last. If they lack commitment, they won't strive.
Ultimately, it's about creating the culture where willing and capable people will fit. Someone mentioned about their wife being an expert and not being hired despite HR recommendation. I've seen this on several levels before, "I like this person so they should be hired". However, HR do not understand culture of teams, relevant skills, etc - although they will tell you that they do. "When I said they need to be able to program machine language, I didn't mean stacking vending machines". My example is flippant (I'm tired, not thinking), but the idea is there. HR don't have the knowledge in most organisations I've worked for.
If only I could figure out how to keep more of it for myself, but alas I'm lazy and undisciplined. ;-)
It turns out there ARE things that can strongly indicate employee competence and success, but nearly no one uses them. People like her get hired, and then management promptly ignores their suggestions. On one of her job interviews, while waiting for a manager to come in for the interview, she got to talking shop with the HR rep who was co-conducting the interview. They talked a little bit socially afterwards too, and the HR rep agreed with my wife that the interview went terribly because it didn't focus on anything of real substance. The HR rep said to my wife, "we've been looking for someone like you for months, and we've seen a few as qualified as you, but not many, and we've never made an offer to folks like you because they won't listen to me, I keep getting overruled, and we're still without that position filled." They can't fill the job because they keep ignoring the advice they're paying for.
One example is the interview. It turns out the interview as we do it is actually one of the WORST ways to hire people, because it rewards all the wrong behaviors over the real needed skills. Simply scanning a resume isn't great either, you need to engage with the person on theoretical tasks, like an audition, rather than simply conversation and crazy questions.
TL;DR We know how t hire people, experts have it worked out, but we don't want to listen to their advice.
Schmidt & Hunter, 1998: http://mavweb.mnsu.edu/howard/Schmidt%20and%20Hunter%201998%...
Honesty is a huge factor. She mentioned a blog post by a semi-well known HR professional Tim Sackett that ends on a very telling note: "Here’s my take on candidate lies – candidates continue to lie, because Talent/HR Pros don’t call them out on it. We (HR) also perpetuate this problem by hiring the folks who give you the crappy lie, but don’t hire the folks who come clean and tell you the truth." Here's a link [ http://www.timsackett.com/2013/07/24/top-candidate-lies/ ] but the lies were less important than the fact that interviewers ignore the honesty and look only at the "problem" that was revealed. She said if someone told her "yes there was crime X from ten years ago," it's more important to evaluate their honesty about it and the circumstances than simply crossing that person off the list, for example. Did they bounce a check, or get a single DUI in college? Is that really relevant when they're 35? Isn't that level of honesty a good sign?
Another aspect of honesty was revealed by that study that came out last year: http://www.cbc.ca/news/business/narcissists-do-better-on-job... "Narcissists or shameless self-promoters do better in job interviews than more modest personalities, a study by University of British Columbia researchers finds"
She read the study and felt it was very insightful and academically solid. Again, interviewers examine the delivery but not the substance. Which is better, someone who says, "Yes, I'm very proficient" to every skill question, or someone who honestly says, "I'm very god with XYZ but I do feel there's room for improvement"? It turns out the latter winds up being a more conscientious and useful employee, but they don't perform as well in interviews.
Testing is huge, as well. There are a lot of companies that use it, but some, like ProMetric tests given to low level retail employees are still flawed, and don't use sound methodologies in eliminating biases in answers.
In my own businesses, she's helped me create better hiring methods, and I went from never hearing about "I/O Psychology" to wondering why more people don't know about that seemingly very valuable type of professional.
Note: I'm not trying to blow my own horn or even my wife's, but simply point out that there's a lot of science in HR that a lot of companies don't utilize. HR is more than managing people like machines.
I'll try to remember to add to this after a few days when she's found more for me to share.
I agree in theory, but the real world doesn't work like this. There is a very high probability that the candidate that you want to hire is a very busy person and can devote half a day or a day to figuring out if they want to come work for you. Similarly if you have 5 people on your shortlist, you can only devote a finite amount of time to figuring out which one of them is the best fit.
Everything about the interview process incentivises both sides to LIE, LIE, LIE. The skill being tested for is acting.
Your cites below will be useful. Thanks :-)
A child knows that predicting the future is impossible.
It has only gotten worse.
I don't have a degree from a prestigious school. I do have a bachelors in Computer Information Systems though. What this means is I have hands on practical experience in what to do and how to do it - but I don't have the deep theory tutelage that everyone in SV seems to require.
Unfortunately I was duped in to thinking you build a career and build ontop of what you have done. In SV - nobody even bothers to look at my resume.
I've never been asked about my experience. I've only been shown a whiteboard and told to jump through hoops.
It is B.S. because the white-boarding ability has no bearing on how good of a colleague you are. How much you contribute, and whether or not you are a good engineer.
IMO all it does is validate that you went to a top tier school - and allows for the the hiring company to add 1 more million onto their valuation on exit.
Case and point: a few years ago I interviewed at a company that wanted to build a Learning Management System focused on re-educating senior-citizens. I had 4 years of relevant experience in that industry, which included working for the top two companies in that verical. I happened to be a Rails engineer which they wanted to leverage. It seemed like a perfect fit and they were on the cusp of giving me an offer - but they passed me up to hire someone from MIT that had never worked for a company and had never touched ruby. His MIT degree was more valuable to them.
If merrit was a thing in silicon valley - that would not have happened.
Even a graduate of a top-tier school will struggle with that whiteboard stuff after 10-20 years on the job. A real working programmer just doesn't use this stuff day-to-day. The real purpose of it is as an age filter.
There's another domain that struggles with this. Professional sports. I'm more familiar with the NFL, but this applies to the NBA as well. There are countless "can't miss" 1st overall draft picks that are busts; there are undrafted players that make it into the hall of fame.
hire people with at least some demonstrated aptitude and invest in them instead
Certainly pro sports tries to do this, but some players are just more coach-able than others.
Also, especially at the pro level, there's a certain very intangible "thing" that separates the merely good from the great. How do you coach for that?
It's always been my mantra that if you can't explain something to someone with no background in it then you don't truly understand what you're trying to explain.
Solution: put your pedigree at the bottom of the page. Someone looking at my CV needs to get through all my projects and past successes before they get to the bullet point that says "5 years college, no degree".
Why on earth would you put your weaknesses first?
Not saying this is OK, for the record.
This is just as much a filter for me as it is for the company.
One thing I've learned in my job searches is that I'm looking to filter just as much and quickly as the companies I'm applying to.
Yes, up to and including blatant lies. If your company establishes a reputation of screening resumes based on certain features like university you encourage less moral applicants to fluff up their resumes. While these people may not make it through the interview stages, they force the competent but humble or disadvantaged applicants out at the resume screening stage.
> It's always been my mantra that if you can't explain something to someone with no background in it then you don't truly understand what you're trying to explain.
True, but in some cases people aren't allowed to talk about what they have done at that level. That puts anyone from a defense contractor, HFT firm, R&D group, and similar at a significant disadvantage because they can only advertise what they are doing in the broadest terms, if at all.
I wasn't suggesting that people lie on their resume or cover letter.
> That puts anyone from a defense contractor, HFT firm, R&D group, and similar at a significant disadvantage.
I was a defense contractor and experienced this first hand. I found that good communication skills both verbal and written were able to overcome this. Since the hypothetical non-technical recruiter in the OP isn't going to understand the technical things that you can't talk about anyways, being able to communicate how you added value is even more important.
I know, and I did not intend to suggest that. I'm just pointing out that people do, and it distorts resume pre-screening.
> I was a defense contractor and experienced this first hand. I found that good communication skills both verbal and written were able to overcome this. Since the hypothetical non-technical recruiter in the OP isn't going to understand the technical things that you can't talk about anyways, being able to communicate how you added value is even more important.
That depends on what you are working on. My first program, I could give you a pretty good description of what I did and how I contributed to the program in meaningful ways. My second program, I couldn't even say what it was when I first started. Even now I'm severely limited as the program has a very low public profile. What is actually in my resume now is pretty much the extent of what I can say.
That's a bit harder to do in the case of classified material, but maybe there is a similar balance you can strike?
>I wasn't suggesting that people lie on their resume or cover letter.
Suppose a job ad asks for 10+ years of node.js experience.
They get 5 resumes that claim 10 years of node.js experience. They get 5 resumes that claim 1 year of node.js experience.
They interview only the 5 people who claimed 10 years of node.js experience.
So the liars push the honest people out of the interview pool.
This is the issue that I have with job postings demanding "kickass developers/designers/etc".
I am good at what I do, but I would never use terms "kickass ninja" or "top shelf hacker" to describe myself, on principle. My work is not antagonistic and not competitive against other programmers or anyone else, so no "kicking ass" for me, and "top shelf" in this young industry just sounds silly, since there are new tools and patterns to learn every day.
It's weird that we're trying to attract good people as if it's still year 2000 and everyone will work for Mountain Dew and skateboard stickers.
1. Make all the resumes that come in responding to technical jobs go straight to your inbox. If your company has a candidate tracking system then set up an alias that sends it to you and to the tracking system.
2. Review every resume yourself. Jump in and ask follow up questions for candidates that are interesting.
3. Interview them yourself. Every one you bring in you should spend some time with.
4. Have authority with the head of HR to make offers and move fast when you decide to hire people. If you leave this up to HR you will lose the best candidates.
The simple fact of the matter is you can't outsource this to recruiters. Let HR people do their paper work and all that but do NOT allow them in the decision making loop.
This article is right you can't train them to do your job, and my experience is that they are trained, basically, to be paper pushers and gate keepers.
Not only do these people not know how to tell a good candidate from a bad one, they (with very few exceptions) don't even KNOW they don't know, and they think they are an important part of the process in screening people out! Look at their blog posts and linked in profiles. They're proud of this role because they think it makes them important and they think they know what they are doing. This is the worst kind of ignorance, those who think they know but don't.
If I seem bitter it's because I've spent a lot of time dealing with HR people who are incompetent and who, basically, don't give a damn about the quality of hiring.
So, I'd say the number one most important hire in the early years (but not the earliest years) is the head of HR.
I don't understand what you mean here, and this comes off as offensive.
What if you were proud of the promotion to "manages" and you want to highlight the fact that you were given this promotion because of the level you were performing at?
Is it not a sign of a quality candidate?
I feel like you just watched last week's episode of Silicon Valley and internalized it.
"The sad truth is that if you don’t look great on paper and you’re applying to a startup that has a strong brand, unless you know someone in the company, the odds of you even getting an interview are very slim."
Is, in my experience as someone doing the hiring at a number of 'name brand' companies, completely false.
That said, I've heard it used by recruiter after recruiter trying to play on the fears of an insecure engineer in order to get them to commit to approaching companies only through the recruiter. The motive here is that the recruiter wants to get up to 30% of your first year's salary for introducing you to a company, if you approach the company directly, well then the recruiter gets zip.
I strongly believe that it is this self interest which drives this silly (and bogus) narrative that if you don't come from the "best schools" or have the "best pedigree" you won't even get looked at by the "hot" start ups or companies.
That said, just mailing your resume to the 'jobs@...' address and hoping for the best is not a good strategy either. The key to getting an interview is that the hiring manager has to think you have a shot at being hired into the job, and for that to be true they have to believe that you have the skills to do the job, and would be able to work well with the existing team.
The easiest way for that communication to happen is to have someone that knows you and knows the manager make that connection. The next easiest way is to participate in activities that people who do that kind of job participate in. I know people who have been located in World of Warcraft guild chat, at maker spaces, and at conferences. Here is a clue, hiring managers go to subject matter conferences to meet people who might have the skills to to fill the positions they are looking for. It is efficient, you meet a lot of people quickly, and it is "safe" (you don't have to set expectations you just start talking). Another great source of recommendations? Professors. People who have seen you working on problems, ideally in small teams, and coming up with solutions.
But I find it disingenuous to single out tech, which is one of the most meritocratic industries. What does the screening process look like in finance? Academia? Journalism? Real estate?
Unlike software, nobody who's been in or involved with academia for more than a year or two (read: grad students) holds on to that illusion or parrots that brand of nonsense.
My suspicion about software's need to maintain a veneer of meritocratic legitimacy is that there's a lot of money being tossed around, and a lot of founders/entrepreneur types making and losing money. Those who succeed have the loudest voices, and they don't want their successes to have been be influenced by the whims of fate or chance. So we end up with this Horatio Alger mythos born of the dissonance between success and merit.
This sounds like a great business opportunity BTW. I would love to get the real deal on some of these recruiters.
https://news.ycombinator.com/item?id=9551239
In particular:
Is this right ?
I'd be disappointed though.
As someone with some high value, tough to get paid that value as an employee; that's a very old lesson.
E.g., I've been programming for decades and am doing so now in my startup, but my programming background doesn't meet the criteria in the job ads. So, I have little or no experience with Python, Java, JavaScript, C++, Linux, Unix, Haskell, Scheme, Lisp, C#, functional programming, etc.
Instead for my platform I selected Windows instead of Linux. On Windows I selected Visual Basic .NET (VB) instead of C#. Why? Because for my work both VB and C# are essentially equivalent ways to build on the common language runtime (CLR) and .NET Framework, ASP.NET, ADO.NET, SQL Server, etc. And for my work, C# and VB differ mostly just in the flavor of syntactic sugar.
I prefer the flavor of VB because: C# borrows much of the deliberately "idiosyncratic" syntax of C. Sure, way back in the DEC PDP-8 with 8 KB of main memory, some of the sparse C syntax may have seemed good to have. While there are still some good uses for C, now for my work C is like digging a Panama Canal with a teaspoon and VB and C# are far ahead. No C for me, thank you. Much the same for C++ (e.g., tough to avoid memory leaks -- tough to be really clear on just what the heck Stroustrup wrote).
So, I like the more verbose, traditional (Algol, Fortran, PL/I, Pascal, etc.) syntax of VB instead of the more sparse, idiosyncratic syntax of C#.
So, to me, VB is easier to write and read and, when I start to hire, teach and learn. So, it's VB.
The .NET Framework? It's a major hunk of software, one of the most important in computing. Microsoft is solidly behind it, and they have several tens of billions of dollars in cash to back what they want. Microsoft has long seen their business as that of supplying a platform for others to build on, and their .NET Framework is one of their most important planks in their platform.
For my work, .NET has a class for nearly everything of any general purpose utility. So, often my code becomes mostly just mortar to join .NET bricks.
For more, ASP.NET has a way to write Web pages, and so far it seems mostly from okay up to fine with me.
ADO.NET has a way to get to relational data base and, again, seems mostly from okay up to fine with me.
For Python, maybe I will use it for some of its good packages, if doing so becomes worthwhile for my work.
For Java, don't need it. If I had already used it, then I wouldn't use it now and would forget it.
For JavaScript, so far for my Web pages ASP.NET has written a little JavaScript for me, but I have yet to write a single line. If I need it, then I will use it -- so far I don't need it.
For Lisp, too many parentheses, and I'd have no idea how to get to the .NET Framework.
For algorithms and data structures, been there, done that, learned it, used it, taught it in college and graduate school, done original work in it.
For the engineering, I've got a Ph.D. in engineering from a world famous research university. Some of that background is crucial for my startup. It appears that the jobs with the job ads would make no use of that background -- a big advantage for my startup. Besides, nearly no one hiring would be able to evaluate my Ph.D. work. And nearly anyone hiring would be afraid to have a Ph.D. subordinate.
So, the job ads and I agree to disagree: They don't want me, and I don't want them.
If my startup works and I need to hire for software development, then I will. Main qualifications: (A) Some okay basic computer usage and familiarity and interest. (B) Good at reading and writing technical material. (C) A good record in a college STEM major. (D) Otherwise looks like potentially a good employee. Having programmed a little would be a plus. That's what I'll hire for. It's not so strange: It's how I got hired in a Watson lab AI group, and they hired for the right stuff.
The job ads for software developers are sick-o. That others are making such mistakes is good for my startup.
For the poor employee, why the heck do they want to get hired just to write a first mobile app? So, is that job worth their uprooting their family, moving across country, buying a house, getting good schools for the kids, having their spouse happy, maybe also with a job, etc.?
Same for bookkeeping, accounting, taxes, payroll, business insurance, business law, setting up system monitoring and management for a server farm, network configuration, travel planning, employee benefits, etc.
For details of how to make use of high end products of Microsoft, Cisco, etc., I'd expect some good technical sales support and, later, some more technical support even if paid for by the hour. E.g., to set up some parallel, highly reliable, high performance, high end SQL Server database, I'd expect a lot of help from Microsoft. Same for much of their system monitoring and management software. If HP wants my startup to use some of their system monitoring and management software, then they'd better have their technical support people ready to play. I don't intend to hire full time employees with such expertise in place before I hire them; if they happen to have such expertise and look good as employees otherwise, then fine.
Same for running 500 A of 120 V electric power lines, fixing the HVAC or the plumbing, installing an employee kitchenette, installing phones, mowing the grass, plowing the snow, etc.
So my work is for a part of search served at best poorly now. Thus, my work is not really in competition with anything else out there now.
Keywords/phrases often work very well, and there my work is rarely as good.
While the broad idea for the users and the UI are simple and intuitive, the business model, UI/UX, data from the user, database in the server farm, and the manipulations of all that data are wildly different from anything else in search.
Can read all you want on the Internet about various ways to build a search engine and still won't get even a hint about how my search engine works, not the UI and not the core server side software.
Broadly part of the idea is to give the user search results, that is, Internet content, that has a useful approximation to the meaning the user wants. So, the search engine is trying to get at or approximate meaning.
For this meaning, there's some math involved -- original with me, right, with some theorems and proofs, typed into Knuth's TeX, and with some advanced prerequisites. I especially thank A. Kolmogorov.
From my Ph.D. and published papers, I'm supposed to be able to do such research in math, and I have.
Of course the users will not be aware of anything mathematical -- the math is all buried in the deepest part of the server side software.
The key part of the whole project is just the math: If stare at the theorems and proofs of the math, then can get convinced that it should work quite well for its intended part of search.
Given the math, the software is routine and even next to trivial.
Maybe it is appropriate to call the project a case of information technology, but the software is so simple that it's not fair to say that it is a software project. Instead, plainly, it's a math project, with some original math, but might be called an applied math project.
The work is intended to do very well honoring user privacy.
The revenue is from just the most obvious source -- ads from ad networks. And I have some ideas for especially good ad targeting, still doing well on user privacy, I intend to implement later.
The core software has looked solid for a long time; it runs as just some Windows console applications that communicate via TCP/IP sockets and de/serialization of instances of a few simple Visual Basic classes.
The timings of the core software look quite good and much better with some selected use of solid state disks -- write rarely, read frequently.
There are good log files for the Web site and also the core software. Fairly simple processing of the log files should give a good view of what the users are doing and the performance of the server farm.
What's left to do is putting a Web site in front of that core software. The software for the Web pages is also nearly done: I should be able to get the last bugs out of the Web pages this weekend. The Web pages are so simple that they should present no performance challenges. E.g., the most complicated Web page sends for only about 400,000 bits.
Fixing the last bugs in the Web pages, then the alpha version of all the software should be done. Then I will give a critical review and do the beta version.
I wrote no prototype code; when the beta version looks good and is nicely free of bugs, that will be the production version 1.0.
The code I wrote is as solid as what a team I was on at IBM's Watson lab wrote and shipped as IBM Program Products, IBM's highest quality software product category.
My Web pages are so simple and small (exactly 800 pixels wide but a user could get by seeing only the left 300 pixels of width) that they should look good on any screen from a work station down to a smart phone.
As we know very well by now, Internet search is just super important, in the US and around the world. Well, a significant fraction of search is served at best poorly, and my guess is that nearly all Internet users will want a good search engine for that fraction and will be able to see that my work is by far the best for that fraction. So, that's the source of my confidence that my project might be successful.
If the project works at all well, then I shouldn't have any trouble, say, buying a new car!
While I'm a solo founder and did all the work, on this project I'm an entrepreneur, not a programmer. If this project is successful, then I will want to hire some people for some routine programming, and I will train them and, then, let the first such batch set up a training program, e.g., with video lectures, for later programmers. But looking at the job ads, it's clear I'd never get hired as a programmer.
Moreover, the venture capital people and YC want nothing to do with me and won't until I have traction. But for the amount of traction they want, I would have revenue enough not to need or be willing to accept equity funding. No, I don't have four kids and a pregnant wife.
Also I'm terrified of the idea of reporting to a BoD. I just can't think of a realistic BoD that could understand the core work. When at an eary Board meeting I gave the math for the ad targeting to be done, most of the Board members would get so upset they'd leave a smelly trail all the way to the little boy's or little girl's room. I'd have hose off and totally redecorate the Board room and everything on the path to the little rooms. They'd try to execute their fiduciary responsibilities and, too soon, totally blow their fuses.
One of the more unpleasant experiences in life is listening to a math lecture with theorems and proofs where really do want and need to understand but don't have even 1% of the essential prerequisites.
My guess is that any usual startup BoD would have my company totally dead in less than 18 months. They might try to save the company by, say, selling cupcakes on-line!
So, I am 100% owner and should stay that way.
It's been noted more than once in recent months that it's now possible for a solo entrepreneur to bring up a successful Internet based business. Actually, so far I've seen no reason to hire people. Instead, it's my business and up to me to make it go.
It seems you have a very pragmatic and humanistic mindset, but at the same time all the conventional wisdom of software development tells me you can't run a successful startup on VB. Good luck and I look forward to learning how it turns out! Hopefully you'll smash my preconceptions :)
I'm using Visual Basic .NET which is essentially equivalent to C# and, thus, essentially the most powerful programming language on Windows. Compared with C#, Visual Basic .NET is mostly just a different flavor of syntactic sugar.
So, I have full access to the .NET Framework with ASP.NET, ADO.NET, SQL Server, etc. and, thus, have a language quite capable of running a serious server farm.