It is not the first time I read something like "3 years commercial Python development" on a job offer.

[Company] is seeking a python developer for a large client of ours based in dublin City Centre. At least 3+ years commercial python Development experience in recent years. Excellent understanding of Object Orientated Programming – OOP. The ideal person will have a proven background in thinking “outside the box” and likes coming up with new and innovative ideas. Experience of dealing with and solving highly technical issues based around python and it’s platform technologies.

Do they require any experience as a commercial role? Usually a Python developer has enough to do not to worry about anything commercial. Similarly, the job description doesn't ask for any commercial skills.

So what does "3 years commercial development experience" exactly mean?

  • It doesn't surprise me given that Python attracts a wide range of fans and linux geeks of all levels. It's too easy to get swamped with applications by people who have never truly worked in their life, even if they know all about Python programming.
    – Formagella
    Commented Dec 9, 2014 at 18:29

4 Answers 4


So what does "3 years commercial" exactly mean?

Typically, it means you have worked in that role professionally for 3 years, for a company that is trying to sell a product and make money.

That distinguishes you from someone who played with python for 3 years at home, went to school and learned about python for 3 years, or worked on an open-source project involving python for 3 years.

Often, the company wants to see someone with experience when under deadline pressure, when driven by real customer need, using python to solve real-world problems, etc.

As @Murphy correctly points out - don't take 3 years as a hard and fast boundary. If you have 2.5 years of commercial experience, you may still be qualified. Or if you have 3 years combined experience between commercial and non-commercial work, you may qualify.

The "3 years commercial" just gives you insight into the flavor of experience they are seeking.

  • 30
    though also remember that this is a wish list. if you only have 2.5 years experience they're not going to spit in your face. If you have commercial experience in another language and non-commercial experience of python ditto.
    – Murphy
    Commented Dec 2, 2014 at 18:26
  • 1
    Well, just to be fair, open source projects can count as well. Depends on the projects you contributed to and I have no idea what are the biggest projects in Python, but if you have contributed for 3 years to Firefox and are not a junior developer (as in, at least some proffesional work) anymore I am pretty sure that would count as 3 years of commercial C++. In contrast to having just learned it at school or just having done some hobbyist projects, both of which do not require proper code ethics and team organization etc. Commented Dec 3, 2014 at 17:54
  • 1
    @JoeStrazzere True, a sporadic contribution would indeed not mean anything. I was thinking about members who are actually assigned their own respective areas to work on and contribute significantly to an established, major open source project. A lot of major open source projects have far higher code standards than any companies I have seen. If for example a student came up to me who did a summer of code for Mozilla, next kept developing during the rest of their studies for Firefox and finished of with 1 year of work afterwards I would definitly count that. But yeah, depends on company culture. Commented Dec 3, 2014 at 18:02

I assume that in most cases commercial would be interchangeable with professional which boils down to being paid for your work. Having such an employment history signals both that you have an established work ethic and that you are familiar with how real software development works.

It's not so much the nature of the company or product but the nature of your role that matters: paid open-source positions (for instance at a staffed Apache project) or working for non-profits would typically qualify as well. But as Joe mentions tinkering or volunteer work would not.

EDIT: To clarify "real" software development, this is to draw a broad line between a few different types of programming: recreational (tinkering), voluntary (open source), educational ("hello world"), academic (research) and what you might call professional, commercial or industrial software development. Each type has its own quirks. Commercial software development has some typical features: product-driven, focused on deliverables, timeboxed or planned, often resistent to change, working with proven instead of revolutionary technologies, et cetera. It also implies the existence of a whole bureaucracy surrounding the developers which has its own advantages and disadvantages. This is just a quick overview of my interpretation, if you'd like to know more consider asking it as a new questions on Programmers.SE

  • 1
    What does "real" software development mean in this context? Commented Dec 3, 2014 at 4:30
  • 2
    @MichaelHampton, if you are not being paid for it, then it does not count, as no one has decided your output is worth paying for.
    – Ian
    Commented Dec 3, 2014 at 8:58
  • 1
    @MichaelHampton: I guess it might refer to commercial (building a product) vs. research/science experience. They have quite different goals and stakeholder types. Commented Dec 3, 2014 at 9:45
  • @MichaelHampton I've updated my answer to briefly explain.
    – Lilienthal
    Commented Dec 3, 2014 at 12:28

Open Source can still be "commercial" if your Enterprise fits a mold. (IBM,HP,Canonical). They want to see that some sort of SDLC was involved, and with any luck, also standards, code review, configuration management, peer involvement.

From a people point of view, it validates you can cope with your work being rejected, de-scoped, or "re-worked in another way" without fuss.

The commercial space is full of people with "varying abilities", and like college for IT, as a hirer I am interested in people who can "put up with crap" for a sustained period without quitting.

The downside of this in a commercial environment is that 3 years may just have been 12 x the same three months.


Joe's answer is very good, but I would like to add the following, which should help explain the reason for such clauses.

In most cases these clauses are added to job ads to try and help candidates self-select out of a position.

Most employers get inundated with tens or hundreds of resumes per job offering. By HR filtering out those with less than X years commercial experience in Y technology, they are hoping to cut down on the number of resumes they have to filter through to find the three or four stand-outs that they wish to interview.

A clause like this acts as short-hand to say "don't apply if you don't have any experience".

Generally speaking, there are two types of people who look at resumes: 1) HR drones who know nothing about the actual job requirements; and 2) Managers (particularly at smaller companies) who need someone to lighten their burden or expand their team.

In the case of type 1, you are unlikely to be able to get past a filter like this if you don't have the prerequisite experience.

However, in the case of type 2, you may be able to get past this filter if you can provide good justification as to why you want the job and why you'll be a good fit. Many times demonstrating an understanding of the business you are applying to is the best thing you can do to move to the interview stage, even if you don't exactly meet the experience laundry list. The cover letter is the best place for this explanation, but you can still pad your resume if you have done something to make you stand out from the crowd (like made open source contributions).

In any case, always assume that the person reading this is a type 2 person, just in case they are. If your resume stands out you still have a very good chance of getting a job even if you haven't completed the laundry list.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .