I find it a bit disingenuous when I hear people say that they are looking for a programmer to join their team and they can’t pay them much but instead are willing to offer them partnership in the firm. Yes I understand that for many startups that is what you have to do in order to get off the ground but in most cases the people making the offer have no development background themselves and or no desire to learn how to develop software and thus are leaving it on the shoulders of that lowly programmer they are looking to hire to solve all their problems. I love start ups, that is I love working with the ones that have a solid business model in place to make revenue, as a programmer I wanted to give some insight into some of the things I’ve ran into and hopefully create a virtuous circle for both the company looking to hire and the programmer looking for work.
Hire by Knowledge not Language – I see this request a lot “Looking for a Python developer that knows Django” or “Looking for a PHP or Java developer” no education required. It is great to see smart programmers getting work in specific fields, but something I see most often is a Founder hiring a developer based on a language skill set and not on overall programming knowledge. Many college taught coders have the skills to jump from one language to another very easily but if you can’t afford them then the next best thing is hiring someone willing to learn concepts more than just a simple language.
Encourage Developer Education – This is too often something that is lacking in most start ups, so starved for meeting deadlines that they rarely cover coding basics or encourage their programmers to finish their degrees or take higher level classes. In many cases this is also a matter of dependency, if the programmer doesn’t have a degree then it’s going to be harder for him to move companies and find a better paying job down the line. This wouldn’t be a problem in any other job but in the world of development, it’s a kin to career suicide, you may not have needed a degree to do what you do but trust me in this line of work it’s almost vital to get good programming gigs past the age of 30.
Technologies change faster than Employees – Today’s PHP needs are tomorrow’s Python requirements and future Scala or other language necessities. I’ve seen companies drop good programmers because their needs changed and the coder they originally hired couldn’t keep up with the learning curve. If you hire someone out of high school, encourage them to go to college even if that means they are not at everyone of your nightly coding sessions, and if you hire correctly then you won’t be at every tech meeting trying to find the next guy with the next skill set every time.
Pay for work done and not for work promised – This is something that might get me in trouble with other developers but I see situations where companies will promise to pay based on project completion, this works well with seasoned developers that have been doing this for a while but not for newbies who have no idea what to charge. In those cases paying for what has been delivered will be better than having them deliver halfway work and it will teach them the amount of time it really takes to get something down. It’s called the laws of threes, everything will always cost 3 times what you estimate, take 3 times as long as you calculate and have three times the number of bugs you expect. Keep that in mind when you hire and you’ll have a better idea of when things should get done verses when they will get done.
Overall if you stick with these concepts you should be fine with both hiring and keeping great developers, attitude is important as well and no matter how skilled a programmer is, if he doesn’t bode well with your organization or company culture then he’s not worth the hire. Remember that for a technology company your software engineers are your lifeline and the difference between success and utter failure, keep that in mind. You should also read this yCombinator article (https://news.ycombinator.com/item?id=1761530) about taking time off to learning to code yourself.