The next step for the remaining competitors is to show up at the finals in Santa Clara, Calif. When the contest is all done, there will be one Algorithm champion who will take home the $20,000 first prize, and two Component champions, one for design and one for development, who will share in a $30,000 prize pot, and hundreds of other prizewinners, who will take home T-shirts and cash awards of up to $10,000.
TopCoder hosts several programming contests each year, garnering sponsorship for the events from big tech names like Yahoo!, Google, and Microsoft, the current sponsor of the 2004 Top Coder contest.
Jack Hughes, founder and chairman of the board of TopCoder, launched the company in 2001 after selling his consulting company. He and some colleagues were brainstorming about what to do next, and lamenting the difficulty in finding bright software developers -- the best in the business.
"We thought the best way to find them was to put in place a competitive model," said Hughes. This was the genesis of TopCoder.
Now, in addition to the upcoming tournament, the company puts on the TopCoder Collegiate Challenge in the spring. Each tournament spans about three months and includes thousands of would-be champion developers who compete in various elimination rounds up to the finals.
TopCoder also runs what Hughes called "private label" tournaments, like Code Jam, Google's annual coding tournament, and the DoubleClick Coding Challenge, a tournament that draws collegiate coders in the New York City area with a top prize of $5,000.
A unique aspect of TopCoder's system is the online nature of the competitions. Developers don't have to leave the comfort of their computer rooms in order to interact and compete with thousands of other coders working to win the prizes.
The Web site has a Java-coded Competition Arena, which is a huge chat room separated into sections for practice, active competitions, discussion, and leader boards. Participants can see which software components are in testing and which coders are competing.
Since TopCoder is so good at drawing the best and brightest young software developers in the world, it made sense to put all that talent to good use. So the company has another side. "We use the member base to build software," Hughes said.
A team of staff project managers analyzes the needs of enterprise clients who come to TopCoder with specific software requirements. Each project manager is assigned to a company, interviewing IT personnel and executives to determine requirements. TopCoder posts specifications at its Web site, where anyone who wants to can take a look and take a shot at designing components that will be coded and hooked together to fashion the finished software solution.
This is the design competition phase of application development. Just like the tournaments, developers compete against one another for cash prizes. Review boards are set up to look at design specs and give ranking scores to each. The design with the most points wins and is selected as the basis for the progression of development.
Winning designs are posted into development competition. Again, interested coders can download the information and build the components specified in the design phase. Reviewers look at the code and selected the best implementation, with the winner receiving a predetermined cash payment.
Sometimes, Hughes said, they even pay the runners-up in the competition, simply to provide more incentive for participation.
'Open source meets capitalism'
Hughes called his development model "open source meets capitalism."
"Most companies use open source in some form or fashion," he said. "I don't think I could name a company that doesn't use Linux in some way. I don't think they care all that much, at the operating system level. They'll use whatever gives them the most bang for the buck. They don't get into it as much as the community does. They look at it like it's just another piece of software."
However, Hughes said, the higher "up the chain" you move, the less likely it is that there is an open source solution. "By the time you get into financial, shop floor, order processing -- there's not a lot that's available in open source. That's the space where we play. We're building applications, not operating systems."
Hughes said the convictions behind "free software" are destined to die. "I don't think there's any way to make that last. People just aren't going to work on things for free for very long. It's not a workable model."
For Hughes, the community aspect of open source software development is its main attraction, one that he believes he is imitating in the coding competitions at TopCoder. "You have people who can look and give feedback and make improvements. It's a better way of developing software."
Interested parties can download software from TopCoder catalogs by subscribing with a monthly or yearly fee. While the license says that TopCoder owns the software, Hughes said they don't deliver software to a client without its accompanying source code.
"We still get all those community aspects. We're trying to take the best aspects of open source and try to keep it commercial."
Hughes stressed that it is the "free" perception of open source that holds it back. "I don't know that you can take the software and make it free and still satisfy the community in the long run. When you look at successful open source companies, they typically have a stronger offering that's not so free.
"We are big believers in looking at code and sharing code, and we do that with our developers who work together on a certain genre of applications, where they take the components and fashion them into larger applications."
The onsite finals for the Algorithm portion of the TopCoder Open begin November 11 at the Santa Clara Marriott. The competition for best Component ends November 12 at the same location.