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

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

Kenneth Love
writes on January 18, 2023

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.

Become a Python Developer in 2023!

Learn to code with Treehouse Techdegree’s curated curriculum full of real-world projects and alongside incredible student support. Build your portfolio. Get certified. Land your dream job in tech. Sign up for a free, 7-day trial today!

Start a Free Trial
treehouse-badge

12 Responses to “Python Freelancing: The Good, the Bad, and the Ugly”

  1. I am really interested in python.. and want to make use of my free time after working.
    So i want to start working as python freelancer.
    As of now i am working as a software telecom tester and using python for automation framework from few months.
    My skills in python are basic python programming.
    what other python skills are required before get in to start as python freelancer?

  2. Minar Andriyanto on July 3, 2016 at 5:01 am said:

    What about android apps market in the google play store?? Are there any android apps that build using python and being marketed in the google play store?? I just thinking of making android apps using python and marketed it in the google play store.. is it hard to make it?? Or it can be made, but with far less efficient to build android apps that build using it’s native environment like android studio or stuff like that??

  3. Leonardo Cabrera on May 3, 2016 at 10:59 am said:

    So if I go through the Python course, should I get a job first before trying my hand at freelancing?

  4. currently making my way through the python and web courses at Treehouse and my aim was to go freelance, but would the recommended pathway be to get a job first.

    Love python and the courses here at treehouse keep up the great work.

  5. Your article is extremely well-written. This is great informational content from my point of view. You also make many valid points with compelling, unique content.

  6. Jason Orington on November 30, 2014 at 7:19 pm said:

    30 years? Python was created in ’91!

    • Kenneth Love on November 30, 2014 at 8:29 pm said:

      According to Guido’s History of Python, the first implementation was started in late 1989. He has said he has dreaming it up and designing it for awhile before that, too. 1991 was the first public release, not when the language actually started. I’ve updated the post to “25+”, though, instead of “30ish”. Thanks for the comment!

Leave a Reply

You must be logged in to post a comment.

Want to learn more about Python?

Learn the general purpose programming language Python and you will be able to build applications and tools.

Learn more