Online Python
Coding Challenges

What makes a great Python Developer?

What makes a great Python Coding Challenge?

Start 14 day free trial*Detailed reviewer comments. Clear and easy to understand candidate ratings.

Trusted by these brands

  • Bulb
  • Lyst
  • Sky Scanner
  • Compare the Market
  • Just Giving
  • Thriva
  • Payoneer
  • e-bot7
  • Auticon
  • Bibliu

Bulb hired 70 developers in 12 months using Geektastic’s assessments, saving 58 days of engineering resource

Lauren HallHeadshot of Lauren Hall
Senior Tech Recruiter at Bulb
Change testimonial. Use index. Edit testimonial
  • 70Engineers hired in the last 12 months
  • 44Hours per week of engingeering time saved
  • 50%Reduction in time to hire
  • 408Technical assessments outsourced
Start 14 day free trial*

Where our expert review team work by day

  • Sky Scanner
  • Amazon
  • Disney
  • Capgemini
  • Freshbooks
  • Accenture
  • Google
  • Toptal

Would you like to license a Python code challenge to analyse the Python skills of your candidates?


About Python Python coding challenges Python programming language logo

Python is known as a multi-paradigm programming language, meaning it is capable of everything from highly specialized procedural scripts, to large-scale object-oriented applications and even functional programming. As such, Python is largely associated with a wide variety of vastly different domains. The most notable domains include scripting and tooling for developers, web applications using frameworks such as Django, and the realms of science and machine learning through Numpy, SciPy and scikit-learn, to name the best known examples.

Would you like to test your Python skills and take a peer reviewed Geektastic code challenge?


Given this variety of use cases and demands that exist for Python applications, good Python programming challenges should try and identify and acknowledge concepts that are shared between all of these domains, without demanding that a challenge taker must rely too heavily on either. But regardless of whether a challenge-taker prefers a functional style or an object-oriented approach, there are a number of qualities that can be found in any strong Python programmer:

Follows instructions and communicates intent

This is obviously a general quality and not something unique for Python challenges. Nonetheless, it remains an area where we see some of the biggest discrepancies between weak and strong applications. Specifically for Python, this incorporates things such as using comments and docstrings well, and utilizing code that is supplied with the challenge, rather than re-writing the skeleton code at one own’s whim.

Efficiency and performance in a Python context

Any developer strong in computer science fundamentals has a good understanding of common data structures and a well-equipped toolbox of algorithms and algorithm paradigms. A Python developer strong in CS fundamentals makes good use of some of the modules in The Python Standard Library, such as collections, itertools, heapq and bisect. Furthermore, familiarity with language constructs such as generator expressions and other lazy features, list comprehensions and an understanding of mutable vs immutable objects will prove very helpful in most Python coding challenges.

The Zen of Python and the concept of “Pythonic”

By virtue of having existed for more than a quarter of a century, the Python programming language and the community surrounding it has developed a common sense of style and ideals. The Zen of Python are words of wisdom written down by long time Python programmer Tim Peters. It encapsulates a philosophy of writing clean, succinct code in a manner that will be familiar to most other Python programmers. The concept of “Pythonic” gets thrown around a lot, and was explained like this by Martijn Faassen. Neither the Zen of Python, not the concept of Pythonic should be thought of as firm rules, or even very detailed specifications. But rather of as a set of half-joking (but more serious than you first might think!) pointers that identify a philosophy that a large portion of the Python community will agree with.

A history of Python

The history of Python dates back to 1991, when Dutch computer scientist Guido van Rossum released the first version of what had been a hobby project up until that point, its name being a reference to perennial programmer favourites, Monty Python. Since then, van Rossum has released Python as an open source project, with himself serving as BDFL, or benevolent dictator for life, as is typical in many open source computer science projects, and representing a status similar to that of Linus Torvalds in the Linux project, or Larry Wall for the Perl programming language. Unlike many other programming languages of similar age, Python has yet to see a decline in popularity. It oftentimes ranks as a top 5 language in terms of popularity in various cross-language rankings.

The version 3 split

The third major version of the Python programming language was released in 2008, and marked a split not only in terms of syntax and language compatibility, but also in the community as a whole. The Python team had come to the conclusion that certain things in the 2.x branch of Python needed to be changed in such ways that maintaining perfect backwards compatibility was no longer possible, for instance with regards to how text and unicode is treated by the two branches of the language.

The release of Python 3.0 did mark the coming end of any major language feature updates to the 2.x branch, even if it has seen quite a few important improvements in the time since. However, for a long time, a prevalent problem and frequent source of headaches in the Python community was the fact that many industry-standard tools and libraries were built for Python 2.x and were simply not available for the 3.x branch. It is only lately that reality has begun to catch up to Python 2 and the community is starting to see something that is at least approaching unity behind Python 3.

Common usages

For any language as versatile and ubiquitous as Python, it is bound to be found in a large number of high profile applications and websites. Among those web sites whose front or back end have been built largely with Python, we find Youtube, Quora, Pinterest, LinkedIn and Reddit.

Django and Flask

While these two web frameworks are probably the two most used for Python, a reminder is in place that there are several other frameworks that serve similar purposes. Of the two, Django stands out as the fuller featured, more frequently used, but also somewhat bulkier alternative. While it is highly configurable, Django comes with a lot of features, such as a full-fledged MVC framework out of the box, and gladly takes care of any of the mundanities that every web application faces.

Flask is a bit different in philosophy, in that it weighs in at far less in terms of scope and size, and is also less opinionated on how you approach things, and is thus more built towards configurability. Ultimately, they represent two battle-tested frameworks, capable of serving just about any type of web based application, utilizing developers’ Python proficiency.

Python in science

Python has a long standing tradition as a language used for scientific purposes. Over the past decade or so, following the release of first NumPy and later SciPy that position has been successively strengthened to the point where Python is the de facto go-to language for science, superseding older languages such as Fortran. Most users of these libraries would interface directly with SciPy, which in turn relies heavily upon NumPy.

With the explosion of interest in and applications for machine learning in recent years, Python has proven to be a popular and powerful language in this field, largely due to scikit-learn. Built at Google on top of SciPy and released as open source, scikit-learn is being used by such technology giants as Spotify, and Evernote.


The list of languages at least in part inspired by Python is long indeed. The following is a non-exhaustive list of what has followed in trails blazed by Python:

The Go language

Released by Google in 2009, Go was described as follows in the initial communiqué.

Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++.

The offside rule

One aspect of Python that will prove to be puzzling for newcomers from languages such as C++ or Java, is the Python notion of indentation carrying syntactical importance, and not merely existing for readability purposes. This is colloquially known as “the offside rule”. In practice, this means that for Python to understand that a set of lines belong to the same code block, they need to share the same indentation level. In practice, this type of indenting usually happens in traditional languages too, but Python’s way of imposing this as a requirement means it can do away with symbols such as curly braces and semicolons as a means to increase readability. Among the notable languages that employ a similar scheme are Julia, F#, Nim and Haskell.

Would you like to license a Python code challenge to analyse the Python skills of your candidates?


Looking to find out more about take-home code challenges and what makes a good challenge?

Check out of page where we talk about take-home code challenges

Start 14 day free trial*

*The 14 day free trial only applies to the £250 (€300 or $375) per month platform fee and any code challenge license fees, the free trial includes the first two Geektastic Code Challenge reviews, thereafter they are charged at £50 (€60 or $70) per review.

Frequently Asked Questions

General Questions

So what is Geektastic? I hear it’s more than a technical assessment platform

​​​We founded Geektastic with two main objectives.

1. Create a great candidate experience for anyone taking a Geektastic technical assessment.

2. Provide Hiring Teams deep technical insight into a developer’s all-round technical skills.

We welcome Hiring Teams looking to assess the skills of their software engineering candidates.

We also welcome Developers to join our global community where they can test their skills against our 25,000+ developers and share their own code challenges. 

The very best engineers in our community join our paid review team and earn a side gig reviewing code challenges in their spare time (£25 per 30-minute review).

We also help match developers from our community with our Talent partner’s roles. Because our community take code challenges to complement their profile they can show off their skills to potential employers.

What programming languages does Geektastic cover?

We support a wide range of programming languages and DevOps skills including :

  • JavaScript (inc. frameworks such as Node.js, React.js React Native and Angular)
  • Java
  • PHP
  • Python (inc Django)
  • C#
  • Android
  • Swift & Objective C
  • Scala
  • MySQL
  • C++
  • Ruby
  • Golang
  • Rust
  • Dart (inc Flutter)
  • AWS
  • Terraform
  • Ansible
  • CI/CD

We are constantly adding new languages, if you have a language we are not covering please contact us at

How secure is my data on Geektastic?

We are fully GDPR compliant. We operate a fully secure platform using SSL encryption and we never store your passwords in plain text.

All developer profiles are anonymous, as a developer you join and create a profile. You can use OAuth like Google or Github to authorise the application or you can use a local username and password.

How can Geektastic help me assess my candidates' technical skills?

How much does Geektastic cost to assess my candidates?


Take-home code challenges:

£250 (€300/$375) per month Platform Fee

£75 (€90/$95) per Take-home solution reviewed by our expert review team.

Express Multiple-choice code challenges:

£125 (€150/$175) per month Platform Fee - this includes 50 candidates

£2.00 (€2.50/$3.00) for any candidate you assess after you have used the 50 included in your monthly Platform Fee

Discounts are offered if you combine both services

All our pricing can be found here Geektastic Pricing

What makes Geektastic different from platforms like HackerRank and Codility?

For our Take-home code challenges, we use real human reviewers to perform our reviews.

We believe a human is much better at analysing a user’s code than a machine.

Candidate experience is vastly improved when they know they will be properly assessed and receive detailed feedback.

To see an example review please email and tell us what language you’d like to see.

How long does it take you to review a candidate’s code challenge submission?

Most reviews come back the same day.

We aim to complete all reviews in 24 hours, but when the volume is high we can take up to 48 hours to complete the assessment.

Do you integrate with third party ATS platforms?

Yes, we are integrated with Greenhouse, Lever and Workable.

You’ll need an account with both Geektastic and Greenhouse/Lever/Workable to operate our code challenges on their platform.

Once you are ready to start sending out invites you just request an API key and send it over to your ATS provider (with Greenhouse you send it to your account manager, with Workable they provide a self-service interface on their website)

After they are connected you can then invite your candidates and view the results directly from your ATS.

Do you have a Free Trial?

Yes, we offer a free trial to evaluate our assessments before you buy.

We offer 2 candidates assessed using our Take-home assessments and/or 50 candidates assessed using our Express challenges for free.

Would you like to test out a Geektastic code challenge on a candidate for free? Register now

How do candidates take the challenges?

Before you can invite your candidates please register as a Hirer and either license a Geektastic Challenge or we can port your own challenge to the platform.

You then invite them to take a challenge by entering their email, first name and surname and the challenge you want them to take.

The system automatically triggers an email to the candidate asking them to take part in the challenge. You can track your candidates’ progress via our dashboard.

If you are using our Take-home code challenges then the candidate will need to have an IDE set up on their machine in advance of the challenge (the challenge instructions warn them about this prior to starting the challenge).

Our Take-home code challenges take around 2 hours to complete.

Our Express Challenges take just 30 minutes and they are completed on the platform rather than in the candidate’s IDE.

Can I use my own challenges rather than the Geektastic challenges?

Yes, in fact, we actively encourage it.

All you need to do is send us the challenge and we port it across. 

Very importantly, we also set up a short call with your development team to understand what you are looking for from our review and we draft a set of review guidelines to help our team review as if they were your in-house team

These challenges remain private and will only be used by you on your candidates.

Can you help us grow a more diverse team?

All our reviews are completely anonymous. The reviewer has no idea who they are reviewing - this means they can be completely impartial.

Removing unconscious bias is crucial in recruitment flows. If the same team that carry out the review carried out the initial phone screen or first round of interviews they will have started to build up opinions, both conscious and unconscious - there is a risk that these will flow through to the review they perform on the code challenge submission.

Using Geektastic’s platform removes the risk of these biases affecting the review.

Do my candidates remain my candidates?


You have spent a lot of time sourcing and wooing your candidates. When you invite them to take a code challenge on our platform they remain ringfenced to you.

They do not register on the platform, they do not create a profile - they simply come to the platform to take a code challenge and receive their review.

I am a developer, please tell me how Geektastic works?

So why should I join Geektastic as a Developer?

We welcome developers from all over the world to join our fast growing community (26,000 and growing). As you might have gathered we are trying to change the way software engineers are hired.

There are a number of reasons you should join

  1. You can earn a secondary income assessing code challenge solutions in your spare time. We pay £25 per 30 minute review peer review
  2. You can review challenges created by others and earn £10 per Express Code Challenge you approve.
  3. You can earn royalties from Express Challenges you create that are then used by our customers. We pay 2p each time one of your challenges is used on a candidate. That might not sound like a lot but it can quickly add up if you create a great challenge.
  4. You can be fast tracked for some amazing software engineering roles, whether you are looking for an office based role or you want to work as part of a remote/distributed team. Most of our roles are remote - we’re a remote-first company after all.
  5. You can benchmark your skills against a global developer community. We show you where you compare to other developers.
  6. You can create and share Express Code Challenges with our community. Once you have taken a couple you can start to create your own. 

I’m sold. So what’s the process for a Developer joining Geektastic?

  1. To benchmark your skills, to join the paid review team or get fast tracked to a great new role you’ll need to complete around 20 Express Challenges per language (these take an average of 1-2 minutes to complete). 
  2. If you are keen to join the paid review team you’ll need to get in the top 5% of the global community. You will then be issued with a Take-home code challenge - we use these to assess your all round programming skills, if you ace the Take-home you are in the paid review team (if you don’t receive your challenge please email
  3. If you are looking for a new role you will need to set yourself to ‘actively’ or ‘passively’ looking.  We work with a hand picked selection of Talent Partners who in turn work with some of the most exciting tech businesses globally. Our matchmaking algorithm starts the process of matching you with roles but their expert team will then manually review your profile to ascertain whether you are a good fit for the role. You can apply to them directly if you see a role you like the look of, also they will be in touch with you to see if you are interested in anything they think is a good match.

What type of roles do you have posted on the platform?

They change all the time (obviously) - but they are all software engineering and DevOps jobs.

They are all broken down by Programming language (eg Java, Python, PHP, C#, JavaScript, Scala etc), tech skills (eg React.js), years of experience, how much salary you will be paid (before the tax office gets their hands on it) and whether they are based at a particular location or are remote.

We have partnered with a selection of hand-picked Talent Partners who in turn work with a wide variety of global tech businesses to give you a wide variety of roles

How do I complete a Take-home code challenge to try out for the review team?

First, you have to complete 20 Express Code Challenges in a single language.

These are the multiple choice challenges created by our expert team of reviewers and members of the community who have a high enough rating to become an author. Score well in the Express Challenges to unlock your qualifying Take-home code challenge.

We are looking for a developer to rank in the top 5% globally before we can open up a Take-home code challenge.

Can I share my review with companies who aren’t yet on the Geektastic platform?

Of course! 

You’ll be investing 30 minutes on our Express Challenges or 2 hours of your precious time completing one of our Take-home code challenges. 

You can then share your public profile which shows off your results. 

You can post it on your LinkedIn profile, Personal Website or create a QR code and tattoo it on your arm if you like.

We hope that prospective employers will use that instead of asking you to take another tech screen. 

How can I become a reviewer on Geektastic?

What steps do I go through?

We have a number of steps to becoming one of the review team. For obvious reasons we have to be very thorough (clients expect our team to the same quality as their in-house team).

  1. First you need to register and validate your email (1 minute)
  2. Create a profile - we are mainly interested in your core programming languages so we can allocate you the appropriate qualifying challenge (2-5 minutes)
  3. Complete some Express Code Challenges to show us your skills.  These take around 1-2 minutes each. You will need to complete up to 20 challenges (this is how we obtain a true ELO score). 
  4. If you get in the top 5% you will open up a peer review qualifying challenge.
  5. Take one of our Take-home qualifying code challenges (2 hours).
  6. Our review team will then thoroughly evaluate your solution and provide you with a detailed review (we aim to have this back in 24 hours)
  7. If you get voted to join the team (you’ll need to be getting 4-5 stars across the board to be voted in) we then ask you to carry out two dummy reviews as we need to make sure your reviewing skills are as awesome as your coding skills - we do give you some guidance to help you understand what we look for in a reviewer (this takes approx 1hour)
  8. Assuming your reviews are up to scratch you are upgraded to Ubergeek Review team status, we’ll add you to Slack and you’ll start to receive messages from the system inviting you to carry out reviews. We pay you £25 for each peer review you perform and £10 for each express challenge you approve. We accrue all reviews and pay you the amount due at month end - either by bank transfer if you are in the UK or by Wise, Revolut or Payoneer.
  9. Once you are in the team we’ll add you to our Slack group, this notifies each team (JS_Ubergeeks for example) when a new solution has been submitted or Express Challenge has been created which needs reviewing.
  10. You can pick up as many or as few as you like, we don’t have a minimum you need to complete in a week or month, we also don’t guarantee how many you’ll be able to review as we are beholden to our clients’ candidates submitting. Some of our Ubers did write an answer someone posed on Quora on this point. All we ask is you complete a review within a few hours of starting it so we can get the results back to the candidate who will be waiting.
  11. Oh and lastly, we’ll send your UgerGeek T-Shirt and decal.

Sound exciting? Register to become an Uber Geek today Register now

Why should I join Geektastic to carry out code reviews?

Geektastic is a great way to earn a secondary income. You choose when you work and for how long. We pay you a flat rate for reviewing candidate’s submissions straight into your bank account at the end of the month. You also get to collaborate with other Uber Geeks. We call it earning and learning.

Can I work from home?

Of course, that’s the great thing about Geektastic, you can work from wherever you like.

Can I join the UberGeek Review Team from outside the UK?

We have Uber Geeks from all over the world, from Argentina to Australia, LA to Beijing.

I specialise in a programming language not covered by Geektastic?

We are always looking to add new programming languages. Please email hello@geektastic.comwith your details, and your chosen language and we’ll be in touch.

Do you have a cap on how many challenges I can review?

You are limited by the number of challenges the platform creates for you to review. There are client generated solutions (i.e. where they have invited a candidate to take a Geektastic challenge) or where a developer has joined our platform. As all challenges are anonymous you will not be aware of which type you are reviewing. The volume of challenges is driven by the number of clients inviting candidates, the number of developers joining the platform and how many other UberGeeks there are doing the reviews. Please note this is not a full time role as demand fluctuates.

I've been invited to take one of your code challenges, what next?

I am applying for a job and have been asked to take a Geektastic code challenge

You will receive an email from the system which contains instructions detailing what you need set up on your machine (this varies depending on your technology stack) and how long the challenge will take to complete. 

Once you are ready you follow the link in the invite to our site.

Once at Geektastic you can choose to start the challenge when it suits you.

All challenges are carried under time limited conditions (some are 2hours, others you can spend as long as a week working on your solution). Once you are ready to go you hit the ‘start challenge’ and the challenge is revealed.

Once completed you upload your challenge solution in a .zip file.

Are your challenges time constrained?

Yes, all challenges have a fixed time - otherwise they could run forever and that’s not good for anyone. They tend to fall into two categories, short time constrained challenges (usually 1-3hrs) or what we call ‘open ended’ (but what we mean is you have a week to 10 days to complete the challenge).

Before you start your challenge it will let you know how long you have to complete your challenge. Please give yourself enough time at the end of the period (i.e. when the clock starts going red on the page) to zip up your solution and upload it to the platform so it can be reviewed.

Do I have to use a browser based IDE?

Nope, you can use your own IDE.

We know how annoying it can be to be asked to take a code challenge, let alone have to code the solution is some unfamiliar, browser based IDE which is also recording your every move. That’s a bit like asking someone to take their exam on one of those crazy kneely chairs and use chalk to write your answers on a blackboard

When do I find out the results of the assessment?

We perform a line by line review, star ratings for categories like code quality, solution design and problem solving skills and provide high level summary points, then you receive an email from the system to take you to the review and also allows you to feedback your thoughts on the analysis.

What happens if I don’t complete the challenge in time?

We advise all candidates to submit whatever they have at the end of the period, regardless of whether they have finished or not. 

If you don’t submit in time it’s not all over. We do provide clients the tools to open up the challenge to allow you more time to complete it - so if you suffer the old ‘dog ate my homework’ scenario then please contact the person that invited you and they will be able to decide whether to open the challenge up again.

Do you allow multiple submissions?

You can upload multiple submissions during the challenge window. However we always assess the last submission so please ensure the last submission is your ‘final answer’.

What do I do if I have problems whilst working on my code challenge?

Please contact the person that issued the code challenge if you have any issues with your challenge, they can then contact Geektastic support if they can’t resolve the issue.