Hi, I'm Harlin and welcome to my blog. I write about Python, Alfresco and other cheesy comestibles.

How to Get a Python Development Job (Or why that kind of thinking may not be best)

I get asked this one quite a lot. I would love to have a sure-fire answer that would help you get a Python Developer job but I don't think I have an answer really. To be honest with you, I have never had a job where I was a Python programmer for at least 80% of my day.

As such, at any place of employment, I have always carried Python with me. Ever since my first job in this field, I have used Python for anything that I could do for myself or if it fit, for any task given to me.

I have worked in a number of different jobs in technology and have easily found a use for Python in each of them:

  • Consultant for a monitoring software company
  • System administrator for US Government
  • System administrator for a huge tech company that may as well have been the government
  • Java developer
  • System engineer for a 24/7 site
  • Technical support engineer for a software company
  • Consultant for a software consulting company

Except for mobile app programming (admittedly, I don't have much of an interest in this), Python has made it very simple for me to solve problems on the job even though I was not hired specifically for that.

The monitoring software company I worked for used mostly Perl (for backend and the service work) and some Visual Basic (for GUI). This tool was written very well in that you could easily extend it with just about any language you wanted to use. At the time I started working there, there was not a monitoring agent for MySQL databases. A lot of companies were starting to use MySQL and demand was emerging for a monitoring agent for it. It was easy to use Python to write such an agent. I was able to spend a lot of time on it and write decent enough code that my boss gave me an opportunity to create custom agents for customers using Python going forward.

When I worked for the government, I was able to use CherryPy to create a small content management site that solved a lot of our operations documentation issues. Of course, I could have used a number of different web platforms to do this but it was simple to use Python and CherryPy to develop the site. There was nothing fancy about it but we could have continued using a disjointed set of Word documents or paid a .NET or Java programmer to design it. We could have paid a lot of money also for Sharepoint or some other CMS at the time but it made sense to spend some of my time building it in a couple of weeks time. After that, guess what? My boss gave me other things to solve where I could use more Python.

Working at another company, Python came in handy to create scripts to tie things together like content store drives on different coasts; scripts to handle data ingestion for search indexes which started to become more in demand for business. Bash scripts did well too but there were times when something required a little bit more complex logic and Bash felt clunky and Perl became unreadable. It got to be easy to say, here is Python. It can do such and such for you.

As a technical support engineer it made sense to write my own scripts that parsed log files and property settings that could take quite a while to read and get to the meat of a problem a customer was having. Now, obviously there are other languages that one could use to do this like Bash, Ruby, Perl or Java but I was already familiar with Python and knew the language very well. A lot of bosses can be aprehensive about letting you spend your time developing apps and utilities. They'll tell you that there are already a lot of software written that can do what's needed. My experience has taught me, however that if you build something very quickly (which Python obviously allows) that only costs a little of your time, then those objections start to disappear. So, yeah, Python may be slow execution-wise compared to some other languages out there but the gains and production you get from it outweigh writing in other ones. I challenge you to demonstrate that to a colleague or leader and you will have them on your side.

So what am I getting at here? There are some specific Python jobs out there. They do exist but they're still few and far between. And you can definitely improve your command of the language and knowledge of the toolset by practicing with it and preparing for job interviews. You can apply for every Python job out there and hopefully you'll get one but I've found it better for me to take any job that interests me and then bring Python along with me.

What I look for mostly in a job now is:

  • Can I make enough money to provide for my family?
  • My wife has auto-immune rheumatoid arthritis and needs very good health insurance.
  • The work must be interesting and provide me with the opportunity to gain skills for the market.

That's pretty much it. I do love creating things and solving problems. I don't care about free sodas, bowling alleys, foosball tables, pool tables, team activities and that sort of thing -- though there is nothing wrong with that if you do. But I do love a job where I am free to get things done. I don't have an interest in jobs that involve a lot of theory and academic smarts on a particular piece of technology. Those are great but not for me.

So, the takeaway here is that I have been able to succeed professionally with Python simply by using it. No need to ask permission in most cases. I think if you're unable to find a pure Python programming job, that's ok. Just bring it with you. Eventually, you'll find that you are a professional Python programmer in any job that you can find. Possibly even jobs that are not completely technical in nature. Don't be afraid to think outside the box. You don't need permission to do that.

Any Comments, Always Welcome!