What makes a great Python Developer?
What makes a great Python Coding Challenge?
Python Coding Challenges
At Geektastic, we try to craft coding challenges that go beyond the contrived algorithm tests that are commonplace elsewhere, and actually try and simulate writing production level code to solve realistic problems. Our Python coding challenges are no different in that respect. A candidate taking a Python challenge with us will get to demonstrate generic skills such as solution design and architecture, problem solving and computer science fundamentals. But every Python challenge also rewards those candidates who are familiar with the language and its standard library ecosystem. A strong Python developer knows what parts of a problem can be delegated to an existing function, and when it is time to actually go ahead and invent the wheel.
Our Python programming challenges contain high-level requirement specifications and some skeleton code to get the candidate started. Leaving it up to every individual to choose a solution approach that they feel best fits them. This not only matches many real world requirements, but also allows candidates to show off their knowledge of Python conventions and the Python standard library.
Bulb hired 70 developers in 12 months using Geektastic’s assessments, saving 58 days of engineering resource
- 70Engineers hired in the last 12 months
- 44Hours per week of engingeering time saved
- 50%Reduction in time to hire
- 408Technical assessments outsourced
Would you like to license a Python code challenge to analyse the Python skills of your candidates?
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.
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, Booking.com 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?
Frequently Asked Questions
So what is Geektastic? I hear it’s more than a technical assessment platform
Let’s face it - the current process for hiring software engineers has (lots of) room for improvement.
At its core Geektastic is a platform that manages code challenges. We believe a candidate is worth more than a score and humans perform much better reviews than machines.
There is more to coding than solving an algorithm.
We help employers and recruiters assess the technical skills of software engineering candidates through deeply insightful, code challenges.
We have built our own unique bite-size Express Code Challenges for our developer community to enjoy before they commit to taking our 2 hour Peer Review Take Home challenges.
We also help match developers from our community with employer’s roles. Because our community take code challenges to complement their profile they can show off their skills to potential employers.
The very best engineers in our community (those that ace our code challenge with 4-5 stars across the board) join our well paid UberGeek Review Team and earn a secondary income reviewing code challenges in their spare time (£25 per 30 minute review).
Our UberGeek review team also approve express code challenges which have been created by the community just to make sure they are 100% - we pay £10 for each express code challenge reviewed and published.
What programming languages does Geektastic cover?
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.
I am a developer, please tell me how Geektastic works?
So why should I join Geektastic as a Developer?
Good question! We welcome developers from all over the world to join our fast growing community. 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
- You can earn a secondary income doing code reviews in your spare time. We pay £25 per 30 minute review peer review and £10 per express code challenge review.
- 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.
- You can benchmark your skills against a global developer community. We show you where you compare to other developers in our global community.
- You can create and share Express Code Challenges with our community. Once you have taken a couple you an start to create your own. We have created some guidelines you can read here.
I’m sold. So what’s the process for a Developer joining Geektastic?
- To benchmark your skills, to join the paid review team 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.
- 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 peer review code challenge - we use these to assess your all round programming skills, if you ace the peer review you are in the paid review team.
- If you are looking for a new role you will need to set yourself to ‘actively’ or ‘passively’ looking. This will mean you start matching with roles on the platform. We have signed an exclusive partnership with a tech recruiter called Third Republic. Our matchmaking algorithm start 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?
How do I take a peer review code challenge to try out for the review team?
First you have to complete 20 Express Code Challenges in a given 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 Peer Review challenge. We are looking for a developer to rank in the top 5% globally before we can open up a peer review.
Can I share my review with companies who aren’t yet on the Geektastic platform?
Of course. You’ll be investing sound 30 minutes on our Express Challenges or 2 hours of your precious time completing one of our peer review 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 to 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?
What step 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).
- First you need to register and validate your email (1 minute)
- Create a profile - we are mainly interested in your core programming languages so we can allocate you the appropriate qualifying challenge (2-5 minutes)
- 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).
- If you get in the top 5% you will open up a peer review qualifying challenge.
- Take one of our peer review qualifying code challenges (2 hours).
- Our review team will then thoroughly evaluate your solution and provide you a detailed review (we aim to have this back in 24-48 hours)
- If you get voted to join the team (you’ll need to be 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)
- 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.
- 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.
- 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.
- 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 [email protected]with 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.
Why is Geektastic the best technical assessment platform?
How much does this amazing service cost?
Prices start at £250 per month - no annual fees, you can pay everything monthly (or €300 or $375)
Each review done by our review team is £50 per review (or €60 or $70)
You can license our challenges from just £20 per month (or €24 or $30)
All our pricing can be found here Geektastic Pricing,
Does Geektastic use machine based automated candidate testing?
Nope. We use real human reviewers to perform our reviews. Please have a read of this blog post for more on our thoughts about how to perform code challenges
How long does it take to review a candidate’s code challenge submission?
Most come back the same day. We aim to complete all reviews in 24 working hours but when throughput volume is high we can take up to 48 hours to respond.
Do you integrate with third party ATS platforms?
You’ll need any account with both Geektastic and Greenhouse/Workable to operate our code challenges on their platform.
Once you are ready to start sending out invites you just request and 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.
Can I try before I buy?
Yes, we offer a free trial to test out our assessments before you buy. You can have two free assessments on the house.
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 candidate you need to register as a Hirer and either license a Geektastic Challenge or create a custom code challenge.
You then invite them to take a challenge by entering their email, first name and surname and the challenge you want them to take into Geektastic.
The system automatically triggers an email to the candidate asking them to take part in the challenge.
Each challenge usually requires certain tools such as an IDE to be set up on the user’s machine in advance of the challenge (the challenge instructions warn them about this prior to the clock starting to tick away).
The candidate also needs to find a time window (usually two hours) where they can log into the platform and carry out the challenge. Once they have completed the challenge they upload their solution as a zip file.
Can I use my own challenges rather than the Geektastic challenges?
Yes, you can upload your own challenges using our code challenge builder tool. 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'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.