This Blog Has Moved!

My blog has moved. Check out my new blog at

Your Ad Here

Wednesday, November 4, 2009

Do Employers Respect Software Engineers?

I noticed a disturbing trend in my recent job searches. Everyone asks quite a few basic programming questions as part of their interview process.

That might make sense for a recent college graduate. I have over 10 years of experience! It's insulting to ask me basic programming questions during an interview. I have 10+ years of experience and I graduated from a good college. Can't I skip past the "Show me a linked list!" part of the interview? Can a 1 hour test really measure more than "FSK got a Computer Science degree from a top school with honors!"?

The quality of the interview is an indication of the quality of job. If someone isn't respecting you during the interview process, then that means they probably won't respect you while working there.

There is a correlation. The more meaningless the interview questions, the lower the quality of the interviewer.

As long as I'm in the wage slave track, I'll probably be subjected to abuse. "Find a less abusive master!" is a reasonable goal.

For now, my goal is to find a less-abusive employer. I'll find something eventually. In the long-term, I should get out of the wage slave track, either on-the-books self-employed or working as an agorist.

Another disturbing problem is "FSK is overqualified". The headhunter says "The client is looking for someone with 5 years max experience." I say "I'm willing to work for the same rate as someone with 5 years of experience. Why not consider me?" The headhunter says "That's no good. The client wants someone young they can mold." Translating, they want someone they can abuse. An older employee has been around the block a few times and won't accept abuse. A younger employee is easier to abuse.

In what other careers is "too much experience" considered a detriment? Would someone say, "Sorry Tom Hanks, you're overqualified to act in my movie, even though you're willing to work cheaply."? Would someone say "Sorry, you've been doing this for 20 years. You aren't qualified to be my dentist."? The problem is that a middle manager is afraid to hire someone more experience than himself, lest his bosses replace him with the more-qualified subordinate. It's a symptom of a non-free market.

After 10 years, I should be taking a manager or team leader job. Unfortunately, I have no prior experience in such roles, making me ineligible. In the wage slave software engineer track, my only value is "number of years in which languages". That's a problem, because most of my experience is in languages that are no longer used. My experience isn't worthless; I think it's really useful, even when working in a new language. The problem is that the market value of my experience is $0, even though it has high real value. It is a non-free market, so some clever hiring manager doesn't arbitrage this discrepancy.

Another disturbing trend is the "programming assignment". It's usually a trivial task, but it's still going to take me some time to do it and make sure it's right. I'm not wasting several hours doing a meaningless programming task for an idiot. I have some code samples available, rather than wasting time on a stupid task.

If you're serious about hiring someone good, then you should be willing to have someone spend a couple of minutes interviewing me. I have enough experience and education that I should skip past the "Verify FSK has basic competence!" step. If the hiring manager is serious about hiring someone good, then he should be willing to spend a few minutes talking to me.

On the other hand, there really might be a lot of unqualified losers out there. That might bias my perspective. Given that most job ad requirements are irrelevant, I suspect that a lot of people lie on their resume. If a job ad says "We demand 20 years experience in Microsoft SQL server 2008!", then you edit your resume so you have 20 years of experience in Microsoft SQL server 2008. Being honest, I'm at a disadvantage relative to everyone else.

If I were hiring a software engineer, the only criterion would be "Does this person have the productive or parasitic personality type?" You can tell that in a few minutes, even if you aren't talking about software engineering.

Employers don't respect experienced software engineers. This is a sign that a software engineer is not a professional career.

Imagine if other professions were hired like a software engineer?

You're hiring an accountant. You ask him "What is line 47 on the 1040 form used for?"

You're hiring a doctor. You ask him to name various parts of your anatomy first.

You're hiring a dentist. You ask him to name each of your teeth first.

You're hiring a lawyer. You ask him what UCC 7-202 says.

You're hiring an electrician. You ask him if he can tell the difference between a wire and a battery.

You're hiring a plumber. You ask him if he can tell the difference between your shower and your toilet.

You're eating in a restaurant. You first demand that the chef demonstrate that he can tell the difference between an onion and a tomato.

Those questions seem obviously silly. The typical programming questions on interviews are about as relevant as the above questions.

Programming is an objective science. When parasites are controlling things, they give the appearance of being objective while measuring nothing.

The programming assignments and tests seem to be much more "Jump through this hoop, FSK! Good dog!", rather than a meaningful test of my ability.

I should get out of the wage slave software engineer track and try other things. For now, wage slave software engineer is my best option. I prefer to not work for parasites and idiots, but almost every hiring manager has the parasitic personality type.


Anonymous said...

I agree with most of what you said here, but here is one thought: How worthy a 20 years experience of a dentist would be if dentistry changed it's technologies 10 times during that period? Would you like a dentist who [might be] 10 technological generations behind?

On the other hand, you'd still not ask him to do something as simple as naming your teeth.


Chrono said...

You could be lying and your ability to answer the questions proves that your qualifications are what you say they are (or at least closer than not).

Just like your Bayesian reasoning. If some random guy copied your resume and applied for the same jobs you did, he would fail the test questions, and the answer to the question:

"Does fake FSK have software qualifications?" would have a truth value of almost zero.

When you go into an interview and answer the stupid questions correctly, the answer to the question:

"Does the real FSK have the qualifications he says he has?" has a truth value of almost one.

This is the purpose of the tests.

But the tests might be a symptom of pro-state brainwashing. Students are expected to recall random meaningless facts to do well in primary and secondary schools. Especially in the non-technical disciplines. The interview questions are similar to this, and they could just be following the pattern you would find on a psychology or world history exam. Recall random fact A. Did event B involve person C or D? Etc...

But you can also ask questions in an interview. You can ask about the company and you should remember that the purpose of an interview is to determine fit. You have over ten years of experience, FSK! Why not ask about some of the more negative experiences you've had? I reccomend asking in a roundabout way, so you get your answers without directly communicating that you had a negative experience.

For example,

FSK: How long has your company been operating?

Guy: We've been around since 2004.

FSK: Are you an original programmer?

Guy: No, I've been with the company 18 months.

FSK: (thinking...) I'm pretty sure I don't want to work here.


FSK: Do you all do code reviews?

Guy: Yes we do.

FSK: Could you give me an example of a recent code review and what you covered in the review?

Guy: Well we did
1) Nitpicky item A
2) Wasteful item B
3) Nitpicky item C
4) Useless suggestion D
5) etc

FSK: (thinking) Pretty sure I don't want to work here either...

Master Doh-San said...

Much of the problem is that a lot of the "interviewing" is done by people from "Human Resources" who don't have the first clue about the technical details of the job they're interviewing you for.

CorkyAgain said...

Most dentists are self-employed. Your relationship to them as a customer is not the same as that of an employer to a worker on his payroll .

I think most people choose a new dentist based on word-of-mouth reputation -- or else they simply trust that the government would have put the really bad ones out of business. (I know, I know.)

In the software world, diplomas and resumes don't carry any weight. No one seems willing to hire anyone solely on the basis of their diploma or resume.

Many employers say they have to go through such ridiculous rituals when hiring a worker because it can be incredible difficult to undo a mistake. If you decide you don't like your dentist, it's easy for you to take your business elsewhere. But if an employee decides that a worker he hired isn't really a "team fit" or isn't competent to do the work required, he has to navigate all sorts of government regulations before he can fire him.

At least, that's what they say. As you've found on your recent jobs, it's actually pretty easy for them to come up with excuses that satisfy the legal requirements.

OTOH, if you're a member of a protected class who might hit them with a lawsuit alleging discrimination...

How do employers defend themselves against those lawsuits? By establishing "objective" hiring and performance standards, and documenting how each and every candidate and employee does or does not meet those standards.

And of course, they also have to be able to show that the standards are not themselves illegally discriminatory -- which usually means they have to produce the politically correct results, as we saw in the recent firefighters case.

All of which leads directly to interview questions about building linked lists, etc.

The root problem, as usual, is government interference in the marketplace.

Chrono said...

When you interview for a job, you should be as honest about your expectations and qualifications as possible. What you tell and present to the interviewer affects the job you get, and in that way of cause and effect, you get what you pay for. So if you sit through ridiculous testing, you are likely to get a ridiculous job where you are overmanaged and treated like a child.

Also being up front about what you consider inane and retarded means that you will likely not get jobs until you meet with a company / person who has the intellectual depth that you do and likewise, respects your preferences and experience.

A question. Why did you go through a headhunter? Why not just click through the 'jobs' link on some random website or other? Like google, or yahoo, or ebay, or microsoft, or at&t, or verizon or whatever. Seems like you would find a job rather easily that way. What about the career center at your college...?

Oh and also, isn't there a website (I know the author of the four hour work week mentions it in his book) where you can find people who offer to do work for a certain amount per hour? Why not list an ad there?

Can't remember what else, but it should be easy to find a job as a programmer in NYC, especially someone who's worked for Microsoft, someone who's worked programming software for stock trading systems, etc.

Finally, since I've been reading your blog, you've had something like 3 jobs. This also jumps out at me. Either there is a lot of employer initiated turnover in that industry, or it's you. Which is it? Objectively...which is it? I'm not asking you to answer publicly, but that's an important question to consider. I have a feeling you may be doing something to provoke people in your jobs/interviews. You might be tired of doing coding tests, etc, but on the contrary, if I were you, I'd be happy they are there. If you have an actual interview, the salary is in the range you want, and the test they are offering you to take to prove you are employable is a piece of cake...why in the world would you balk at that?

They are saying (in my view) that they are overpaying for you. Correct me if I'm wrong. If you think that means they don't respect you, I'm just not seeing it. They are the ones seeing multiple applicants, rather than yourself. But I will say this, Stef (yet again) has a podcast or 10 on interviewing. He presents some important ideas. One of them is that if in the salary negotiation they offer you the exact salary you want (i.e., your high range salary) then that is a sign of trouble. It means they are probably overpaying everyone in their operation, which means they do not have good business sense. While this statement makes probably a correlation error, it's otherwise a good (and important) statement. Perhaps it explains the conundrum you are in (assuming the salary is high and the test level is low).

Anonymous said...

I'm a software developer with well over a decade of experience. I now run my own company. A vast number of companies love the software I produce.

However before I decided to set up my own software business, I did work for other people and had to go through the interview process.

I agree with everything FSK says.

Throughout my career I have done small hobbyist projects and all are available on the Internet. The point of these projects was to increase my skills and to show prospective employers what I can do. Some of this work is pretty much unique and even has featured on the front page of certain world famous technology companies to demonstrate their technologies.

As such any prospective employers could have looked at some of my publically available projects and used them to skip some of the pre-tests.

However none did.

All the testing in total spread across several different employers can waste days or weeks of your time.

I went to an elite university and got good marks. It should be obvious that I can learn new skills.

I found that technical ability isn't what employers want. Unless the hiring manager is productive and smart, he/she wants to hire someone with less experience.

As such I feel older programmers end up only being able to work in their own companies.

Part of the reason I set up my own company is that I got fed up of wasting days in tests, when I knew I could better spend my time writing code for myself.

And in reference to a previous comment, it is quite common for software developers to have several jobs with each job lasting between 1 - 3 years. This is not so much a reflection on the person, but just what happens in this industry.

In a few cases I have interviewed at companies that have actually purchased software from my micro-ISV. At the interview I did tell the hiring manager. This has happened in three cases so far. However two companies rejected me after an in-person interview and a third company rejected me just after receiving my resume/CV.

Anonymous said...
This comment has been removed by a blog administrator.
FSK said...
This comment has been removed by the author.
Anonymous said...

That's OK. My comment showed up as "Anonymous said..." So you can keep it. Just delete the last entry asking for it to be deleted!

Sorry. But I just like to keep my comments very separate from my identity.

FSK said...

That's odd. It seems that if you publish a comment with your Blogger ID, you have the ability to un-publish it, even without my consent.

See above, "This comment was removed by the author." and "This comment was removed by the blog administrator."

I have "comment moderation" enabled, and I still have the comment moderation E-Mails!

I blog Anonymously, primarily because I don't want future wage slave employers discriminating against me based on my blog. At this point, I'm not so much concerned about "FSK will be arrested based on his blog's content!"

The State isn't just government. The State is also about the possibility that a future wage slave employer would discriminate against me based on my personal beliefs. It's a non-free market, so there's no penalty if wage slave employers refuse to hire me.

That's the main point the post. In a non-free market, if you fail to hire a really qualified employee, there's no penalty. A middle manager in a corporation is not the owner. Therefore, the incentive is to hire mediocre people who don't seem more qualified than you.

I just want to make sure that prospective employers Googling my name don't find this blog!

I'll probably abandon my Anonymity once I have enough other sources of income, to not be dependent on my wage slave employer. Also, if I attempt "Promote agorism via standup comedy!", then I'll have to give up my Anonymity when giving live performances.

CorkyAgain said...

Doh-san is correct about HR interviewers reading questions from a script because they don't themselves have any of the technical skills they're trying to hire.

But it isn't only the HR people. Many companies use members of their programming staff as interviewers, and they ask these simple "quiz" questions too.

Part of the reason they do this is typical geeky posturing and oneupmanship. But I still think the main reason is the company's legal concern to be able to defend itself against lawsuits.

The influence of government, wherever it intrudes, is often an attempt to codify commonsense into a set of hard and fast rules that will eliminate the need for "judgment calls". (I think it's ironic that this has occurred in the software industry, given what computer science has taught us about NP-completeness.)

Anonymous said...

>If you have an actual interview,
>the salary is in the range you
>want, and the test they are
>offering you to take to prove you
>are employable is a piece of
>cake...why in the world would you
>balk at that?

I've been in a similar position to FSK and would like to reply to what you said.

I have several pieces of software publicly available on the Internet. Most are pretty unique in some way. I would like some employers to evaluate my software and use this to cut out some of the tests. None do.

The fact is that today you might have to interview with 10 - 20 different employers. There is a lot of competition for jobs. In bad times, 50 - 150 people can apply for each job. If each job demands testing spread over 3 days, it can soon get rather tedious. It is getting more and more common for testing to get longer and longer.

The whole thing gets tedious when you start to realise that technical ability doesn't seem to matter.

I once interviewed at a bank and had to make trips to their offices on three different days. In their hour long written test I scored 100%. In a similarly long oral test, I got virtually every single technical question correct. Yet after all that time, the reason given why they couldn't employ me was that they thought "I wouldn't fit in with their teams." Ironically this bank had already purchased software from the one-person micro-ISV I run. In fact they had purchased from me on 3 different occasions.

It is so disappointing to learn that after wasting so much of your life jumping successfully through their hoops to realise, that in reality, it doesn't matter.

It would be better for them to give you a short verbal interview and from that decide whether to progress to time-wasting tests i.e. speak a bit first and test later.

Anonymous said...

There is a saying that A students hire A students, but B students hire C students.

This effectively paraphrases what FSK is saying.

A smart person will hire someone smart as the objective is to do productive work.

A dumb / evil person will hire some stupider than themselves as they don't want their game to be exposed, they feel jealous etc.

Big companies have long hiring processes. Small companies want to emulate the success of big companies and so follow suit.

But it is the candidates that pay the cost. If your interview is out of state or in a foreign country, you can easily spend 4 - 5 days on the interview process in total. Even if in town, you might have to make 3 different trips.

So how much is 3 - 5 days of your time worth? 1000 USD? 2000 USD?

I run my own micro-ISV and quite frankly I would prefer to add a new feature to my software, than waste 3 days writing test code.

Just to emphasis how stupid hiring today gets, I once went to an interview. During the interview with the manager I got every single question correct. However I didn't get the job. On the way back to the airport I checked my email and found that 12 new customers had purchased my software in the space of time the manager took to reject me. This rams home how what a fraud the interview process is.

Soon only the privately wealthy or those will copious free time will be able to afford to submit to these interview processes.

Anonymous said...

"During the interview with the manager I got every single question correct. However I didn't get the job. On the way back to the airport I checked my email and found that 12 new customers had purchased my software in the space of time the manager took to reject me. This rams home how what a fraud the interview process is."

Hedge funds are the same way. How can you be "overqualified" to make money for a hedge fund? Especially when everybody is losing money? Simple. It's because they're either

1. Running a Ponzoff Scheme and don't want me to tell their clients before it's too late. So they only want drones who they can brainwash or are too stupid to see what's going on.

2. Scared that I can actually make money and that I'll quit and get their clients to invest in my fund.

Eric said...

I've just finished interviewing over a dozen candidates for a senior software engineering position open within the firm in which I work. We have a short logic and programming test that we have each candidate take. It's language-agnostic so you can solve it using any language that you like, or in pseudo-code for that matter. Any programmer worth hiring will know the tenets of software engineering, and can learn a particular language in short order. Frameworks are a different story, but still learnable.

The thing is FSK, I agree with you on the point that the interview should determine if you are productive or parasitic. I ask all the candidates I interviewed to share with me the projects they develop on the side, in their free time. The ones who move to the next stage of the interview are the ones whose eyes light up when I ask them that question. They wax on about how they have this great little tool or app they're working on, and how clever it is. This shows me they don't need any help in being motivated and productive, they already know how. They don't have time to be parasitic because they're too busy creating value.

So my question to you is, what are your side projects FSK? What would you answer to my question if you were being interviewed at my firm? Talking about writing your own forum or blogging software doesn't count. Because with all due respect, if you don't have a side project, I wouldn't hire you either.

With all this free time, you should have three side projects underway. Get goin!

Anonymous said...

In reply to what Eric said quoted below.

>I ask all the candidates I
>interviewed to share with me the
>projects they develop on the side,
>in their free time. The ones

Eric is correct in that dedicated programmers truly interested in learning new skills and in doing good work will have at some point done hobbyist or side projects.

However a lot of employment contracts today state that the employer owns all intellectual property whether done at home or at work.

You can witness this by reading the news and seeing those court cases that come up whereby a software developer has started a side-project, it has become successfull, he/she leaves employment and is then sued by his/her former company on the grounds they own all intellectual property and/or non-competition agreements.

I've always done side-projects myself as a means to learn new languages and technologies, but only some of the time. If I'm working a 60 plus hour week at work, then I won't have time for hobbyist work.

What Eric says is correct, but if you have a 60 + week job or a bad employment contract, you can't do side projects.

Obviously Eric currently has a benign employer!

Anonymous said...

>We have a short logic and
>programming test that we have each
>candidate take. I

There is nothing wrong with that. My problem is when testing is spread over 3 days and in fact will take up 1.5 days in total. Witness the testing at Microsoft.

1) 3 short programming questions to be completed before any face-to-face interview. Given you will check your answers first, that can take up to 3 hours.

2) One HR phone interview. Maybe about 10 short technical (not programming) questions.

3) One whiteboard programming question. Again in total 1 hour taken up with small questions.

4) Up to 6 or 7 face-to-face interviews with 2 programming questions per interview. In total 12 - 14 questions.

GRAND TOTAL = 18 programming questions

What a waste! You could write a small project with that effort and put it on the Internet. A huge, huge waste of resources.

If the interview is out-of-town you may have to wake up at 5am to get there on time. Waking up at 5am to face 12 - 14 programming assignments to be written on a whiteboard is a bit much.

Plus as said before even a "short" test can become tiresome if you have to interview at 15 - 20 different companies. Witness the fact that at some points in time 50 - 130 people apply for each programming job.

Anonymous said...

And here's a thought. Just screw the dumb questions and form your own software company! That's what I did.

But my success in getting a vast number of famous companies around the world to buy my software and my failure to get a corporate job despite scoring highly in programming questions, gives the lie to excessive testing.

I've even been rejected after getting 100% in one programming test and having the bank in question already use software purchased from my micro-ISV!!!!!

It is just a huge waste of time.

Anonymous said...

Eric, can you state when you did your side projects and at the time what employer you were working for?

I'm sure your employer at the time would be interested to know you weren't interested in work.

Please also copy here a copy of the relevant employment contract you had at the time and highlight the non-competition and intellectual property clauses.

We will then write to that employer telling him/her what you were doing.

Welcome to having the next 2 years of your life wasted and 2 million dollars in court!

And yes this thing does happen!

Witness the guy that wrote a mafia Internet game and was sued by a company he didn't even work for - they took over the company he used to work for. Worse it wasn't really even a software company!

Facebook anyone. The founder of that was sued in two different courts with no evidence just because he started his own website at about the same time as volunteering for another one.

Anonymous said...

The problem with side-projects, is that:

a) If you are a good software developer and want all your projects to succeed, then your side-project will probably gain traction and make money at some point. Your then employer or former employer will sue you. Legality or morality does not come into it. If they harass you enough they will get an out-of-court settlement. That fact your employer may be nice to your face belies the fact that the whole thing is about money.

The fact is that at some point when side-projects grow from small to medium, they have to be sold otherwise there is no money for more development software, resources etc.

b) If you are a poor software developer your side-project will fail and nobody will be interested in it and as such nobody will sue you.

Seriously, having to spend a few hundred thousand dollars plus is a pain. Do you want to lose your house over a side-project?

Eric said...

To respond to the previous commenters, I actually do have side projects still going after working for my current firm. These were projects that I had started before being employed there. I haven't started any new projects since starting there because between my two main projects and my day job, I don't want to dedicate any more time to tech projects when I have other interests I like to pursue in my free time.

It's really quite simple to do. Upon the interview and employment process, you state that you have prior work either already finished or currently underway, and that you would like these listed as such on your employment agreement, and that these projects (or any you start in the future on the side) are to remain in your sole and full ownership. My firm had no problem agreeing to this, because I believe they understand that if you want the best talent, you won't get it by stealing that talent's side-projects.

Admittedly, most firms aren't like this, in that they want to own everything you work on both during your day and during off-hours. I believe this to be nothing more than outright theft, and you as a candidate should steer far clear from firms that can't agree to something as simple as this. Remember, you're interviewing them as much as they're interviewing you.

And this really doesn't matter in FSK's case. He could make any number of simple web tools, license them as GPL and use that as his example side work. I could even see him doing a simple one-page compound-interest paradox site calculator that proves his theory about the paradox. Know what I mean? It seems he has enough financial domain knowledge from his prior employment, that he could have an Agorist calculator site or something simple that contains any number of statistical, analytical, or otherwise interesting data feeds.

It all comes down to those who talk about doing things vs. those who actually do things. Claiming excuses like "I work 60 hour weeks" or "But they might steal my side-project" are still just that--excuses.

Anonymous said...

>excuses like "I work 60 hour weeks"
>or "But they might steal my
>side-project" are still just that--

I've done something like 8 side-projects myself over a very long period of time. That does not include the vast number of computer programs I bashed out when a teenager while cutting my teeth.

However some jobs I have had, did require me to work 60 plus hour weeks. At that time it was impossible for me to have a side-project. It is not an excuse.

Plus as Eric says companies that will allow you side-projects are the exception rather than the rule.

I think Eric is being a little unfair. If FSK has worked for 10 years writing software full-time then he has nothing to prove by doing a side-project.

I have worked 60 hour weeks and done more side-projects than I can name and I feel that requiring software developers to be constantly bashing out code and not trying other things (such as the FSK Guide to Reality blog) is unfair.

Eric wants people to be 1-dimensional and not be have an appreciation of how the world operates.

The reality of the situation is that a lot of companies will simply pass on you and move on to the next candidate if you start fussing around about have a custom employment contract.

Plus why should you tell your employer what you do in your private time? Your private time is YOUR PRIVATE TIME AND PRECISELY THAT.

Do you tell your employer about your Morris dancing or membership of the local swingers club? No.

What you do in your own home is your own business. And that includes your side-projects.

Anonymous said...

>you state that you have prior work
>either already finished or
>currently underway, and that you
>would like these listed as such on
>your employment agreement, and that

The trouble with that is, suppose you have a original idea and have found a real hole in the market. You then have to disclose this and lose your competitive time advantage. There is nothing to stop the employer getting you to list your side-projects and then refusing to employ you or counter-sign the agreement.

The employer could simply say one of your side-projects is similar to their work and so due to the conflict you cannot be employed.

Thanks for the list of ideas. Now on your bike.

Admittedly this is an unlikely scenario. The most likely scenario is that the employer wants someone that will dedicate their whole time to the job and will not want them messing around on a side-project at home when they should be doing work.

There are hierarchies in what companies will let people do. If you are a manager you are given more scope to do you own thing, because hey a lot of managers do little productive work!

Anonymous said...

If you interview at a large tech company where there is intense competition for each job and rules about side-projects, there is no way they are going to allow you to have a custom employment contract allowing you rights over your own intellectual property. The will just find a reason to pass you over.

A friend of mine once said "it is impossible to go from a bad job to a good job".

People like Eric make this problem a continuing one. This is because they assume all jobs are like their one.

Software developers are worked off their feet in some jobs and sometimes have to take a job with a sleazy employer that will end up with a sleazy lawyer with creates a cheeky employment contract.

Eric said...

This is a fascinatingly degenerative discussion, primarily because it started from what I sensed as an honest question of "Do Employers Respect Software Engineers?" to some sort of defeatist "Eric wants people to be 1-dimensional"' and "People like Eric make this problem a continuing one".

Let's pick these two apart, shall we?

1) "Eric wants people to be 1-dimensional":

First, if I wanted people to be one-dimensional, I would bypass any candidate who thinks for themselves, is motivated by things other than I am, and can't take some business problem and translate it into technology that solves that problem. I hope it's clear from my earlier comments that these are the very things I am interested in finding in candidates. I LOVE meeting potential candidates that are multi-faceted, into technologies or hobbies I know little about, or have life experiences that I have not had. Not sure what this one-dimensional comment was referring to, but I disagree with the suggestion.

2) "People like Eric make this problem a continuing one":

Huh? Aren't candidates that continue to whine about how terrible their job prospects are and then continue to take job after job that stifles their personal growth, steals their side-projects, and generally abuses them the real ones at fault here? Look, if you can't figure out how to say "no" to a job offer because you're too desperate for a job or think you don't have enough skill or capital to do a project on your own, then perhaps you're the perfect person for this job. Clearly, these firms are looking for pushover types--those who can't think and act for themselves, and aren't willing to negotiate for things like code-ownership. Like any other market, if you don't like how firms are behaving, don't do business with them. This includes giving them your time and skill in return for a paycheck.

I think some things regading the side-projects are getting twisted around, so I'll try to clarify my position here:

- If you're interested in taking a personal project and making it big, then don't go get a day job as a software engineer. Get a part-time job in an unrelated field, or take out a loan, or pitch to investors, whatever. If you're going to make a startup project successful, it's going to need all of your time and attention. If you take this road, you'll be familiar with the Ramen-Profitable concept and all that. You'll know the sacrifices you need to make if you really want to get your start-up profitable.

- If you're interested in doing a side-project to have code and work available for a resume/portfolio, then make a small side project or two, release it under GPL, and use them as examples in your job interview process. Nobody's going to steal your web app or calculator or whatever, that's silly. If you're super paranoid, then contribute code and bugfixes to larger open-source projects like the Linux kernel, Python, or Google Android. Show some initiative and creativity. Trust me, the employers that you'll want to work at will notice this initiative. The ones that are more concerned about your side-projects than your skillset are the ones you would do well to avoid.

IT is one of the most unregulated and Agorist-friendly industries today (no licensing required, no state-endorsed oligopoly, etc.). If you can't negotiate with prospective employers about ownership of code (regardless of the ethics of intellectual property) in today's work environment, I wonder how you'd expect to be able to operate in any sort of Agorist economy?

I get a sense that Praxeology is at work here. It's easier to complain about the bully employers out there than it is to do the hard work of either finding the really good employers, or starting a project of your own with the goal of making it your eventual employment. The easy road wins almost every time for most people, and it's usually--though not always--the parasitic type that takes the easy road at another's expense.

I'll say it one last time: Show, don't tell. Talk is cheap.

Anonymous said...

Eric, I replied to your posts.

I run my own micro-ISV and have multiple sales almost every day.

I also have done side-projects such as mini web applications since the year dot.

I disagree with the fact a software developer is guaranteed a good job with a good employer.

You can't always negotiate contracts. Eric, you seem like you have had a good run and assume that anybody that hasn't had a good run like you is somehow weak and incompetent.

Recessions happen in software every 5 years or so. In these tech recessions a number of competent workers are pushed out of their jobs and then they have to scramble to get what work they can. Some will get jobs at lousy employers. Then after a job at a lousy employer, people like you will ban them for every getting a good job again.

I formed my micro-ISV for two reasons:

a) I couldn't seem to easily get a good job any time soon

b) I was put off by the fact I had to do hours and hours of tests for every job I interviewed at and getting very high marks was irrelevant

So I formed my micro-ISV and have done well. I wouldn't be surprised if my micro-ISV sells more copies of software per day than even a large company you may have worked at (unless of course it is Microsoft!).

When I said you want people to be 1-dimensional, it was a reference to your criticizing FSK for writing this blog. In your world you seem to say programmers should only program and if they try something else then they are not real programmers because they should be going a side-project!

I don't want this to degenerate into a punch-and-judy show, but I have done lots of side-projects and now run my own micro-ISV and in the past have:

a) Worked for many employers that required me for work 60 hour weeks. I really had no real other choice in the job market. You can't easily do other things when working a 60+ hour week.

b) Worked for slimeballs that assume they own everything you produce. And as I said legality and morality has nothing to do with this. A sleazy client going to a sleazy lawyer will just use loopholes in the system to try to extort money for a software developer.

Anonymous said...

Eric, I run my own successful micro-ISV and at some point had to write an application from scratch, take risk and do all the marketing myself. Over a period of years I had to listen to customers and distill from a lot of the emails, the best things to do to improve my software. With continual improvement and helping customers I now have a successful micro-ISV>

It is me that is saying you are being a little unrealistic.

Side-projects are a good indication, but a software developer can't always do them.

Side-projects are most easily done with you have a crappy day job that doesn't fulfill you or take up too much of your time.

I would guess a lot of side-projects are done by people with easy jobs. You can't always have an easy day job.

And you really can't always avoid bad employers.

Jobs aren't like cars. You can tell if you will get a bad job beforehand. You have to work in a job for a few months before you know whether the employer or job is bad or not.

Yes, sometimes you can get hints, but we don't always have the luxury of acting of them.

Eric, just wait until you lose your job (maybe you have high-up friends and so won't lose it) and have to find a new one in a recession. You will have to face a barrage of recruiters and HR people that say your last job doesn't precisely match their job and so you can't be employed.

A lot of jobs are buzzword matched in this industry by fools. Your ability and skills are irrelevant. Do you have the right buzzwords is all that a lot of recruiters only care about.

Anonymous said...

I've done various side-projects and have highlighted them on my resume.

However in a vast number of interviews both at banks and famous high-tech companies, not one interviewer asked about my side-projects.

I did well in their technical tests, which to some extent I considered a waste of my time given my publicly available software.

However I still got blanket rejections.

Perhaps to some small extent, the interviewers didn't want to ask about my side-projects because the whole point of the exercise was to reject me and instead employ their friends or young people straight out of university.

Eric said...

To the anonymous commenter with the micro-ISV:

I never said a software developer is guaranteed a good job with a good employer. I said that instead of complaining how you have no time to show your skillset to a potential employer, you should use that time to actually increase your marketability either through side-projects or other indicators that show why you're better than the other candidates. It all comes down to marketability and branding yourself. If you think that you don't need to market yourself or define differentiators for yourself, then it's no wonder you get passed over for the really interesting jobs. Interesting employers hire like-minded folks. If the hiring manager--who may be interviewing 30 candidates for this position--can't tell why you're different than the others, than you didn't do a good-enough job at doing that. And, being set apart from the typical candidate *still* doesn't guarantee anything, but it increases your chances radically.

I'm not interested in the Shadenfreude remarks of "just wait until you lose your job Eric". I found my current job b/c I had been laid off of a previous job, so I've been there before. I'm thankful for my current job, and when (not if) I cease employment there, I will have been very glad I had that run with them. However, I can guarantee you I won't be groveling about how difficult the job market is and how there are no good employers out there. There *are* good employers out there, but you have to find them. AND, once you find them, you have to make yourself stand out from the rest of the candidates. How you do that is up to you, but some effort has to be made somewhere.

Anonymous said...

Eric, did you actually read what I said?

I've been programming since my teens and have done so many of my own projects I have lost count.

Certainly I have about 8 projects publicly available on the Internet.

My current micro-ISV has sold to so many famous companies I have lost count. In fact a lot of famous tech companies (both in hardware and software) use my software.

I'm glad you have found good employers, but as FSK and I have found there are a lot out there that simultaneously have lengthy testing proceeds and yet don't seem to care much about technical ability as judged both by tests and side-projects.

We shouldn't be arguing. I do side-projects and at some level like you would use them as an indicator of how good a software developer is.

But if you do enough side-projects you will by chance come across a sleazy employer who pairs up with a sleazy lawyer to extort money out of you.

You may think doing side-projects is OK, but once a lawyer gets paid to harass you it will be something different.

Did you know in some countries you don't even have to sign a contract to get in trouble.

In the marvellous UK, one court ruled that an unsigned contract can be enforceable just if the parties acted as if it was signed. Nasty stuff. So whether one of your past employers owns your side-projects depends on opinion and how nice the judge is on ruling on points of law.

Can't afford a lawyer. Tough. You will get skewered in court.

Plus there are implied terms in any business agreement even if not written down. So I think Eric's employment contract has an implied term that he shouldn't do side-projects.

Plus I think he stole trade secrets from his employer if not any copyrightable code.

And do you want to know the marvellous thing about trade secrets? Anything can be defined as one. So it is a matter of opinion. I could start to say industry standard techniques and principles are trade secrets. In fact I will name 100 standard things as trade secrets and make Eric as part of the court proceedings have to show that each trade secret he used is actually published in a book. Can't find the 100 things I name in a book? Tough. You owe me court courts and damages! That will come to a few hundred thousands dollars. Maybe a couple of million.

Is you think the legal system has anything to do with being moral, think again.

In a civil court, Eric needs to practically prove he didn't steal any intellectual property rather than the employer prove much.

Want to guess how much time and money of yours will be wasted by a bunch of accusations with no evidence?

So Eric as part of the discovery process, can you send me your:

1) Bank statements
2) Copies of all your source code
3) Your computers so I can have them forensically tested for any stolen code and secrets
4) Can you prove when exactly you wrote your side-projects?

Can't prove you didn't steal anything for your side projects?

Tough. I feel the balance of probabilities is that you stole from one of your employers.

I am not joking about this. Just Google search and you will find cases of innocent software developers writing a bit of code at home in the evening that have been dragged through the court process.

Intellectual property cases are random at best.

Anonymous said...

Eric, by the way I have applied to 2 banks and 1 software company that have actually purchased software from my micro-ISV.

At the bank I got 100% correct in their hour long written test.

But no job offer. They said I wouldn't fit in with their teams.

Anonymous said...

Just to clarify, my intentions are not to argue with Eric. Nor to "poo poo" what he says about side-projects. I do side-projects and he is right to say they mark out good programmers that want to improve their skills.

But a gang of immoral lawyers together with a pile of case law have decided they want to make money out of intellectual property law as applied to software.

So they need software developers doing a bit of work from home to pay for their mortgages, big cars and vacations.

The fact that software developers get good by doing side-projects is beside the point.

Lawyers want to destroy society in order to get a bit richer.

Eric, do you own your house? Because it could end up paying for your employer's lawyers' costs for the next two years!

Given each software job lasts 1 - 3 years, the odds of working for a sleazy employer in a 20 year span look worringly high.

Anonymous said...

Eric Side-Project Scenario 1

1) Eric gets his employer to acknowledge side-projects are owned by Eric in writing

2) Eric creates a side-project. It is reasonably successful.

3) His employer fires Eric and sues him in a civil court

4) As it is civil, rather than criminal, the burden of proof is less. In fact all Eric's employer has to do is to convince a computer illiterate judge that something was likely.

5) The employer's lawyer quotes case law that even if an employee does work at home on his own equipment in the evenings and the employee is paid hourly, then the employer owns the work.

6) Eric shows his contract in court saying he owns the side project

7) The lawyer again quotes case law that written agreements can be overwritten by verbal agreements and by the practice at the time

8) The employer gets three of his cronies to say that there was a rush on at work and he told Eric to stop his side-projects

9) Eric either loses the case. Eric keeps saying he owns the work but can't produce evidence or case law. The judge ignores Eric and tells him to shut up.

10) Even though the damages awarded as small the costs come to 500, 000 USD. If Eric kept quiet the case would have been shorter and the costs less.

Anonymous said...

Eric Side-Project Scenario 2

1) Eric does a side-project

2) His former employer sues him

3) The employer's lawyer throws a vast amount of dirt at Eric hoping something will stick

4) In fact 1 count out of 30 sticks to Eric. Again there was no real evidence, just a thought that it might have been likely that something happened.

5) But because the proceeding took so long Eric is hundreds of thousands of dollars out of pocket.

6) The judge thinks both sides are balanced and so does not award costs against the employer

7) Maybe the employer appeals and Eric does not have enough money to keep on going. Eric has to work to feed himself and there isn't enough time to work and defend himself.

Anonymous said...

Eric Side-Project Scenario 3

1) Eric does a side-project while working for Employer A. Everything is set out in writing and Eric is protected.

2) Eric leaves Employer A and starts work for Employer B. Employer B says no side-projects as he must dedicate himself entirely to work. Eric agrees.

3) Three years down the line, Eric makes a 1-line change in an old side-project.

4) Eric is fired and sued. Employer B asks for hard evidence when exactly the side-project was worked upon.

5) Eric produces some evidence but the court rules that it is not enough.

6) Eric loses out big time.

I am not posting these to have a go at Eric. Rather at how the legal system has become corrupt. Lawyers have laid down the law and the law is that software developers aren't allowed to write software at home.

Yes, if you write a computer game and you are working for a business company it is unlikely you will be sued. But how often does this come up? More likely there might just be a tiny, small overlap or something small in common. This is the more likely scenario.

You may want to contact your law makers about this.

Anonymous said...

Eric Scenario Number 4

1) Eric gets a bit of paper to protect his side-projects

2) After a few years at work, his employer waves a new bit of paper under his nose

3) Eric refuses to sign the contract.

4) Eric looks for a new job.

5) Eric takes 4 months to find a new job before he leaves

6) A court rules that it is implied that Eric accepted the new agreement by staying in his job

7) Eric ends up homeless and unable to get a new job because he can't get his former employer to give him a good reference

8) After working hard to years Eric can't understand where he went wrong

9) None of the lawyers involved in the case understood a thing about Eric's clever side-projects. But they understood perverting the law, lying and bullying win lots of money.

Master Doh-San said...

Court: a place where justice is dispensed with.

eNigMa said...

+1 Eric

Anonymous said...

The lack of respect shown during the recruitment process could be due to some or all of the following:

1) Due to promises of a well-paid, high-tech career lots of people want a job as a software developer. This leads to a vast over-supply of labour. As such employers can be disrespectful.

2) Weak or uninterested/uncreative software developers become managers. They don't know what to look for in a good developer.

3) Most software development jobs use recruitment agencies to fill them. Recruitment agents are typically poorly educated and can't tell good workers from poor workers.

4) Due to office politics and the invisible nature of the work associated with writing software, it is difficult to tell good from bad workers. Only you know how hard you have worked to produce that software!

5) The over-supply of labour prompts employers to be picky and wait 3 - 6 months before they find someone whose last job exactly matches the current job to hand i.e. employers don't want to put anything back as regards training into the system. They want pre-skilled labour but don't want to invest in training or long-term jobs.

6) It is hard to be a professional when all the jobs are short-term. Employers want people with golden career histories, but none of them want to provide golden, long-lasting jobs. This means a certain proportion of software developers end up in a decreasing spiral i.e. they start in a good company and end up in a bad company. Once you end up with a series of short-term jobs it is impossible to get a permanent job again.

This Blog Has Moved!

My blog has moved. Check out my new blog at