Working with and hiring developers in a significant number of companies over the past 15 years. I can shed some light on this question.
Answer: Expect to pay $20-60 an hour for a good programmer or about $40,000 to $100,000 as a general rule covering most programming needs. This number, of course, can go up or down depending on skillset and location, but it is a good starting point that will cover 90% of cases.
What is A “Good” Programmer Anyhow?
When looking for someone to help me on a project or full-time hire, I have 1 main objective: I want to find people who can progress without constant supervision or help. Some projects require more attention from the person holding the requirements, but hiring someone to do some programming should save you time or effort, or both.
A “good” programmer is going to be able to help you accomplish your goals faster and without a ton of hand-holding. This is different from a junior developer who requires a lot of teaching and guidance. Many people make the mistake of thinking they want junior-level people to save money but often find themselves spending more time and effort restating requirements or correcting misinterpretations.
Based on this, you can imagine how the payments will directly correlate to the programmer’s skill. A good or even better than a good programmer will be worth magnitudes more than the lousy programmer, as a bad programmer can actually end up costing you money.
How Will I Know if a Programmer is Good?
This might be a tricky question to answer if you are not yourself a programmer, but I can give you some helpful insights into what to look for and think about during the search process and after you have hired them during the first few months work.
When searching for a programmer, they often will post links to past work or a blog, etc. This is a great time to get to know them and how they might communicate with you in the project or on the job.
I like to look for programmers with clear written communication and hopefully documentation or readmes on their code samples. (I plan to write more detailed instructions on this for non-technical people later). I will also often run people’s projects if possible or view their live online examples.
Even if you are not familiar with coding, you can learn a lot from peeking at their codebase or viewing their live samples. Do you see a lot of naming that looks like “test” “example”? Maybe they followed a tutorial and didn’t think through their naming very well; however, I enjoy it when someone does some witty naming. I like to see names for functions and classes that make sense even from a non-technical standpoint.
One of the biggest things I like to look for is easy and clear communication. If you are going to hire someone that is supposed to make your life easier, clear communication is about the best thing you can find.
I know many programmers try to look at the logical flow and for simple common mistakes that new programmers make. When evaluating a programmer to hire, my goal is simple, “did they write better code than I would have written trying to do the same thing?” I always want someone better at the task than I am.
Once you have hired them or if you are trying a sample project first. Now is the time to consider some important things:
- What kinds of questions do they ask?
- The best programmers ask a lot of questions to get to the core of the problem.
- How smooth is the communication
- Smooth communication is not how easy it was for you to “hear” them. I have worked with some fantastic programmers that had a very hard-to-understand accent. Smooth communication is more about how much was lost in the communication, aka how much was misinterpreted and not followed upon (now or) later.
- Deadlines and promises
- admittedly I would fail this every time, and most of the best programmers I know only get it right about 65% of the time. But you have learned what your toleration is here for missed deadlines and try to adjust expectations accordingly. If you can not manage a programmer’s wildly inaccurate deadlines or promises, you need to find someone else.
Side note on the last point about deadlines and promises: A great programmer will be far more accurate than a “good” programmer in this area. The programmers that I know are great and hit their deadlines 85%+ of the time charge between $125-250/hr. They also tend to write amazing code that makes other programmers weep when they see it.
The next most common mistake is not hiring the right type of programmer for the task at hand. I have more in-depth information on that here, but let’s take a quick look.
What Type of Programmer Should I Hire?
Sure, you might have an idea bout what a “good” programmer is and a general range, but if you want to get more specific, we need to figure out what type of programmer you need to hire. Let’s keep things simple here and look at the significant types of programmers and programming.
Below we are looking at pay ranges for both full-time and freelance developers. I think a good argument could be made for not dividing the list the way I have here, but when I have helped clients make hiring choices or plans for projects, these divisions made the most sense to the most significant number of people.
Do you need to make a website, webapp, or other user interface function?
Then it would be best if you had a frontend developer. Remember, at $32,000 to $70,000 as a general average full-time salary; these guys are not designers. Interestingly, on the freelance side of things frontend, devs can make much more, with $40-60 /hr being relatively common. To get full use out of your frontend developer, you really should provide them with at minimum a wireframe design, and ideally with complete mockups and wireframe.
Are you trying to do something more complex possibly involving data manipulation or building an API?
Then a backend developer is going to be the right fit. Unlike front-end developers, backend developers are not the right choice for anything customer-facing, but they can build rudimentary user interfaces when required. The current national average pay for Backend developer in the USA, according to glassdoor, is a cool $101,000, and those “good” freelancers typically cost between $35-60 /hr.
Are you looking to make something that you need to happen “inside” your computer, possibly some automation or operating system-level development?
A Systems Software Developer will be the right fit. Found more in the government contract sector, medical, IT, and other industries where a typical web interface is not desired or needed. According to glassdoor, the Systems Developer range has a much wider range at $48,000 to $138,000. Freelance I have always been hired on the lower end of the spectrum because my needs were IT-related being $20-40 /hr. I know of a freelancer working in the medical space that makes $75 /hr, and I think he fits the bill for “good” perfectly.
Did you want your project to result in a phone app or even a windows store app?
App developers are just about everywhere these days. If you are working with a remote developer, you can pay as little as $10 /hr to get your app developed. However, you might want to consider if you will have the result you desire. Glassdoor says the national average for a full-time app developer in the USA is $105,000. I have hired good app developers for as low as $18 /hr here in the US on a full-time basis with benefits. On the freelancing side, I have tried the guys that are $10 an hour in other countries all the way to the ones here that charge $70 /hr. I think you start to find outstanding people at around $30 /hr, and then beyond that, it comes down to the other factors we talked about before, like communication.
Should I do a Sample Project?
Better than a sample project, what I had done in the past when I didn’t know the best option was to hire 2-3 people to do the same thing. After a few weeks, you will have found which people you work the best with and make a better decision.
Sometimes you will have unexpected results; as one of the times I did this, the two people I hired turned out to be very good at opposite things, so I brought them both on for the long term to finish the project.
So I look at it as the main project can have samples produced, and I throw out what is wrong. Programming is like art; two versions can accomplish the same goal, but one is likely going to be way more beautiful.