57

I have 30 years of professional experience as a software engineer and I'm at the point in my career where I can volunteer lots of time. I have helped with several childhood cancer organizations over the years but mostly was pulled into raising money.

At this point in my life, I would like to help with a closer connection to the research aspect in either finding a cure, better medicines/trials, or similar. I do not have experience in the sciences, bioinformatics, etc. but I am willing to learn. Where do I best find researchers in the field of childhood cancer (which I know very well is many different cancers) who might be looking for the help of a software developer?

  • Comments are not for extended discussion; this conversation has been moved to chat. – eykanal Dec 2 '19 at 15:14

10 Answers 10

68

I work in a biomedical field and most of us are awful programmers. We tend to be more interested in getting the underlying back-end algorithm to work than worrying about the front-end, comments, documentation, version control, unit tests, etc.

My suggestion, would be to look through the web pages at a nearby university and see if you can identify someone doing something you think is interesting, preferably something computational. Then email the PI explaining your skills and experience and that you would like to volunteer to help people with their programming and that you could help people move to the next level of using tools like version control and work with them on documentation and the front end.

| improve this answer | |
  • 2
    This is a good idea. Thank you. – Arthur Dec 1 '19 at 19:57
  • 31
    The OP may be even more useful as a mentor to student programmers than doing the programming directly. – Patricia Shanahan Dec 1 '19 at 23:18
  • 4
    @PatriciaShanahan Yes and no, there's a trade-off. Having someone with their experience very well could lead to better quality student programming, but at the same time, my experience with teaching programming to scientists has been that the vast majority of them will never spend remotely enough time at it (because it means less time doing the science they wanted to do in the first place) to become proficient with the various aspects of software engineering (not just learning a language, but software maintenance, project management, designing user interfaces, etc). – anjama Dec 2 '19 at 12:51
  • 1
    @anjama: There's a mindset issue, too. Biologists most want the results of running their code. It takes a programmer's mindset to care about code-quality for its own sake. (I worked for a few years as a sysadmin and programmer for a phylogenetics research group at a university; I've seen tree-optimization and DNA sequence handling code written by biologists. Instead of command line options, you'd often redirect from an input file that blindly drives the menus of some tools!) – Peter Cordes Dec 2 '19 at 14:04
26

Recently there's been a trend to involve non-experts in Citizen Science projects. The idea is to allow people to participate in research projects in various ways, for instance by helping collect or annotate data. You might find such a project directly by searching for citizen science projects about the topic, or at least find academic contacts from past projects who might give you suggestions. A quick search for "citizen science cancer research" can give a few directions, for instance:

There are also a good few generic "Citizen Science" platforms where one may find projects they like, for instance Zooniverse.

| improve this answer | |
  • Thank you. Very interesting. – Arthur Dec 1 '19 at 16:21
  • 1
    @Arthur I'm going to shamelessly plug BOINC which is a citizen science software platform for distributed computing. – ender.qa Dec 2 '19 at 14:43
  • As usual with cancer charities.. it's all noise. The links don't lead anywhere and there's nowhere to contribute to an existing project... because there are none: cancerresearchuk.org/get-involved/citizen-science/the-projects – Cloud Dec 2 '19 at 17:10
  • NONE of those links provide any place to actually contribute, they are all just marketing pages saying "we have done this with your donations... give us more!!!" – Cloud Dec 2 '19 at 17:14
  • FoldIt is basically fighting cancer and the userscripts make all the difference. If OP gets any proficient at LUA, a lot of people would be helped. – Mast Dec 2 '19 at 19:11
11

Depending on how much you need your volunteering to be recognised (in order to get dedicated days from your workplace for example), you could look into optimizing existing biomedical software. A lot of research software projects are open source, but their software quality varies wildly. Optimizations could make future research significantly faster.

Unfortunately, I don't have any concrete suggestions, but searching Github for Cancer gives 12k results, so there are bound to be a few programs that get used a lot but haven't have many computer scientists focus on their performance and usability. It appears that neural networks and Python are quite popular, but some of the more popular results aren't packaged as modules. Packaging improvements and the addition of automated CI could improve these projects velocity and make it easier for other researchers to use.

| improve this answer | |
  • 1
    Thank you. I like your suggestion. As you probably know Github contains so many projects and many which are not active and haven't been touched for years. You also don't know the expertise behind it or its usefulness just on the surface. Since I lack any experience with biomedical software I am hoping to learn from others. Nonetheless, the idea is a good one and I need to scour github to see if there are any active projects that make sense for me to join. – Arthur Dec 1 '19 at 20:02
  • 6
    Another term to search on Github would be "TCGA" (The Cancer Genome Atlas). The current top two results, maftools and tcgabiolinks, are both very worthy projects with ongoing development and issues on the backlog. The fifth is Bioconductor's Genomic Data Commons, which is widely used in cancer research and bioinformatics more generally. In fact, you could look into joining the Bioconductor core team if you have enough time. – Betterthan Kwora Dec 1 '19 at 21:07
  • For example, here is a project from cutting edge research at Sloan Kettering Cancer Center github.com/tomkelly-mskcc/Spombe-Replication-Dynamics – David LeBauer Dec 2 '19 at 2:35
6

You might consider earning to give. That is, using your software engineering skills in a highly lucrative field, so that you may then fund either research itself, or support younger researchers who require funding to complete e.g. PhD programmes.

This could be a good idea if you live in a city / country where software engineers earn several times a researcher salary or PhD stipend. In that scenario, you might find it's actually more "cost effective" for you to work your free hours and give the proceeds to an (effective) charity than to do "ancillary" software engineering work by yourself.

If you go down this route, however, be sure to validate that you're funding the right foundation, run effectively and with a competent governance structure. Also see if your state allows some form of "gift aid" where any income taxes on your earnings can essentially be forwarded to your charity recipients.

| improve this answer | |
  • 9
    Thank you. I've thought of this and realize that what you are saying is probably true, but some of the reason for me doing this is frankly, somewhat selfish. I'm interested in getting some of the pleasure of being hands-on and feel like I'm contributing plus learning a whole lot more and being engaged with something I feel (like most of us) passionate about. I have contributed to several cancer related charities over the years, but really want to feel more part of the solution. Nonetheless this is a good point and may have to fall back to this. – Arthur Dec 2 '19 at 0:34
  • Jimmy, I know you didn't mean it that way, but please realise that a software developer may read your answer to mean "the best way you can help is by staying away and paying others to do the job", which is not the most comforting answer for someone who's looking for ways to use their skills to help. – Nemo Dec 2 '19 at 10:22
5

I see many comments and answers saying that AI performs well on cancer diagnosis etc... and something that is often lacking when trying to scale academic research up into real-world production is a clean data pipeline.

From a cursory search of the internet, I find that cancer research appears to lack a solid infrastructure for its data. This is due to a variety of reasons.

In the first place, it doesn't seem to have a widely accepted ontological framework (though there are attempts to create such a thing, e.g. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6069766/ -- notice how recent this is!) contrast this with genetic research, which has an ontological framework that allows for relatively painless integration of separate databases which allows for better metastudies, a crucial (and underappreciated) element of academic research. So one avenue is to help develop a consistent, international ontology for cancer research.

Secondly, academic researchers are not database specialists. They often learn only the bare-minimum required to complete their research. They either need a dedicated database-specialist to maintain their database, or somebody to educate them on database programming best-practices.

As other answers have mentioned, academic code often lacks programming best-practices, including lack of version control, separation of concerns etc etc... this means that it's quite possible to enter any cancer research team as a sort-of project manager who can transform the researchers from being people that write "code that works" to being researches that write quality code that is maintainable and readable in the long-term, and also reusable by others.

| improve this answer | |
3

I suppose I should clarify what I wrote in a brief comment:

Not to sound rude, but do not volunteer to work in research for free, it devalues the contribution of people in the field, and academia already not well-paying and fraught with free labor extracted from students.

What I was imagining from your post was finding a research group at your local university, and spending 10-15 hours a week, every week, working solely with them. That is what I suggest is wrong. If that's what you want to do (a) my points stand; and (b) you should be compensated for your labor in that case anyway.

While what Dan wrote (see below) is somewhat true, I would point out that perhaps someone with less experience, but not the ability to provide their labor for free, would lose out on an opportunity to work with a group that you would be volunteering for. But this is all hypothetical anyway, and not worth arguing over hypothetical details.

The skills that you have as a software engineer with many years’ experience are practically nonexistent in academia, and the number of people like you who are volunteering these sorts of skills is effectively zero. So the devaluing effect AzorAhai is referring to is not something to worry about in this specific situation.

I'm also not convinced every research group needs a software engineer, but like I said, I don't work in cancer research.

What I meant by:

I would suggest hiring yourself out as a contractor or looking for a position with a large organization where your skills can be used

was that doubtless some labs (or companies) are working on software that needs someone of your ability. You could apply to work for them, or, like another answer suggests, to work on open source repositories (as obviously that is the whole point). In fact, I think that's the best suggestion in this thread.

Departments often hold guest lectures, you could reach out and volunteer to talk about things like good development practices, open source, revision control, etc. You might try looking up "Lunch & Learns."

| improve this answer | |
  • 2
    I greatly appreciate all the comments. I never even thought of the point you originally made. In my experience, frankly, many developers are way overpaid. Since I have no experience in the medical field I need to learn a bunch and I was assuming that no one would take me up on helping unless it was for free. Besides the open-source idea I do really like the idea of contacting local university departments to see how I can help. I live in the DC area so I assume this will be fairly easy. If anyone knows of a specific contact in the childhood cancer research area I would be interested. – Arthur Dec 1 '19 at 20:06
  • 1
    @Arthur In my experience, developers are merely undercompetent, given how important their jobs often are. (The competency distribution is bimodal.) Try to harden the code against particularly idiotic future developers (e.g. with mandatory compile-time unit tests) if you end up on a large-ish project, as opposed to something that just goes in a paper. – wizzwizz4 Dec 1 '19 at 21:17
  • Is it practical to be paid for your work, but then donate the money back? Or to act as a small-time funding agency that pays for your own work? I know it might seem silly, but it allows all parties to keep track of the value that you are providing without costing the organization anything. – Dancrumb Dec 1 '19 at 23:23
  • 1
    @lawn I've never seen anyone who would turn away free labor, that's not the point. And a volunteer could take away a paid position because why would they hire a second SE if they got one for free? There is no mention of an open position. – Azor Ahai Dec 2 '19 at 4:42
  • 1
    @lawn Even if that were the case in most labs (which I'm not convinced it is), you don't see any issue with someone employing two similarly qualified people and not paying one? – Azor Ahai Dec 2 '19 at 14:30
3

There are tons of research-software tools that are used in some way or another to do cancer research. From biomedical models, numerical simulations, image reconstruction, image processing and other techniques that are generally

  1. Free and open source
  2. Coded by researchers (meaning, bad code, bad software development approach)
  3. highly beneficial to medical communities if they were properly programmed.

I suggest finding research toolboxes that would benefit from an experienced software developer and help scientist do the non-science part of software development, so its easier to use by non-scientist!

I can think of several toolboxes that would require a software developer to be better!

| improve this answer | |
2

I suggest that you look at the recent CZI initiative for Essential Open Source Software for Science, which is mostly focused on life sciences (from what I can tell).

It's based on excellent background studies, wide community involvement and sound reasoning. They only completed the first round, so there's a lot more software to be discovered, but it's a start.

Among all those projects, find one that suits the programming languages and/or interests you have, and start contributing some small patch. See where you fit best/where you have most fun and continue contributing there.

If you're looking for a more structured work, you can also look at the GSoC participants in the science/medicine field and offer to work as a mentor for new software developers in these projects, either within GSoC or Outreachy.

| improve this answer | |
2

I can't speak specifically to cancer in children but drug design is a highly computer-oriented field. Drugs are designed, tested and analysed using computational chemistry before they are produced in a lab. The tools for this work are largely written by academics who produce great underlying theory but don't usually have the training in CS to write great code.

You could dive into the ecosystems of some of these programs and submit pull requests but realistically the authors are looking for new features not architectural changes. They are often open-source with active slack channels so it may be worth popping in. PSI4, OpenForceField, RDKit all spring to mind as large, open-source, growing codebases in computational chemistry/bioinformatics.

If you want to get heavily involved, in the UK we have the RSE (research software engineers). There may be similar posts wherever you're based.

| improve this answer | |
0

I was recently reading a magazine on Popular Science in Artificial Intelligent. With machine learning, AI, is now able to better detect breast cancer than a human doctor would with image analysis.

I think AI is the new front-line when it comes to bio-medicine. My recommendation would be to contribute on existing research and make your contribution through there.

Cheers,

| improve this answer | |
  • 1
    Popular Science isn't really a good source of information actual valuable research. Researchers are the one to talk to to find out what the real front-lines are... – Dancrumb Dec 1 '19 at 23:24
  • 1
    And the researchers are pointing at AI. Secondly, i did not mention Popular Science as an information research. – Michael J Amay Dec 1 '19 at 23:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.