This week we welcome Noah Gift (@noahgift) as our PyDev of the Week. Let’s spend some time getting to know more about him!
Can you tell us a little about yourself (hobbies, education, etc):
Current hobbies are MMA training, which was a side-effect of working at my current job. I train about 6 days a week doing a lot of bodyweight training and things like hill repeats, and then for skills I train doing kickboxing and BJJ (Brazilian jiu-jitsu). Considering doing a BJJ tournament in the future, but mostly like discipline and change of pace from writing code. The other cool thing about training for MMA and specifically BJJ is that you are literally fighting someone to the death, then stopping in practice. A little scary, but also kind of cool.
I took a long winding path for education. Started with an AA degree, then got a BS in Nutritional Science at Cal Poly. While I was there I tried to walk on the D1 Track and Field team for Decathlon. I didn’t make it, but it was a great experience. After that I worked a bit, then got a MS in Computer Information Systems at CSULA, while I had a full time job. Just recently, finished an MBA while working full time from UC Davis.
Why did you start using Python?
It was a complete accident. I had a job as a sysadmin at Caltech in 2000 and at lunch I would play ultimate frisbee. Through peer pressure I was “forced†into learning Python because that is what a small clique of grad students at Caltech was doing. Accidentally, it then turned into something that got me jobs in Film.
What other programming languages do you know and which is your favorite?
At my current job I fluctuate between C#, Erlang, Python, Bash, Chef/Ruby, Javascript and R. My current favorite languages are Erlang and R, which are a tie. I love learning new things though, and really see something good about all the languages I use.
What projects are you working on now?
This week:
- A bunch of Machine learning in R projects.
- Web development with Erlang and Cowboy
- Automation with Chef/Opsworks
Which Python libraries are your favorite (core or 3rd party)?
I would say Python 2.x core libraries like subprocess, logging, optparse and JSON. I have paid almost zero attention to Python 3, and it is possible I never will with how much I have dived into other languages. The 3rd party libraries I have liked the best are the ones that do something that boosts my productivity, like IPython, which I use for almost all Python development I do, or things that just work, like requests. Not a huge fan of frameworks of any kind in Python. The installation alone makes me gravitate toward picking another language for that task. One exception might be flask. It just works every time I use it for something.
Still really bothered when I install something that calls out to 20 other packages that live on github, which of course, has one missing or broken (This is a lot like Round Robin DNS…you are essentially guaranteeing constant, non-deterministic failure state). That is a bad design pattern for DevOps, that unfortunately other languages also use, notably Ruby/Gems and Javascript/NPM. I try to remove any of those types of tools from my ecosystem since they constantly fail when you try to automate your deployment process.
Is there anything else you’d like to say?
If you meet the buddha on the road kill him. There is no right answer for programming languages or for frameworks, etc. It is easy to get caught up in the hype your co-workers, your city, your friends are in. Take your own path, learn an exotic language, and question the wisdom of anyone with a self-proclaimed title who claims or seems to claim to have all the answers. Learning Erlang, for example, and using it production was really, really tough, and I had many bosses give me grief for it. It now turns out to be a huge advantage for my startup.
Thanks!
The Last 10 PyDevs of the Week
Pingback: Interview Noah Gift #rstats #python #erlang | DECISION STATS
Pingback: PyDev of the Week: Stephan Deibel - The Mouse Vs. The Python