A strong Python developer will empower your team and make sure your final product is of the highest quality. But first, you need to find an experienced candidate to hire.
Although the web development sphere has changed a lot over the years, hiring a Python developer is as troublesome as it was eight years ago.
Python is one of the most popular programming languages. But every time you want to hire a Python developer, choosing a suitable candidate can be a challenge.
To help you with your choice, we’d like to share our experience on what to look for in portfolios, what skills to check, and what questions to ask.
#1 Ask About Their Python Education
Is traditional education important?
According to Stack Overflow, around 69% of developers are partly self-taught, while 13% are exclusively self-taught. Only 2% of developers hold a Ph.D., and just half have a BS/BA in computer science or a related field.
The roadmap to becoming a Python developer doesn’t always include getting a degree in computer science. A degree is nothing but proof that a graduate put sweat and tears into studying.
And a degree is no longer a requirement to get a job. There are ways to acquire the knowledge you need to get started as a developer both online and offline.
When a candidate is partly self-taught, check what Python courses, hackathons, and traineeship programs they’ve participated in.
Also, ask them about workshops and conferences. This will help you assess their knowledge, skills, and interests and decide if they’re a match for your project.
#2 Ask to See a Portfolio of Python-Related Projects
A portfolio is a must-have for a developer. An experienced Python developer should be able to present potential clients with an up-to-date portfolio that’s easy to understand and accessible.
By checking a developer’s portfolio, you can identify if a candidate is a match for your requirements.
- Check for Python-based projects
- Identify projects similar to yours
- Find out about the challenges the developer faced and how they overcame them
If you’re considering hiring an agency, check their case studies. Pay attention to details on clients’ requirements and technology stacks.
Keep in mind that backend freelancers usually don’t have case studies or a portfolio.
You can, however, assess their skills during an interview by asking Python-related questions, requesting they complete a minor task online, and asking about what projects they’ve worked on, what problems they’ve faced, and how they’ve coped.
#3 Find Feedback From Previous Clients
A portfolio and case studies may not be enough to decide if a candidate is a match, which is why you should ask candidates for feedback from previous clients. Your main task is to find out if clients were satisfied with the developer.
On average, agencies provide extensive information. If you’re looking to hire freelance developers, you can find more information about them on freelancing communities:
- PeoplePerHour offers a feedback rating, which is a reliability indicator based on a contractor’s track record. Check a freelancer’s profile to see feedback scores on various projects. There’s also an overall feedback rating that shows the percentage of positive reviews.
- Upwork gives the best freelancers a top-rated status, which is an indicator of a job success score of 90% or more. The reputation of top-rated freelancers is a reflection of their success with multiple clients.
- Toptal is an elite platform connecting the best developers with top companies. It shows feedback from previous clients on a developer’s profile.
When there are too many developers to choose from, ratings and feedback on such platforms help to filter out unfit candidates.
#4 Prepare a List of Possible Interview Questions
Have a list of questions you want to ask prepared before the interview.
Some potential questions may include:
- What are the main benefits of Python over other programming languages?
- What is static and dynamic typing in Python?
- What is an exception in Python and how does exception handling work?
- Explain object-oriented programming in Python.
- How do you manage memory in Python?
- What are the differences between a tuple and a list?
- What data types does Python support?
- How do you create a dictionary in Python?
- What is inheritance, and can you provide examples of it?
- What is the Python Standard Library and what are some of its useful modules?
- How does Django/Flask/Pyramid work? (Ask about the framework you want to use for your project.)
- How can you convert: a list into a tuple? a list into a set? a list into a string?
- What is a negative index?
- What are the types of operators in Python?
- What are the environment variables?
This list is only a guideline but these questions will help an interviewer get an idea of a developer’s skills.
#5 Know What Technical and Soft Skills You’re Looking For
There are two categories of skills that are equally important: technical skills and soft skills.
Take a look at what skills we believe every candidate should have.
- Python: Solid knowledge of the programming language, its semantics, syntax, threading limitations, data structures, etc.
- Frameworks: Knowledge of the framework required for the project (Popular frameworks include Django, CherryPy, web2py, Pyramid, Flask, Bottle, and TurboGears.)
- ORM libraries: Expertise in popular Python libraries such as Django ORM, Tryton, SQLAlchemy, web2py, and Orator
- Ecosystem: Knowledge of Python’s ecosystem and the main development tools (debuggers and editors)
- Version control systems: Experience working with data control systems and the ability to keep track of various code modifications
- Multi-process architecture: The ability to write threads and manage them to craft high-performance applications
- RESTful web APIs: Knowledge of how to develop RESTful APIs with Python to integrate apps with other elements
One nice-to-have technical skill is a presence in the coding community. It’s nice when a developer acquires new Python-related information from coding communities. Python communities help developers stay connected with coders from different countries.
Active Python communities include DevShed, Stack Overflow, Python.org, and CodingForums.
- Communication: The ability to effectively interact with coworkers, clearly convey ideas, discuss the project’s technical details, and share the project vision
- Teamwork: The desire to contribute to achieving common goals, a willingness to put the interests of the team ahead of personal interests, and the ability to deal with conflict
- Time management: The ability to set priorities, manage time, and meet tight deadlines
- Motivation: The motivation to work well and a willingness to accept guidance, enhance skills, and learn new technologies
- Critical thinking: An interest in testing different scenarios and choosing the most efficient when faced with numerous possible solutions
- Lack of ego: A willingness to accept criticism, learn from feedback, and be humble
Soft skills are hard to learn. Some interviewers believe that once a developer has the required soft skills, technical ones come naturally.
#6 Give Coding Tests
Finally, there are live coding tests. They’re an important part of screening a developer.
Thinking and communicating while coding in front of an interviewer is stressful. But a live coding test provides the most reliable information about a candidate's skills.
A candidate should code their way through real problems for 15 minutes to an hour. This can be done via screen sharing: the developer writes a brief while the interviewer observes and assesses programming skills.
You can set up programming tests using a platform like CodinGame, which lets you test an applicant in Python or various other technologies.
The CodinGame platform analyzes a developer’s code automatically. Then you can download a report or share it. Such coding challenges save time.
Choose the Right Developer for Your Company
A Python developer’s skills come into play at all stages of project development. So having an experienced developer on your team is a must.
To succeed, check the candidate’s application and portfolio for related projects. Ask for reviews from previous clients and do a thorough research on freelance communities. Interview the candidate, assess the required skills, and set up programming tests. These steps will lead you to the developer your project requires.