Site icon Treehouse Blog

Python Freelancing: The Good, the Bad, and the Ugly

Hands at a keyboard

Photo by Rachel Johnson at https://www.flickr.com/photos/rachel-johnson/4298911131

It’s safe to say that us developers enjoy programming day in and day out. We also really like making money and being able to feed ourselves and our families. But, we may not want to necessarily work in an office setting or for a single product or company. That’s why many of us choose Python freelancing.

Are you considering freelancing? Do you want to make a living with Python? If so, I have some firsthand knowledge to share with you.

Python Freelancing: What to Expect

I’ve spent most of my adult life in freelance programming. Even luckier, I’ve been able to be a Python programmer for almost all of my freelancing career. Like all fields, especially freelancing, there are good, bad, and ugly parts to the job. Let’s take a look at them.

The Good

One of the best things about Python freelancing is also one of the best things about Python itself: the code is generally really clean. This means less time spent trying to figure out what the previous developer was thinking or doing when they wrote a particular class or function.

Since most Python developers follow PEP 8, you shouldn’t have too hard of a time reading through code. Hopefully, they’ve also been writing good docstrings, too!

Along with docstrings, many Python developers are very dedicated to writing good documentation. Between docstrings and Sphinx-based documentation, especially for open-source projects at sites like Read The Docs, you don’t have to go far to figure out how to use a project.

Python developers are also pretty strong test writers, so many projects you get will have decent test suites. This makes refactoring and adding new features a lot easier.

If you happen to get a project without tests, this is a great place to start work. You’ll make the project stronger and you’ll learn about the code, too, as you write tests to make sure the code is working correctly.

The Bad

Freelance programming often has the same “bad” parts no matter what language you choose. For example, deadlines are often too short, clients may not known exactly what they want or need, and some clients may refuse to pay their invoices. But what problems are specific to freelance Python?

Quite often, clients in the Python world expect their developers to be top-notch, able to tackle any problem that comes their way. On top of that, they want their developers to be able to handle the full stack, from writing HTML and JavaScript, to writing Python (of course), and setting up the servers everything will run on.

I don’t know about you, but I’m a lot more comfortable writing complex Django applications than I am sharding a database. But, in my years in Python freelancing, I’ve done it many times.

In addition to the long list of skills and experience needed, or at least desired, you sometimes have to deal with legacy code, too. Python has been around for decades, so there are some projects that have a lot of really old code that might not be up to modern standards.

Legacy code presents its own fun challenge. You can’t easily refactor it because other, equally old, code depends on it. That means you get to remember that this one class with a lowercase name and camel-case methods acts in its own special way. This is another place where you thank your lucky stars if there are docs and tests. Or, you write them as quickly as possible if there’s not.

The Ugly

Like I mentioned in the bad, you’re eventually going to get a client that just doesn’t want to pay their invoices. Luckily, in my several years of Python freelancing, I only had one that didn’t pay.

Outside of less-than-perfect clients, most of the ugliness I’ve encountered in Python is due to code that’s untested, undocumented, and written by people whose day job isn’t writing Python.

You come across these strange implementations or APIs every once in a while and you end up just remembering how they work. If you’ve ever had to deal with SOAP APIs, you’re probably nodding along right now, and that’s when they work like they’re supposed to!

One of the frustrating things about Python freelancing is that there are often more qualified developers than there are jobs. This produces a market that is sometimes really hard to get work in.

However, having extra skills such as the ability to set up a server or database, knowing the ins and outs of DNS, or being familiar with statistical computing, can set you apart from other developers.


Python freelancing has been a fulfilling part of my life. It has resulted in many great friends and acquaintances, and has enabled me to build some really interesting sites and projects.

Is Python freelancing for you? I can’t answer that, but if you like Python and a good challenge, it’s a great market to get into.

Get Started in Freelance Programming With Treehouse

Are you interested in freelance Python programming? If so, Treehouse offers Techdegrees, in-depth tracks, and courses to help you gain the skills you need for success. Get started today by signing up for a free trial of Treehouse.

Exit mobile version