This is a place for nominating and discussing which full-time developers we should hire for the Mastercoin project. I think the community is agreed that this is a priority, and that we have the financial means to compensate full-time developers with approriate salaries - let's get to it!
Anyone who wants to nominate a developer should provide an explanation as to why she's a good fit, and also provide some examples of her code, experience etc. (a link to a Github page is good). There should be ongoing discussions about what languages we might want developers to write in, what kind of backgrounds we would like them to have, how many full-time developers we need, how many hours we would like them to commit, what kind of salaries are reasonable, and what ever else seems pertinent.
Our current developers' work has been great, but unfortunately we don't have a team that can devote itself to Mastercoin full-time. Everyday that we don't have full-time developers, Mastercoin's first-mover advantage becomes less and less relevant.
The board hasn't endorsed the decision to hire full-time developers, and therefore has not endorsed this thread. I encourage whoever is in favor of hiring full-time developers to help convince the board that it is the right thing to do, and to refer them here.
Nominations are not limited to developers who are currently working on Mastercoin; members of the community are urged to nominate anyone they think would be a good fit and addition to the Mastercoin project.
What matters to me in my opinion is that the developers be trusted. Nothing is more important than to be able to trust the people writing the code.
The other thing I hope to see is the formation of development teams to focus on specific feature sets. There should be a team focused just on user currencies. A team focused just on the distributed exchange. A team focused just on smart property. And a team which does quality assurance and security auditing.
The security auditing could be done externally and contracted out. The bug testing can be done via contest. The core features should be the focus of the full time developers so that the contest developers can focus on the trivial features or the experimental features.
Who are the candidates? It would be good to have a list of people willing to do the job rather than just voting for people who may not even be wanting the position. (I say this as it seems some of the current developers already have full time jobs and are not looking for full-time positions.)
First we need some structure. Just having a list of names without any teams is kind of ridiculous to me. You need to first come up with some development teams based around solving a particular objective or developing a particular feature set. Once you have that in place then you can try to figure out who might be good for particular features and who could be on different teams.
Like for the distributed exchange you might want certain people but for the user interface you might want a completely different set of people. You might want different people for handling smart property and escrow from the people who are working on CFDs. Small teams focused on particular goals and feature sets is how you get things done. Individuals being picked off a list and being told to "develop" is not how you develop anything.
Contests have structure but only work to a point. Contests can allow you to hack a project together but for really well written easily followed code you need someone who has a software design approach in the team leader position. That person shouldn't just be looking to implement the feature with some sort of hack as was done with Bitcoin but should be trying to do it in the way which is best for extensibility, modularity, and code abstraction so that future protocols can be built on top, and so that if necessary Bitcoin can be swapped out and so on. This requires people in design roles who can discuss which design approach is best. So whoever is team leader for developing smart property, they are going to have to think seriously about how to design it so that it remains trustless, decentralized, secure, private, scalable, extensible (future proof), and modular.
If anything is developed which involves cryptography then you'll have to use process isolation for example, or you may have to find someone who understands how to work with the trusted platform module (for use in savings wallets). Smart property for instance will not be an easy feature to implement in my opinion unless it's in the most simple form but the design is critical and getting it right is critical.