This is a post in our Your Django Story series where we highlight awesome ladies who work with Django. Read more about it here.

Shauna Gordon-McKeon is a developer, writer, and researcher with a particular passion for open science and free software. She runs a development consulting business, Galaxy Rise Consulting.

How did your story with code start?

After I graduated college, I joined a neuroimaging lab. Working with the massive amounts of data produced by fMRI requires a fair bit of programming knowledge, and so I began to pick it up - a bit of bash scripting, some perl, some python, and a whole lot of Matlab. It was a very informal process, and though I had a lot of help from my labmates, there was a huge amount of blundering around. I wasn’t even introduced to the concept of version control until two years in, and no one ever mentioned unit testing. This experience is what leads me to be an enthusiastic cheerleader of Software Carpentry, a non-profit organization that teaches technical skills to scientists.

Eventually I decided I didn’t want to be an academic. I wasn’t sure what to do next, but the technical skills I’d gained were definitely the most sought-after, and so I started to search for freelance programming jobs.

What did you do before becoming a programmer?

As I said above, I did neuroscience research. I’m still a number of things in addition to a programmer, including a scientist, and I’ve contributed to research as part of the open science community, and have done freelance work as a medical meta-analyst. I see a lot of stories from newcomers about starting new careers as programmers. I think that’s fantastic, but I hope that people know that there are ways to combine your old skillsets and passions with new programming skills. You don’t have to change your career completely - unless you want to.

What do you love the most about coding?

I love how straightforward it is. I’m drawn to solving complex problems, and coding can absolutely scratch the problem-solving itch, but I’m used to dealing with questions like, “Why do people think the way they do?”, “How do systematic biases influence scientific results?”, and “How does technology change communities?” I’m used to questions with no guaranteed answers.

Compared to that, coding is blessedly simple. Sometimes, when I’m working on a particularly thorny bug, I look at my computer and say, “There is a reason you’re doing what you’re doing and I will find it.” And I know I’m speaking the truth. I do always find that bug, eventually.

Why Django?

I started working with Django about a year and a half ago, as I started contributing to free/open source software projects that used it. I liked it from the get-go. To start with, it’s in Python, which is my favorite language and my favorite language community. I also really appreciate the effort put into the documentation and the starter tutorial, which has been hugely helpful to me. I think the care that the Django team has for this, draws others who care about teaching and documenting into the community, resulting in a delightful feedback loop and all sorts of excellent resources for newcomers - the DjangoGirls Tutorial, Two Scoops of Django, and Obey the Testing Goat, just to name a few. And I like how modular Django is. Often when I need a particular feature I can find it in the form of an app and adapt it to my needs. It’s very efficient.

What cool projects are you working on at the moment/planning on working on in the near future?

I’ve always got too many projects on my plate. Right now, one of my side projects is a Django-based tool I call Informant. It’s a relatively simple note-taking app that allows me to link notes in a non-hierarchical way. I can then perform various network analyses to get recommendations of concepts to explore further, and other neat things. Once I clean up the code a bit I’ll put it on github with an AGPL license so anyone who wants to can take a look, contribute, and fork it. It will end up here: https://github.com/shaunagm/informant

There are a number of other Django-related projects on my to do list. I’ve talked with some folks at Hypothes.is/Open Annotator about creating a Django package to interface with their tool. I also want there to be a (separate) Django app which handles citation/DOI lookups and verifications. Figuring out timing and funding to tackle these things is always a challenge, so I’m not sure when I’ll get to them, but hopefully I will - or I’d be delighted to find someone else has tackled them while I wasn’t paying attention.

What are you the most proud of?

That’s an interesting question! I try to be proud of all my work, whether it’s successful or not, because I think that’s how we grow. I recently gave my first keynote, at SeaGL, and even though I was incredibly nervous I’m told it went well, and I’m proud of that. I’ve been learning to make Android apps using Java, and that’s been an adventure, but I’m starting to get the hang of it, and I’m proud of that. I’ve applied to a number of fellowships and programs over the last couple of years, and I didn’t get into any of them, but I pushed myself to apply in the first place, and I’m proud of that.

What are you curious about?

It would be easier to tell you what I’m not curious about. Consider the following replies to be non-comprehensive.

If the question is “What about coding are you curious about?”, I’d say: what it means to make modular programs and platforms; the challenges of federation and their importance in an increasingly centralized society; the hows and wherefores of exception handling; certificate authorities, blockchains and other network-based systems of trust; automated testing in all its glorious forms; how technology in general and software in particular can reinforce culture and subconscious biases; recommendation algorithms; artificial intelligence; computer-based randomness generators; and the math behind encryption.

If the question is “What in general are you curious about?” I’d say: human behavior in pretty much every form and detail; black holes; abiogensis; why we sleep; mythology and fandom and their overlap; uncertainty and how we quantify it; theories of learning and education; systems of discrimination and oppression and how they influence our lives; convergent evolution; the philosophy of property; and communication media.

What do you like doing in your free time? What’s your hobby?

My oldest hobby is fiction writing, which I’ve been doing since I was very young. I’ve written a few novels, although I was disappointed to discover that the hard part is not writing them, it’s editing them - so for now, they remain secreted away on my hard drive. I also write children’s books. This started as a present for my favorite three year old (now my favorite five year old) and was full of silly in-jokes and ridiculous photoshops. I do have one children’s book that I hope to release for general audiences, about a tiny genderqueer superhero, but I’m still looking for an artist to do illustrations, so it’s not out yet.

I play softball whenever I can, which is not often. I am always happy to teach people how to hit a softball, or to rant about the effect of patriarchy on softball demographics across the lifespan - or both at once, if you prefer.

I like making and solving puzzles. The MIT Mystery Hunt is my favorite holiday of the year. :)

One more: I like to bake cakes shaped like things which are not cakes.

Do you have any advice/tips for programming beginners?

Plenty! Perhaps the single most import thing I have to say is: have faith in yourself. Learning to program is a lifelong process, but it’s especially difficult at the beginning, when you don’t know what you don’t know. Early on, I’d run into trouble constantly and never be sure if it was because it was a hard problem or because I was missing something obvious. I was lucky, though, that I had more experienced lab mates who took the time to help me. (It was either that or listen to me mash the keyboard and make whimpering noises all day!) So that’s another piece of advice: find mentors. Easier said than done, of course, but there are places you can go to find us - for instance Django Girls, CodeNewbies, PyLadies, OpenHatch, the Outreachy community, Positive Python, and your local Python and Django usergroups, just to name a few.

Another tip: learn how to ask good questions. At the request of a friend, I wrote down some advice about this, which you can find here. I ask a lot of questions, so I make sure to let people know how grateful I am for their help and their time.

Closing thought: you may experiment with programming and decide it’s not a good fit for you, and that’s great - I’m glad you learned that about yourself! - but please, please, please do not give up because you think you’re not good enough to be a coder. Coding is just hard, and takes time to learn, and it’s hard to navigate the vast array of languages, frameworks, groups and resources to find what works for you. If you’re having trouble, try a new approach. If you’re having trouble finding a new approach, ask for help.

Thanks so much, Shauna!

If you would like to suggest someone to be featured in the Your Django Story series (or would like to nominate yourself!), send an email to story@djangogirls.org!