I'm not sure a tagging system is the best option though. It's very flexible indeed but it's at the expense of the simplicity of checkboxes. Especially when many tags mean the same thing. eg: rails and rubyonrails.
Since "hacker" expertise is a limited scope, perhaps expanding from there is a better idea?