Software engineers hard to find
articles.chicagotribune.com
articles.chicagotribune.com
I made a local-startup an offer that no sane company could afford to refuse. I was a core developer for their main behemoth of a competitor and my non-competes have just expired. They could easily save millions of dollars in marketing, research and development by JUST running decisions by me and having me nod in approval if it sounds good. (I am not exaggerating; it's one of those businesses that require 10k in daily AdWords sacrifices to grok; lead generation)
Instead, they came back to me with the same two questions: do you know Django and do you know Agile development.
You incompetent idiots.
Fast forward to today; it took me 4 hours this morning to go from cold-call to interview at a research-oriented industrial planning company of <10 people minting millions of dollars per year. Within 20 minutes, the guy and I were talking about the history of Prolog, logics and finite-domain constraint solving.
I am not a moron, and I used to help hire at various startups. We'd always get one or two offers "we couldn't refuse" from engineers of our competitors. Whenever we gave them a second of interest, they'd waste hours and even days of our time. What they were really interested in was not engineering, but escaping their current workplace hell and wedging themselves into our startup as some sort of non-programming decision maker, for a (relatively) huge salary. But, we already had non-programming decision makers. We were trying to hire an engineer. We eventually just dismissed these guys outright, because in every experience they ended up being mildly crazy. Not the good mad-scientist hacker insanity, either... More of a desperate, annoying, stalker-ish insane. So maybe you came off as crazy.
The whole time I was looking at their sites I was making mental notes of what is broken, and tallying up all the ways they're doing something wrong. I think some of that contempt must have come out in my correspondence, however brief (just 2 emails from me.)
> And will continue to be harder and harder as long as utter morons do the screening and hiring.
> They could easily save millions of dollars in marketing, research and development by JUST running decisions by me and having me nod in approval if it sounds good.
> You incompetent idiots.
I have to ask... Are you 100% sure it was because of django and agile skills?
I'm sitting here in a large (US$4bn sales) corp doing a job I didn't initially interview for. I told my interviewer that the job they wanted me for didn't sound like what I wanted to do and my interests were elsewhere. Instead of just blowing me off like those guys did, he sent me to interview with a different team that was a much better fit. That's giving a shit!
Apathy kills.
The guys didn't even bother.
The good engineers might be burned out but if they know that not spending time interviewing and reviewing resumes will result in having to deal with a dud that gets hired, having to babysit them, teach them the basics of programming and watch them slowly destroy the code base, they would be quite happy to assist with evaluations.
1) Make sure that job ad reaches people who are likely to be good candidates.
2) Job ad is attractive enough so that good candidates will actually apply.
3) Handle the administrative side of the recruitment process: paperwork, visas, appointments, expenses, tickets, re-location, contract, security checks etc.
4) Make sure the whole process complies with the legislation.
5) Streamline and expedit the whole thing from the very start to finish.
In my eyes HR is not qualified to make a judgement if a candidate is any good at programming.
Yesterday, I suggested going EA-style and hand out laptop stickers on an upcoming hacker-ish convention with things like
''.join([chr(c) for c in [119, 101, 39, 114, 101, 32, 104, 105, 114, 105, 110, 103]])
and (dolist (x (mapcar #'code-char '(119 101 39 114 101 32 104 105 114 105 110 103))) (princ x))
I am somewhat unsure about the Lisp thing, so I asked it to be passed through a real lisper before hitting the printer.perl -e "@w = (119, 101, 39, 114, 101, 32, 104, 105, 114, 105, 110, 103); foreach $c (@w) {print chr $c;}"
these days.
perl -E 'say map { chr } 119, 101, 39, 114, 101, 32, 104, 105, 114, 105, 110, 103'is the best my version can do. I still need to read more of that book of yours. And update my install: neither say nor -E exist.
(format t "~{~c~}"
(mapcar #'code-char
'(119 101 39 114 101 32 104 105 114 105 110 103)))
=> we're hiring
FORMAT is a turing complete DSL for formatting output; here you see ~{~} iteration directive. (map 'string #'code-char '(119 ...))And you even honor parts of your contracts that aren't enforcable. They passed up a great deal. :)
Seriously though, before you cost yourself job opportunities because of something you've signed, run it by a lawyer. You're going to be shocked at first.
But if you adhere to them by coincidence (i.e. never turning down something you want to do because of them) then I suppose they are as irrelevant to you as they are to me.
If a company had hired you on such a basis they could also have been prosecuted for corporate espionage.
Something is very wrong with our industry. Most of the time that articles come out like this, industry executives are trying to get more kids to go into programming in order to lower the cost of employees: they want protection from the free market.
The last company I worked for (for 5 years, and it was a Fortune 100 company) was complaining publicly that they were unable to find developers - yet people who quit over the past 2 years were never replaced, nor were we allowed to interview candidates.
And we've got it easy compared to physicists and chemists.
That is probably why big business can't fulfill their desire for a large pool of cheap but good developers. You can't just pour people into the college machinery and churn out developers. At least I hope not.
It is interesting, this has been going on for a while. Initially many companies went and got a lot of cheap and mediocre developers (mostly through outsourcing) and replaced a couple good ones with dozens of average ones for the same price. They saw it as a deal. Eventually they are realizing that programming is not like picking potatoes -- "Just hire more for the same price, they all sit and type all day anyway, so just get more for cheaper and we'll get ahead faster". Well it doesn't work like that.
Once mediocrity starts to dominate, even the few good ones who are still hanging around, will leave as their work turns to teaching others and babysitting them full time.
In general it is not possible to replace a highly skilled programmer with an X number of less skilled ones. Many hit that realization and we start seeing lots of these types of articles even as unemployment is above 10%
The thing is that you don't just put anyone into college and expect a productive member of society to come out. It takes so much more than that.
Although not an openly advertised role, "Creative Accountants" are abound.
Also, I completely believe that it's too hard to find good developers. I'm not sure if I've just been unfortunate due to industry or geography, but I know very few people I can recommend with confidence. And I have seen all kinds of mediocrity trying to pass as software developers. The places I have seen are the stuff TheDailyWTF is made of.
Regardless, I completely disagree that you can completely vet someone over a cup of coffee. Especially for highly competitive positions. That might be a good screening interview, but that is not enough to make a final hiring decision unless the person is already recommended.
In other words, there's no shortage of software engineers, there's a shortage of perfect candidates. If these companies were actually willing to train people, they'd have a lot fewer problems.
The trend seems to be that software development, like a lot of other industries, is becoming increasingly winner-take-all, with huge demand for the very best of the best, and a lot less for anyone else.
You say that companies should train mediocre programmers to be excellent programmers. This is not as straight-forward as it sounds, (a) the mediocre programmers might have already reached the limit of their capability (i.e no matter how much time they'll spend learning, the improvements will only be marginal), (b) it could take long time and as we all know, time is money.
I like to think of it as a simple exponential graph. Programming Skill on X-axis vs Time Spent Learning on Y-axis. In the beginning the progress will be fast for everybody, but at some point the progress will slow down indefinitely (i.e you've reached your maximum capacity). The point at which this will happen varies from person to person and there is unfortunately no way you can determine where that is. The only hint of the maximum capacity you can get is to compare how long the guy has been programming for and how skilled he is at given time.
As a result, it is more cost-effective to search for very good candidates for longer than to take handful on mediocre ones, take the risks, and train them.
It should be noted that a programming is without exceptions self-thought. Therefore there is no need for training per se, you will just need to take your time and do it yourself, as programming can not be taught, it can only be learned.
Keeping your employees is your job, not theirs. No relationship lasts when one partner starts neglecting the other and another interested partner comes in.
Plenty of occupations require you to put your occupation ahead of your personal life.
Things are better for hedge fund managers (many of the ones I know work pretty standard 50ish hour weeks), but most of the good ones find it hard to shut off their financial brains. The foreword to Peter Lynch's books explain that he left investing because he was basically missing his kids' childhood, and at some point, some things are more important than making your next million.
http://www.payscale.com/research/US/Job=Branch_Manager,_Bank...
A skilled engineer in Silicon Valley can easily make triple that. Hell, new CS grads can often make more than that straight out of school.
As far as bankers go, they work from 10 to 4 M-Th and from 10 to 6 on Fridays.
Do you know what happens to art or English majors that aren't desperately passionate about their trade? They are shift managers working retail.
Besides the company on the article already claims to be able to seperate duds from stars.
"What you're offering" includes more than just money as well n
You'd have to already have a personal interest in programming and be doing it on your own as a hobby.
Are there people who seriously just go to college for 4 years and learn coding like accounting and then just do a 9-5 job?
There are thousands of decent hackers out there, maybe just uptrain.
Curiously, it seems to be mostly women who are good devs and yet didn't start until college. I'm not really sure what to make of that. Could be selection bias - since boys are encouraged to play with computers, most of the ones who will be any good at it started in grade school, while since girls have no such encouragement, even ones that are good at it may never have discovered that until college. Or it could be that all boys who are good at computers let it take over their life, and girls have many competing interests. Or it could that only girls have the discipline to become good at something without it becoming their life.
I'm constantly thinking of better ways to do something and find myself rewriting code from years ago. I have at least one "regular job" experience that taught me such behavior/attitude doesn't work well in a 9-5 business environment.
It is apparently possible to care about your work and yet still leave it at work - I know a few people that have managed it. I haven't had a whole lot of success myself.
That said, I think people knock 9-5 a little too much. Plenty of good developers like to do something else with their day as well, and find that they write better code and retain their passion if they maintain this balance. If you have a good work environment and can focus (admittedly a challenge between 9 and 5), you can get a tremendous amount done in eight hours.
Yep. I went to college with people who didn't like programming.
There's certainly a lot of web work being done in Chicago too, but the trading companies offer developers the chance to focus on enterprise software systems and proprietary high-performance trading applications.
We might get paid double what they do, but not 3x or 4x. Or maybe I'm not that good ;)
It doesn't necessarily just happen from taking on extra risk, either, though starting your own company is one way to do it. Personal anecdote (I'm not a 10X developer but I know a few things about a few things): I previously built CRUD apps and made $X, and I turned down a few offers this year to build CRUD apps for [6 * $X, 10 * $X]. The big thing that changed? Improvement in marketing myself and better selection of CRUD app genre. (A/B testing isn't any harder technically than building university registration systems... it is just worth orders of magnitude more revenue.)
There is a really good post on Quora about this, incidentally: http://www.quora.com/10X-Engineers/Why-are-the-best-programm...
There's this model of the world we're taught as schoolkids - at least where I grew up - where you work hard at something, do as your told, and slowly but surely you rise up. And maybe at one level it's true, but it's very slow, and you'll never become the sort of success you read about in the paper that way.
Instead, I've found that what usually happens is that you join an organization because you meet some minimum skill baseline that they're looking for. And then as you practice and learn from the people around you, you end up picking up a bunch of other skills and getting better at your job. But the people around you generally won't notice. First impressions usually pigeonhole you into a general category, and then people are blind to gradual changes.
So to reap the rewards of everything you've learned, you have to expose yourself to new people. Jump ship, and suddenly you seem really valuable to them, because all those skills you've picked up which your current organization takes for granted are new and useful.
There's a leverage effect as well: people try to work with others of roughly the same level. If you're diligent about practicing, you'll go from being (hopefully) near the bottom of your team to the top of it. If you then repeat the process, your new teammates better be higher skilled still, and so your team as a whole can tackle more ambitious problems.
Unfortunately, it also works the other way: somebody works in a company until they recognize how useless that person is, and before he or she gets fired they jump ship to a new company where they are greeted with open arms as the new guy/gal that will fix everything. Lather, rinse, repeat. If they are smart they use the same argument you made to actually rise in the corporate hierarchy with each step. This allows them to beat the Peter principle and rise above their level of incompetence, leading us to totally incompetent people at the top of the hierarchy.
So if you see somebody who changed jobs every couple years, be careful.
=== "Hmm, PHP and Java are out, so what does someone with vested interests in Rails think I should learn? Hang on, Rails isn't mentioned as out of date by its creator so I'll retrain in that!"
I can't remember the exact articles from HN but there were two recently: one was about a sysadmin that went for an interview at Facebook or Google and was surprised that they wanted knowledge on low-level, performance critical features rather than advanced bash programming; another was an example of why it's often more cost effective to get twice the performance out of one server (by investing more development time i.e. C/C++ over PHP) rather than buying another server.
YMMV but I switched from PHP to C++ for my personal web projects and haven't noticed it taking me exponentially more time to develop.
I get screened out by HR because I don't have the words "computer science" on my resume, even though I've been programming for the past 25 years, 15 professionally.
If I get this far I get a phone screen where I'm completely fluent in anything they are talking about, but I don't have years of scrum experience, or I didn't come from an "agile" shop, or I prefer the alternatives to Rspec and cucumber, or whatever the new hotness is.
Then I get screened out by the developer interview because I'm not in my 20's and probably can't relate to their hip young "culture" and they don't know what to make of me, especially in the Ruby world - but Perl is not as bad and I'll probably just give up on Ruby and go back to Perl.
Then I get flooded with calls from head hunters, all for the same one or two jobs and its always a complete waste of time.
Its frustrating to read articles like this. Are they true or just compete fabricated bullshit as a prelude to increasing H1B quotas?
However once a developer is hired even a company with a flaky interviewing process tends to recognise the actual worth of a given programmer fairly quickly. Then an intresting thing happens - even though the developers might be explicitly treated as a commodity resource the very same managers would go far beyond the declared rules to retain the best: regularly up the package, give a lot of slack, turn a blind eye on minor "breaches of established rules".
As a result most good programmers I know after about five years in the industry end up enjoying a package far in excess of what is being declared on the job sites.
It's not uncommon for a hiring manager to moan about the lack of good candidates whilst paying the best developers on their team 50% more than they advertise when publishing the same job. What the management don't seem to realise is that just about every other company does that: actually paying more to the existing programmers than the declared range they would be prepared to pay for the new hires.
As a result after a while there is little or no incentive for good developers to put their CV's on a market. They're well above the market rates.
As a workaround sometimes companies hire good programmers as independent contractors and carry on extending the contracts forever - paying double or triple the rate they would pay their permanent staff. It's a funny game when becoming "an independent" consultant with a single customer is one of the few options for an experienced developer to help company management justify paying them the true market worth.
There is no lack of good programmers, they just cost much more than most companies are prepared to admit.
And a big problem is you can't lure them away since their current employer might give them a counter offer, and there's apparently no way to deal with that, it's the end of the world.
And the solution to all this is "a six-month retraining program for displaced workers. Participants, who must be unemployed, will come away with skills in one of eight tech-training areas" which trains people with no programming skills how to become "highly skilled" in only six months. So highly skilled that they will kick the butts of the guy with the 15 years useless C, C++, Perl and PHP experience because what we really need is Ruby on Rails.
""I feel we're at 100 percent employment" for highly qualified software engineers in Chicago, said Zach Kaplan, chief executive at Chicago-based Inventables, an online marketplace for materials and technology. The company gets flooded with applications when it posts nontechnical jobs, but it struggles to find software engineers."
Mr. Kaplan hasn't quite defined a highly qualified software engineer as one who has a job, but he's awfully close to saying that "100% of the software engineers who have jobs, have jobs."
If "highly qualified" software engineers have no trouble finding jobs, I suspect I could make an equally ambiguous argument that "highly desirable" software companies have no trouble finding software engineers. This "shortage" goes both ways.
What is the current hourly rate that a jr software engineer can expect?
I might be starting to work remotely for a company in the Boston area but have no idea what the current salary situation for freelancers in the US is like
I have personal knowledge of folks who do software development at a range of price points between $25 and $200.
For what's it worth, in Western Europe I'd say 75 euros/hour ±50% is what you can expect for usual "Enterprise" fare.
It's not like wages for the common programmer are going to keep skyrocketing until companies are buying your house to relocate your family.
On the other hand, I would be readily available as a remote worker - in the same country. So what's exactly stopping these companies ?
Out of interest, how many developers have you employed? I'm sure it's not entirely relevant, but I'd be interested to know how you found them.
Other work we do involves data that we are contractually obliged not to allow out of the building, and still other work involves teams of people working together on algorithm design and implementation. We've tried, but the existing on-line tools are simply not up to it. We've even worked at trying to create better on-line tools, and come to the conclusion that it's currently not worth it.
But you're a CS student, so no doubt you'll be working on solving the problems we have, and by the time you're in the work place you'll have the solution ready. We look forward with eager anticipation to being able to have people work remotely. Getting more and better work for the same pay would be a great business opportunity, which is why we still invest around 10% of our annual budget trying to make it happen.
In half a generation, perhaps, when all the kids have grown up with zero distinction between online and offline life and VC equipment is so good that it's just like you're there, large-scale remote working might work. But right now, there is so much high-bandwidth communication that you're missing out on.