From this description, I would shoot for someone that has experience in sub/near enterprise wide software. This probably wouldn't be someone that has worked for Oracle or SAP (true enterprise wide software), for example, as those devs are often siloed into working for a specific tool/component of the whole system. There are plenty of software companies of ~100 employees (total), where the 15-25 devs are exposed to all/most components for many departments of their customers. These programmers will be more well rounded for creating various unrelated tools that might need to integrate together. Hiring sucks, btw, and getting someone that is the right fit will be a serious challenge. Just because someone can make some code work, doesn't mean they will do it right, or have the drive to do all that is necessary. Spaghetti code is expensive code (but very cheap initially). Finding someone that knows how to architect code in a way that is modular enough to make changes and fixes easy is VERY important. There are different categories of programmers too. Many programmers love building new stuff, and will avoid programming the finishing touches, fixing defects, or re-designing something they've already written. There is another category that always wants to play with the newest paradigm or tool. They rarely finish what they're working on, because just when they get near the finish line, they get attracted to a whole new way of [fill in the blank], and start re-writing everything for their new interest. There are also solid programmers. They know how to ask the right questions to have a solid requirements list, are aware of common pitfalls, and what may need to be changed in the future. They're conscientious of the time spent to create a solution, along with the cost of using poor workflow designs. Most of the programmers that were quality assurance engineers first fit this category well. You will also encounter people interviewing that either pretend to know more than they really do, or worse; they think they know things that they really don't. Weeding out this crew is a challenge, and you may want to find a senior programmer with hiring experience just to be present during interviews with the purpose of asking the right questions, and guaging what the potential hire actually knows. You may also want to consider hiring 2-3 people for in-house development. This prevents one person taking your projects off into the weeds. You would be looking for a combination of programmer, sys admin, qa, business/systems analyst, technical writer, trainer, and tech support. If you can find a duo with most of those bases covered, you'll be in much better shape. Also, if one leaves, or gets fired, you're not totally screwed. As far as salary, I haven't been in the game since 2010, so I have no clue. I know that most salary calculators are inflated. Checking job listings should get you in the ballpark.