Hiring a programmer for a clinical project?
August 17, 2014 11:52 AM   Subscribe

I'm working with a professor of medicine, and she has a clinical decision algorithm that needs to be turned into a website with a database backend. We need to find a person.

The algorithm involves selecting donors for bone marrow transplants (i.e. from person 1 into person 2). It takes information from a given patient (let's say a list of about 20 or so integers), plus information for a number of potential donors (for each donor, a list of about 20 more integers, plus a dozen booleans), takes all of that, looks some stuff up in a few associative arrays supplemented with an external website, and assigns each donor a score so that they can be sorted from highest/most suitable to lowest/least suitable for that patient.

Right now the algorithm rests primarily in the heads of one or two research/medical type folks, who run everything mentally with the aid of a few Excel spreadsheets. Obviously, this is time-consuming, doesn't scale very well and can be error-prone.

The actual algorithm is only a few pages of flowcharts, even after it's made fairly explicit, but it needs to be converted to a web front-end, plus the algorithm on the backend, and to store all the results as well into some sort of a vaguely robust database that can be mined later for clinical research.

Complicating this is that the algorithm is a research project, and thus changes over time (on the span of say, weeks to months) -- so the project is not a one-off. Rather, we need someone who can write maintainable code, and is willing to continue to update it.

Unfortunately, the medical/research folks who are doing all this now speak no computerese, only medicine/biology, so thus far I've 'translated' what they have into flowcharts. However, the project needs someone who can at least grasp at least enough biology that they can talk to the researchers without me intermediating.

Difficulty: a limited budget (i.e. unlikely to support even one full time programmer yearly) but might be appealing to academic or research types as there may be publications and similar academic type 'rewards' on the table.

After all that: I don't expect a name, but do you folks have any idea what kind of consulting outfit or other clearing-house type organization we need to be talking to, in order to find people or consortium that may be a good fit in turn?
posted by raspberry jam and clothes iron to Work & Money (17 answers total) 2 users marked this as a favorite
I think you're dead-on that you need an at-least-somewhat academic collaborator. Does the associated university of the med school have a computer science department? If you can get a young assistant professor who knows machine learning interested, you'd be set. Or advertise for a full-time research assistant (or undergrad RA) with database skills and an interest in medical informatics. Either one will be MUCH cheaper than a real FT programmer or consultant, even counting any necessary learning curve.
posted by supercres at 11:56 AM on August 17, 2014

If it's a hand-made algorithm that gets updated and changed by people, you're not doing machine learning. It would be a pretty straightforward thing that a general programmer would be able to handle.

If you're talking about feeding results back in and having the model that improves itself over time, now you're talking about machine learning.
posted by the jam at 12:40 PM on August 17, 2014 [1 favorite]

You need two people. A good programmer who can turn the flow charts into a program, and a web site creator who can put it on the web. Different skills.

The first sounds like a good task for a grad student in computer science with an interest in medical applications.
posted by SemiSalt at 12:41 PM on August 17, 2014 [1 favorite]

I think you need to look for companies who are already providing web based healthcare "expert systems". Why re-invent the wheel when something existing can be adapted? Here's one that came up early in a google search.
posted by Sophont at 12:43 PM on August 17, 2014

The first sounds like a good task for a grad student in computer science with an interest in medical applications.

This sounds simple enough that it doesn't need a grad student or someone with an interest in medical applications. Maybe widen your scope to undergrads.
posted by ripley_ at 1:45 PM on August 17, 2014

Nope, no machine learning needed. Just implementation of an algorithm, and updating it over time.
posted by raspberry jam and clothes iron at 2:18 PM on August 17, 2014

I would strongly suggest avoiding students unless you are really desperate or have compelling reasons to believe that a particular young developer can deal with a project like this. Some coders may be brilliant, motivated and have time but be clueless about helping a non-IT customer develop a realistic specification and plan.

You're better off getting somebody a bit more experienced who can help talk you through the whole process. From your limited description, it sounds like the IT will have one or two tricky parts but it's generally not rocket science. The hardest thing is to manage the details of the spec and to help the customer prioritize and understand what expectations are reasonable. A decent contractor will not be cheap but once the initial work is done, updates are likely to only require a day or two of work.

Ask IT people you know if they have a good programmer who does contracting.
posted by mr.ersatz at 3:45 PM on August 17, 2014

This sounds like it calls for a collaborator, not a consultant. I would try to hook up with someone in bioinformatics or such willing to supervise a grad student or keen undergrad and be responsible for ongoing maintenance in return for some funding and names on publications.

(This assumes this is a research tool, not a public facing website.)
posted by no regrets, coyote at 4:02 PM on August 17, 2014 [1 favorite]

Check your MeFi-Mail.
posted by justalisteningman at 5:27 PM on August 17, 2014

When you find someone, insist on extensive test coverage for the algorithm portion of the work, and collaborate closely with them on that. It’ll be important for you to have confidence that the spreadsheet model has been accurately ported and continues to output correct results as you change it over time.
posted by migurski at 6:26 PM on August 17, 2014

The mechanics of this sound really easy. The communication with the researchers might be tricky depending on their personalities, but shouldn't be too bad since you're talking about a programmer -- who's probably going to think very logically -- and researchers, who probably are thinking very numerically and logically.

However, a good user interface will help you enormously in describing and discussing this with others, and also in deploying this to a wider audience. So, look at previous work.

This is simple enough that you should be able to get someone who writes solid code and who will be able to make something at least a little elegant-looking and clear.
posted by amtho at 6:35 PM on August 17, 2014

Following up on migurski's comment about testing the algorithm. Ideally the algorithm code should be on a module that can is built, tested, packaged and delivered independently of the web app. This will allow you to modify the algorithm and web site independently of each other. This increases reliability while decreasing maintenance cost.

Technically I'm suggesting the algorithm is packaged as a gem in ruby or a jar in java/scala or assembly in .net, etc...

Also amtho is right, the mechanics sound easy, but ensuring a good design will pay dividends if you anticipate this web app to be at all long lived, or need to undergo any sort of changes.
posted by askmehow at 6:47 PM on August 17, 2014

This sounds like it could be a one-stop with an experienced contractor/freelancer. Taking requirements from a specialized domain where they aren't particularly experts and making working software is what they do for a living.

You should be able to find someone who will commit to updates in the future. You can also ask for (insist on) source code in case something goes wrong with that plan.

2000 hours sounds way, way high. Sounds like less than 100 to me, but there could be good reasons why that isn't a good guess.

Your researchers don't need to be able to draw a flowchart--but they would need to be able to talk through one and correct it/update it themselves. If they can't do this, you'll need to keep yourself or someone like you in the picture.

How to find a good contractor . . . well, that's hard to do. You can search online or even in the yellow pages, but you'll get a lot of so-so shops that way. If you hire from a shop, insist on talking to the guy who will actually do the coding in the interview. You can try going to developer meetups and seek out individual programmers there too.

You want someone who is interested and engaged with you from the first meeting, and someone who clearly isn't coming to their first rodeo. Don't worry about .NET vs Java and stuff like that. Having a few successful actual-programming projects is the important thing.
posted by mattu at 7:34 PM on August 17, 2014

If you possibly can, implement the algorithm part in either R or Python(preferably R) so that it can be updated by people with less programming experience in the future. R is exploding right now, and becoming the standard tool for research data analysis.

The real hard part here is going to be securing the patient data. If this application is going to be exposed to the wider internet world, the web part needs to be written and maintained by a pro, or your site will get hacked.
posted by rockindata at 4:38 AM on August 18, 2014

You need two people. A good programmer who can turn the flow charts into a program, and a web site creator who can put it on the web. Different skills.

Those are not necessarily different skills. Any skilled developer can translate flowcharts into code. You want to look for something like Ruby on Rails or Node.js developers.

Difficulty: a limited budget (i.e. unlikely to support even one full time programmer yearly) but might be appealing to academic or research types as there may be publications and similar academic type 'rewards' on the table.

This is a perfect project for a Masters student looking for GRA funding, and that should easily fit into your budget...because it will be about 1/3 the cost of a professional developer. There are lots of students who would love this opportunity.
posted by semaphore at 8:49 AM on August 18, 2014

I work for a research university, in a department that gets a portion of its funding from writing algorithmic websites for PIs.

This would probably be pretty simple to bang out using Django for the backend and Bootstrap for the UI. The problem is that your team has zero clue how to hire or manage the people doing the work. We hire fulltime senior programmers to oversee the training and managing of student developers. From our end the biggest challenge is PIs that keep pushing for more features, more changes. Scope creep, etc.

We aren't the only university performing this sort of consolidation. Ask your Information Technology / Information Services dept if they know of anything on campus performing that kind of service. The worst case scenario is they give you a quote that means you're back to trying to manage Masters student programmers directly.

Be wary: the combination of computer skills and biochemistry is hard to find, and well remunerated in industry. You will not have much time before the student graduates into a consultant earning more than you. This is how we got a protein geometry search engine on our plates, for example. And oh what a mess it is internally.
posted by pwnguin at 9:06 AM on August 18, 2014

I sent you a MeFi Mail!
posted by Kwine at 10:26 PM on August 18, 2014

« Older Online backup options for several Macs?   |   Fancy events + no sleep + small children = help? Newer »
This thread is closed to new comments.