PyDev of the Week: Dr. David Pena

This week we welcome Dr. David Pena as our PyDev of the Week! David is the author of StremeCoder, a Graphical Python Programming Editor. You can learn more about what David has been up to through his Github profile.

Let’s spend some time getting to know David better!

Can you tell us a little about yourself (hobbies, education, etc):

My name is Dave Peña and I am a molecular neuroscientist, and chief scientific officer at Pluri Inc. I started Pluri with 3 amazing people with the idea that science tools should be available to everyone. We make bleeding edge neuroscience tools and we cater to making them affordable to institutions that would normally wait decades for those tools to arrive in their laboratories. I have a PhD in Cognition in Neuroscience that I received from the University of Texas at Dallas. We were underfunded at UT Dallas, so I had to create and design a good deal of my own experimental equipment. We had to make our own metaphorical lightsabers to do research worthy of publication. That experience was really the motivator for the creation of Pluri. In the time I get outside of Pluri, I love being in the Sierra Nevadas looking at the giant redwoods. I also fire up the xbox one from time to time.

Why did you start using Python?

I started using python in graduate school to replace matlab in my experiments. This was in the pre-tensor flow, pre-pandas days. At that time, using python offered more control over my hardware than matlab did and seemed to run faster.

What other programming languages do you know and which is your favorite?

I know Javascript in its many forms, Matlab … some C, MedPc (A common scripting language for behavioral apparatuses). My favorite language is by far Python.

What projects are you working on now?

I’m working on an analytical program for a lab at the School of Medicine at University of Cincinnati that detects neuronal events while an animal is behaving. It’s pretty cool actually. The lab is trying to understand the network activity in the brain that underlies stress induced drug relapse.

Which Python libraries are your favorite (core or 3rd party)?

https://pandas.pydata.org/ completely changed my life! Before that I had very obtuse matlab looking code written for numpy.

How did Stremecoder come about?

The Streme Client was made as an auxiliary program to control the hardware associated with an implanted device we patented. We call the entire system The Streme Experimental Platform. The Streme Client used pre-programmed nodes users could connect to generate different behaviors in our hardware. It was nerfed in that although you could code python on it, you really needed our hardware for it to be useful. One day, a lab from Marquette University contacted me asking for help on a data collection problem. They had decades of old behavioral data in coded text files, and there was not any manual way of getting their data out of them into a useful place for analysis. Wanting to help, but not really having something for them, I dug into the Streme Client codebase and reimagined it. I changed almost everything about it so that I could use this new program I was making to:

1. Convey to Marquette (non-coders) what my code was doing
2. Give them an easy-to-use and modify UI that did not absolutely require them to look at code
3. Give myself a fully featured Python IDE that was node based to quickly adapt to changes they might have

So the Streme Client evolved into StremeCoder, a graphical IDE that is meant for anyone to be able to use, that can on its own be a dynamic UI for your code. StremeCoder excels at making your code reusable, dynamic, and organized. We have found it is most powerful at making these data pipelines/ETL’s as they are the most obvious to conceptualize as straight lines.

Where do you see Stremecoder going in the future?

We use StremeCoder everyday. In fact, after I made StremeCoder, I used StremeCoder to rewrite and optimize StremeCoder’s backend. I feel like a weakness Python has always had is it’s front end. I want to add functionality to StremeCoder to make it easy to design beautiful UIs quickly, that’s in addition to the normal bug fixes and feature requests that our users might send us.

Is there anything else you’d like to say?

Come talk to us! We are a friendly group of 4 people that would love to hear new ideas and use cases for StremeCoder.

Thanks for doing the interview, David!