The Rarest Commodity: The Programmer
August 19, 2007 Posted by Tyler CruzNearly a year ago I wrote a great post titled The Rarest Commodity: The Web Designer where I shared my views on how I feel that quality web designers are a dying and rare breed, and how the lack of talent available hurts my work. I’d like to now voice my opinion on another dying breed: the programmer.
There is certainly no shortage of programmers. In fact, most publishers these days have a working knowledge of PHP, at least enough to let them do basic modifications and such. So, I wouldn’t argue that there has actually been an increase in programmers. This would, I’d guess, be largely due to easier programming languages coming out as well as more documentation. PHP is a hell of a lot easier than Perl, for example.
But I’m not just talking about people who have a “working knowledge” of PHP. I’m talking about talented, quality, reliable programmers that are worth hiring. These guys are definitely rare these days. Don’t you think? For the past 5-6 years or so I’ve basically only used one programmer. He’s an extremely talented and knowledgable programmer, which is why I continually give him new projects all the time. He’s the guy who did PublisherSpot.com. However, he has one unfortunate trait: he’s always late. Very late. We’re talking 3-6 months late here.
And while he’s never being even close to on time, I keep hiring him again and again because he knows what he’s doing, and I can always expect concrete programming, and programming that is well commented, structured, with insane security, and awesome W3C, multiple browser compatibility, and SEO elements in mind. I also have a lot of trust invested into him.
I’m looking for another programmer (or programmers) for two reasons. For one, while my guy knows his way around PHP, his specialty is definitely Perl. The second reason is obvious – I want/need somebody who can deliver on time.
I’ve been searching for a good PHP programmer for several years, and haven’t found anyone who can come close. These are the traits I’m looking for:
Competency
This is the first and most important trait I look for, and yet the trait that most programmers lack. Look, if I’m hiring somebody, I want somebody that knows what they’re doing. Oh sure, programmers will rant and rave about their skills, only to show me less-than-thrilling portfolios or sloppy coding.
I basically want an expert. Somebody who knows PHP in and out, is well-versed in data structure and can basically do absolutely anything, and do it very well. Sure, my standards are high, but it goes hand-in-hand with my perfectionist personna. I want a programmer who isn’t afraid of complex and intricate programming, or very…. involved and massive projects.
Reliability
People usually seem to have either reliability and competency, but rarely both.
Reliability to me is somebody who can consistently deliver on their promise, and on time. Even if something comes up or they simply need more time for the project, as long as they notify me of this and complete it soon thereafter, I don’t take off too many points for reliablity.
I also expect decent access to the programmer, receiving fast replies (within a day at the most) if e-mailed or contacted, and basically having them available in case I need a modification done. Somebody who isn’t afraid to talk to me over the phone would be nice too. I’m also a major sucker for progress reports/updates. In fact, those score major points in my book.
But basically being reliable means delivering on what is promised, and on time.
Quality
The last of the traits I look for is quality programming. Some examples of quality are: clean code, security-concious code, SEO, cross browser/resolution/etc. compatibility, well-commented code. It also means well structured code so future modifications are painless and easy, editing is easy, etc.
Other examples of quality are the little things. A programmer who is working on a project, and part of the project is to make a sign-up form, to integrate a CAPTCHA or other spambot protection or have built-in e-mail verification for instance.
And, if the form had required fields marked, I’d expect the form to return with all the pre-filled content still in place, with an error in red displayed, instructing the user what they had missed or improperly filled out, possibly even highlighting the specified form area(s) with red as well. This is my idea of quality. Somebody who simply makes a basic sign-up form is not.
So… those are the three things I look for and want. Am I asking for a lot? Sure… I understand I am. But that still wouldn’t explain why I can’t find anyone… I don’t mean that I can’t find a few… I can’t find any! I’m sure these guys are out there… oh, I know they are. But they’re hiding. Part of the reason I wrote this post was so that I could finally find somebody.
Anybody who refers me to an outsourcing site like Elance.com or Guru.com, doesn’t understand what I want. I’ve used those services countless times, and have been extremely strict, only looking for the top and most expensive freelancers/companies, and… well… let’s just say that you’ll never see me looking there ever again.
Now, regarding price. I know programmers can be expensive, I understand that. I’m not expecting to only pay $10 an hour or $100 for a project, but if I’m going to spend more money, I’m going to need the 3 above traits met. Perhaps I really am not paying enough though. I’m open to the possibility. I won’t pay per-hour as I think that’s a horrible way of pricing things, and completely unfair to the buyer, and thus prefer to pay on a per-project basis. I don’t mind paying a portion up front, but if the programmer wants money up front (which I can certainly understand), then they’ll have to provide a lot of proof that they are capable of providing what I want.
For my revamp I have planned for Movie-Vault.com, for example, I’m willing to pay $2,000. Now, it is a complete and utter revamp, so I can see how $2,000 may seem low, but then again it would be wise for the programmer to keep in mind the benefits of having me as a customer as I can give consistent and ongoing work. Depending on the reliablity I could also share his name around and give him more work.
I think one reason why so many programmer have disappeared is because they either got snatched up by a good company and work in-house, or else have discovered the recent “web 2.0” resurgence of the net and are developing only for themselves now, becoming rich with the next YouTube or Facebook.
Anyhow, if you’re a programmer or you know a programmer who you think could meet my high expectations, please refer them to me! I’d really appreciate it! I have countless projects that need doing, and I consider myself a good client. I always pay immediately with no problems, can give repeated work for life, and can possibly spread their name around and give them new clients. Remember my logo designer? Back when I used him I sent him around 20-30 paying clients within a few months timespan.
I don’t think it’s too much to ask, but I do believe your scheme of pricing is a bit off. For instance, I think for the traits you listed above, you should expect to pay $50/hr (low end) to $125/hr (high end). I don’t think either of those prices are in your range from how you’ve talked previously.
Re: hourly rates — I think you’ll find that it’s severely unfair to the programmer to work on fixed-bid projects. Let’s take your contact form. When we’re scoping out the project, you might say “I want a contact form” — sure thing, I’ve got it done in an hour. Then you come back and say “I want a subject field, and it needs to be required” — alright, another 1/2 hour. Then you say “I also want to add a captcha” alright… another 20min.. then you say ” can we make it Ajax?” It’s feature creep like this that destroys fixed bid projects. What you scoped out as an hours worth of work ends up taking you 5 hours to complete. This is why hourly rates are so common and important.
Yes, I understand that, and I also understand that a lot of clients can be major pain in the asses, expecting more and more for no more money.
I always write a detailed project description that I agree to pay for… I mean, I understand your point, but my point is still perfectly valid, and I think that when paying by the hour, it’s a lot more risky to the client than when it’s on a per-project basis and the risk is on the programmer.. especially if done in ‘milestones’.
Regarding price, there’s no way in hell I’m paying $50 an hour for ‘low’ end programming. If I want low end programming I’ll pay $10 an hour and just outsource it to India, China, or Russia, and they’ll give me plenty of low end programming.
Ah, by “low end” I meant low end of the market for the type of programmer you’re talking about. Not low-end programming 😉
Well… I’d be interested in trying out as one of your regular programmers. I’m extremely close to finishing up a Bachelor’s degree in Computer Science, and I already have all of my programming classes behind me, and only one networking class to finish, as well as a couple of gen-eds. It isn’t the best credentials, I admit, but a person has to start somewhere, right?
I’m curious… Do you have any smaller projects available, so that we can get a feel for what it is like to work with each other? As you hinted, there is a sense of apprehension with programmers when it comes to freelancing, and I’ve been burned in the past as well. I’m not willing to jump into a commitment to do a large project without getting to know who I’m working for first, as I’m sure you would be unwilling to give a partial payment for a large project without making certain that the quality of the programmer is up to your standards or not.
Also, with concentrating on school first, it has been difficult to develop a good portfolio, especially in PHP… This would make a good start for my portfolio and would help me convince my wife to let me program in peace. 😉
Anyways, you have my GMail address, so drop me a line there or in these comments and we’ll see what we can set up.
hey tyler,
seriously. There are good programmers out there, but they a lot
more options to make a lot more money. how much are you
going to pay them per hour? what technologies are you using?
these are all critical factors.
My suggestion, try a lot of different programmers out at the
same time. Find the ones who are good. Start paying them
extra to keep them on your projects.
good luck
With all due respect I think that is very poor advice. For one, that is an _extgremely_ expensive solution. Secondly, that doesn’t do anything to guarantee finding a good programmer..
You have spent 6 months (or more) searching for a programmer. That is an _extremely_ expensive mistake.
Trying out one programmer and then learning a year later
that they didn’t work out is costing you more than spending
1 month on 6 different programmers and finding the gem.
You have lost opportunities and prevented yourself from making money during that time.
It looks like your current strategy is to get a few more
hungry guys to try out with you for free (via this blog).
That may work, but your tapping the same elance
level of programmer (which may be all that you need)
Good luck.
Hi Tyler, I have just sent you an Email through your contact form, I’d be very interested in working with you.
Thanks
Im looking into going to college to become a programmer, so hopefully that makes the future of programmers a little bit brigher!
Finding good quality programmers who will not try and screw you is one of the most difficult things a publisher will ever do and I found the only way to solve the problem was to open my own centre (in India) and pay the guys top dollar.
The benefit of this is that I can sleep easy at night knowing that I have a reliable team and when you add up the costs -v- return it pays for itself 100 times over.
I know a lot of smaller publishers do not have access to these resources yet but I think someone we all know (not me) may soon be about to solve everyone’s problems by launching a new service very soon …. watch this space
Hi Tyler. I’m a programmer but I’m not going to write a “pick me” comment here. I’ve been writing software for over 20 years and have been doing PHP for about 2 years now. I’m currently relaunching my main web site for doing contract programming (web and database).
I’m curious if a good portfolio is necessary to get customers, because this isn’t something that I have. I’ve built web sites with PHP and C# coding, but none of them are worth showcasing my abilities because the sites themselves just aren’t that impressive, i.e. the tasks were too basic to be worth bragging about. 🙂
I’m currently creating an open source application using the Zend Framework. Would something like this be worth showing my abilities, or do i need 3 or 4 complex web sites instead?
I’ve taken over many PHP projects and sites from other people and I have to admit that most of the programming I’ve seen is garbage. This is because PHP is easy to learn and anyone can learn it, even people with little programming talent. I think the sign of an amateur programmer is one who doesn’t use a framework in their code. Learning Zend, symfony, or CakePHP separates the programmers with real talent and determination from those who just learned PHP last weekend. 🙂
Knowing how to use a framework do not seperate the coder from the hobby one.
Knowing Zend or CakePHP do you know how it works in the core? or do you just learn how to implement and use it?
Most people will respond the latter which in my opinion do not decribe a php programmer, sorry.
As a php programmer you should know how things work from the ground up to advanced solutions.
Write clean managable code, oftern this is done in OOP fashion, as you are doing code for someone else you need to know about the security issues and threats and create code that will deal with in the system where it can arise a security threat.
Also experience is key, I would never hire someone to make a ecommerce system who has not worked with that before, or haven’t worked with secured systems using encrypted connections etc.
And the code you have seen is not garbage because it’s easy to learn, instead because of that that coder haven’t worked on a project before with other people, where clean optimied and structured code is the success. In other words he had way too little experience to be coding in the first place.
That’s why you should go with known programmers that have worked on known projects, with refferenses that can be trusted.
Unfortunetely this costs a lot, and if you’re not up to $ you’ll pay it sooner or later in badly working code, when the user of the system increases unoptimized code will produce in a slower system which will make people leave.
Or you’ll get hacked because the coder didn’t know or care about implementing extra security features in the code…
So remember you might think $6000 can be a lot, but it’s way better than having paid $2000 and then in some time having to pay $2000 again as the code was ineffectice or unsecure.
This evil loop can drag on forever and you’ll find yourself paying $10000 in the end.
Have you ever created a large application with PHP? Even small ones lead to unmanageable code. You don’t just write code and walk away from it. You have to debug it or add features several months down the road and debugging PHP mixed with HTML can be very difficult. This is why you need a framework to separate the code from the views.
Anyone can learn PHP, but learning a framework and the thought processes behind it require some effort. So, yes, this does separate the men from the boys. Anyone serious about writing software that is maintainable will use a framework.
Most people don’t have any understanding of software engineering principles and would just hire a software coder, not a software architect. Don’t you realize that much of the work in software development occurs after it is released? Code needs to fixed, updated, and features added. PHP is a weakly typed language which further adds to the problem of writing stable software which makes it all the more reason to build applications using a framework.
In the long run, a framework will save money even though it may cost more to setup initially.
This may all be true, but not for projects of this size and scope. We’re not talking about MS Outlook here, for crying out loud. We’re talking about a CMS, albeit a potentially robust one.
I retract all of this, however, if by “framework” you simply mean a bit of OOP and a rough outline of how you want things to work before you start. If we’re getting into flow charts, however, I daresay it’s actually a hinderance on many a mid-sized project.
A good framework will be using OOP. I haven’t really used very many of them other than the Zend Framework. At work, I created what started as a small database application in PHP/MySQL, but more features kept getting added to it and now the code is becoming difficult to manage. I’m converting everything over to Zend to make future work on the app simpler.
The latest version of the Joomla CMS made major changes in their code. They are calling it a framework now instead of a CMS, and the software was built using the MVC architecture.
If your writing code that will only display items from a database table, the MySQL or PDO functions in PHP would be sufficient. For an application where your adding, editing, and deleting records, a framework will be a better choice.
Take a look at the Zend Framework and go through one of the tutorials. Its hard to explain the value of something like this without actually using it. Good alternatives are symfony and CakePHP.
I think I just found a good one through Rent a Coder… the project is looking good so far.
Any good programmer already makes $50/hr. I think the reason you are getting poor quality is because you haven’t been making realistic offers for projects.
$2000 to revamp movie-vault is probably not enough money to attract the type of talent you want. In this price range you would be better off getting an offshore guy to do it cheap and just live with the results.
Agreed. Also I remember the Movie Vault site being done in perl or something like that?
[…] Tyler Cruz is looking for a good programmer. Help him please ! Juda 2.0 in space next to Darth Vader. Nice pic. For the beer fans here are is the top 3 worlds most expensive beers . Secure USB device called flash padlock, linky here […]
Just some points from a programmer.
There are tons of people out on the net that call themselves php programmers, and yes by definition they are, but I do not think that that’s what you are really looking for.
You need not only a php programmer but an experienced one, that not only deals with the straight on coding, but also knows what he does, from a security, time and functionality aspect.
You want someone that won’t make a messy, insecure and slow working code, simply said you want a good finished product that do not have these lacks right?
Now to how to find these dudes/girls (yes there are girls out there)
Interview them via telephone, on text based interviews you won’t be able to spot insecurity in their answers as if you talk to them.
Ask them if they have a php certificate, if yes you have a potentially good programmer as to pass the certificate they have to complete some problems like optimizing, security etc.
Now do not ask them about what they have done, that will just trigger their ego speech.
Instead do something like this, give them a problem (not a huge one) that they have to tell you how they would approach it.
e.g What do you think/ or see as important in your coding process?
here you will see if he brings up, planning, structured code, comments to make the code easily maintained and planning so he can find the best approach to the problem.
Ask them about how they deal with the security aspect of coding, check if he tests the code he writes for some common security mistakes, if he codes in extra code that checks the input etc even if he uses the built in php functions as well magic_quotes etc etc.
uses encryption etc etc you get it.
This is just to see if he thinks about it at all, someone who hasn’t dealt with this will most likely talk a lot of smack on this point trying to somehow get out from it, just replying using some basic answers like ehm built in functions etc and do not reflect around the answers.
Also ask him to say his own opinion about OOP/objects-.. code over the old-fashion-way of using functions.
Here he will come back to structure, good code that is easily maintained etc.
I always want this discussion to come up in the first question, when he mentions good structure.
With the payment issue you have, sure it’s a very low pay for these requirements, but I’m sure you’ll be able to grab someone that just graduated have the php license and that looks for some quick $.
Paying a programmer on hourly bases is a not clever if you don’t now how he works, instead offer him payment after finished project, let’s say around $4000-5000 give him like $500 on forehand and the rest later.
I think this method will work for you best it sure does for me, I mean most people do not have these $ from the start, a bigger project can take 1 month or 2 so you’ll easily have the rest of the cash when it’s time to pay.
Hope you got some new tips here Tyler and good luck.
I like the phrase you use when you say you have “trust invested” in a programmer. Years ago, I responded to a work request on vBulletin.org for someone who could write custom vBulletin hacks. I did some work for the guy, and when he needed more, he asked me again. That was something like 4 years ago, and we’ve worked together 10-20 times between them, sometimes on an ongoing basis.
Why? Because he knows he can trust me. I won’t run out on him, and if I can’t do something, I just come out and say it. We’ve reached the point where we have no problem settling on price even after the work for a given project is completed.
Anyway, regarding your problem…I think the truth is somewhere between the extremes. From what you describe, I do think you might be expecting a little too much for your money, but I agree with you that $50 per hour is awfully steep, unless you’re talking about some pretty advanced stuff (for example, the Replayer program). Assuming you’re talking CMS-style stuff with the occasional frill, like Publisher Spot, then I don’t think you should have to pay quite that much.
As for the Movie-Vault overhaul; the price sounds potentially reasonable, depending on what you want done, specifically. Would you mind elaborating a bit on what it would involve?
Cheap, crap programmers are the whole reason I packed it in. Back before the days when everybody considered themselves a programmer we were charged to clients at £250 an hour, some a lot more. We we’re paid equivalent to good lawyers and accountants. Then came the period when every kid out out college considered themselves to be a programmer and many were taken on for contract jobs, it devalued the whole industry and left a lot businesses with a complete hatred of IT systems. After 3 years of teaching people with degrees and a lot of attitude how to program in the real world I packed it in. Badly written systems are an accepted part of modern busines life right?
There is still an elite group of very talented independent software developers out there but in the UK you need to be paying between £2500 and £5000 a week to secure one. I’ve no idea how that cost would translate to teh US. I feel sorry for you but you’ve got to splash the cash, not all programmers are born even.
I’m someone with a formal education and over 8 years development experience throughout the SDLC who simply will not work for less then $50/hr on contract. As far as I’m concerned, anything less then that I’d rather be “paying” myself for my own projects. I got to the point about 5 years ago when I decided rather then working on projects for a table scrap of a wage for some asshole with unrealistic expectations for their project (not to mention the always present scope creeps), I’d rather code stuff that I make money off of myself. Less headaches and everything falls on my shoulders. I’m sure others like me have done the same – why line someone else’s pockets while I continue eating KD?
I have only ever worked by myself on one project for 2 guys I used to work with and will NEVER do that again. They seemed to think that I would create them an online pharmacy and they would be millionaires overnight not putting a lot of thought into promoting their new online venture and how they would increase their sales – a website is after all a magic application that just sells, right?
I think if you want a good programmer that meets your expectations, you need to consider compensating them properly. I look at a potential employer offering less then $50/hr for my services — the exact same way you look at a contractor charging less then half that — not a hope in hell that I’d apply let alone look at your project specs.
Donald Trump said that you’ll never get rich working for someone.
I have a friend who is a carpenter and he said that it’s cheaper hiring him at $40/hr than hiring someone else at $10/hr. The one charging less will take longer to do the same job and will do it will lesser quality.
Hire a pro and get the job done right. If your only willing to pay peanuts, you’ll just be hiring monkeys. 🙂
[…] I was reading this post the other day and thinking about my particular challenges with software developers. Which I believe […]
Outsoure your PHP work to india 😀
[…] always have some sort of programming work that could be done on a website. I’ve posted before how The Programmer is the Rarest Commodity, so if you need programming work I have a good source for […]
Cambridge-London: MIT Press. ,