Software development job searches can be frustrating. You need the right experience to land the job, but can’t get that experience without the right job. A solution? Do some personal projects, ideally ones that let you flex some data science or scripting language skills for a practical goal.
Given Python’s prominence as a startup programming language, it is a good choice for doing showcase personal projects. Here are a few python project idea suggestions which will enhance any python developer resume.
Building The Perfect Python Resume
Before we get too deep into specific projects, I want to challenge you to look at your python resume from the perspective of a hiring manager.
Here’s the fundamental issue: most new python programmer resumes look very similar. Sure, you know Django. The obligatory open source Github repo (most of which are a complete waste of time, by the way, utterly meaningless forks followed by a few hours of random mauling). A token machine learning demo. Look, Mom, I write Python code!
Um Yeah. No offense, but you all look the same.
So what stands out?
Candidates with projects that I can see being immediately applied to real business issues. Ideally ones within my own organization.
This is why internships are so valuable. Not just for the name, but for the PERSPECTIVE. You have a priceless opportunity to learn about the pains of managing IT operations within a real business.
That’s what most Python bloggers miss, as they pontificate about perfect coding conditions. Sure, I love waxing philosophical about PEP 8 too and the strategic advantages of using Python. But that probably won’t get me hired.
Focus on the pain. My pain. I’ll hire you for that.
Project #1 – Basic Developer Operations
If you’re working on an active server application, you’re going to be deploying a lot of code. You’re probably going to be spinning up new servers as well along the way. This type of experience is immediately useful to a potential employer.
Write a python script or two that shows you’re familiar with how to manage the infrastructure and deployment side of the project. Ideally for a real web application that you have in production.
The details of this project will depend on the type of environment you have access to. Hopefully you have access to something through school or work. Pro Tip: if you’re aware of the details of the typical environment of your target employer (eg. they like Amazon), consider investing in a small account on that server to create relevant scripts.
Project #2 – Custom Content Aggregator
Decentralized information sources are the bane of many business users existence. The most obvious use case is consolidating data from multiple news websites. A less obvious, but even more valuable, use case is scraping together data from various web based lists and shared drive directories.
Consider creating a python program that handles this task, a home grown content aggregator. For bonus points, build it into a web application which automatically updates behind the scenes.
Include basic filtering and a ranking scheme in the application. The project should show the most important or significant items first. (in your view)
You can have some fun with this. Sports scores are one potential option, always a crowd pleaser. A content aggregator for a specific industry or niche is another option (grab multiple feeds and filter them down the most relevant results). If you have access to interesting real time data with an appropriate feed, that could be cool as well (eg. finding the best spot to grab a table for lunch).
Trust me, you’re going to do a lot of automation as a software engineer.
Project #3 – Web Development
Here’s the problem with doing a web development project for your python resume: people generally judge the work based on the visual appearance and UX design, which has little to do with Python.
A basic Python web application isn’t very sexy without some decent front end design skills. Be wary of Bootstrap: while that will quickly elevate you to a B+ mark on front end design, it won’t really set you apart (since everyone does it).
The alternative is to build a basic front end for some really cool work on the back end side, such as the content aggregator or a machine learning application. If you take that approach, keep the web application simple and invest your awesome points in the the back end. Look to see if you can integrate basic graphics or visualization using a common library such as Google Charts.
Project #4 – Real Machine Learning / Data Science
Ah, so you’re a data scientist? You wish to show off a data science project such as sentiment analysis or a neural network? Sigh, get in line…
Look, here’s the fundamental problem with 90% of the personal data science project ideas that I see: they’re completely contrived. Little toy projects using someone else’s data to showcase basic tools. Completely unimpressive.
There are tons of things you can go develop using real data, real world analytical problems that are within your grasp and create real value.
Stop trying to show your python programming language skills. Focus on domain expertise. You’re going to be ultimately judged by business people, not computer science professors.
A couple of real world data science projects:
- Improving app engagement (web or phone)
- Analyzing success factors for blog or Twitter posts (which ones got the most action)
For machine learning, look at:
- Classifiers (fraud / no fraud is a good one)
- Bot network Hunting on Twitter
All of these are potentially practical from the perspective of a potential employer.
Artificial intelligence and deep learning is a bit fuzzy right now, so I don’t have any solid projects to recommend. But the same principles apply there. Don’t build toys to show off programming skills. Focus on real data, for real applications.
Prelude to Professional Experience
Good projects are a practical prototype of what you intend to deliver to a potential employer. Not only do they showcase your technical skills for a Python job, they demonstrate awareness of the business problems you’re being hired to solve.
Be sure to highlight that in your Python interview.