Beruflich Dokumente
Kultur Dokumente
WRITE A POST
One of the most important ways to develop your skills and improve your employability
as a software engineer is to work on side projects. These can run the gamut from open
source projects to helpful tools and scripts, to fun toys.
While some of our colleagues always seem to be working on a new side project, it’s not
so easy for the rest of us. We want to work on a side project but struggle to come up
with a good idea.
By setting the bar too high — like aiming to create a successful, popular, and original
open source library — we rob ourselves of the opportunity to have fun and learn
something from a less ambitious, but still worthwhile, side project.
In this post, I want to help fight “side project paralysis” by offering up 40 side project
ideas that any software developer can start in one weekend. The emphasis here is not
on projects that are going to change the world. Instead, these are fun projects to give
you something to add to your portfolio and make you a better developer.
Enjoy this post? 282 49
Computer Science Side Projects
https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 1/11
31/05/2019 40 Side Project Ideas for Software Engineers | Codementor
These projects are suited for engineers trying to beef up their computer scienceA POST
WRITE
fundamentals. They’ll help you learn more about specific aspects of computing, like file
transfer and operating systems design. These projects can be particularly useful for self-
taught developers who’ve focused more on practical skills than comp sci fundamentals.
5. Bandwidth monitor (suggested implementation: live updating CLI tool). Build a tool
to track how much data you have downloaded or uploaded on the internet. Have it
email you a weekly report of your usage. As a bonus challenge, predict peak usage
times.
app). Build a calculator you can use to track the rise or fall of your net worth on a
monthly basis. You can use something like this net worth worksheet from Charles
WRITE A POST
Schwab to guide you. Optional extension: have it send you a 12 month report for the
previous year on the first of January each year.
9. A tax forecaster (suggested implementation: web app). This will be particularly useful
if you do any freelance software engineering. Build a tool that takes your freelance
earnings as input and then predicts your expected tax liability for the rest of the
financial year. Make it smart enough to predict periods of higher or lower demand for
your services, and adjust accordingly.
10. A deal finder (suggested implementation: web app with mobile notifications). Build a
simple web app to notify you when an item you covet goes on sale for a good price.
You could use a web scraper to pull the item’s product page and notify you of any
price changes.
11. An expense tracker (suggested implementation: web or mobile app). Create a simple
interface you can use to add and categorize your expenses. Generate monthly
reports based on the inputs and write custom alerts for things, like, “spending too
much money on coffee… as always.”
13. A bill splitter (suggested implementation: mobile app). Build a simple tool to help
you and your friends split bills when you go out to eat together.
14. A random name generator (suggested implementation: CLI, web, or mobile app).
Build a random name generator (example) that creates unique names on the fly,
based on an algorithm. Use machine learning techniques to help you by training the
Otherwise, create your own lexical rules for how names are generated. For example,
a name generating algorithm inspired by The Handmaid's Tale might
stipulate that
WRITE A POST
names for Handmaid women should start with 'Of', and end with a random male
name, e.g., Ofpeter.
15. Conway’s Game of Life (suggested implementation: any platform capable of real-
time graphical rendering). Conway’s Game of Life simulates the lives of simple cells
that obey algorithmic laws. This video explains how the game works and includes an
example of one possible result:
18. Interactive fiction (suggested implementation: CLI). A fun way to get into game
development without having to worry about graphical assets, interactive fiction
renders the world for the player through text descriptions. The Dreamhold is a good
example of interactive fiction with a useful ‘help’ command.
excellent first AI project, try to write an engine that cannot be beaten at Tic-Tac-Toe.
You can achieve this by implementing this strategy, which produces a WRITE
draw as its
A POST
worst-case outcome.
21. A niche chatbot (suggested implementation: web app). Some of the greatest minds
in the world are working on chatbots that respond in lifelike ways. It’s an incredibly
difficult challenge, but, by reducing the scope of your chatbot, you have a side project
that is more approachable for evenings and weekends. Create a chatbot that
produces real-sounding responses based on a niche topic that you’re passionate
about: your favorite band, video game, sports team, or TV show. Leverage an existing
library to help you, such as ChatterBot.
22. A spam classifier (suggested implementation: any programming language you want
to master). Build a tool to classify whether an email is or isn’t spam based on the
content alone. You can use this public data set of emails from the Enron investigation
to test your spam classifier.
23. A movie showtime finder (suggested implementation: web or mobile app with email
or text message notifications). Build a program that notifies you, by text or email,
about showtimes for potentially interesting movies playing at your favorite cinema.
The concept of an 'interesting movie' can be derived using machine learning (if you
watch enough movies to have good training data), or a handcrafted algorithm. For
example, you might use the Open Movie Database API, paired with an HTML parser
like BeautifulSoup, to build a program that alerts you to sci-fi movies rated 7.0 or
above on IMDB, movies starring Amy Adams, and/or any movie with an average
rating of 8.0 or higher.
25. Pixel art generator (suggested implementation: any programming language you
want to master). Build a tool that takes an image as input and samples the image to
produce pixel art as output. If you want to improve your front-end skills, generate the
resulting pixel art using CSS.
26. Music suggestion tool (suggested implementation: build a wrapper for the Spotify
API). Create a tool that tracks the music you listen to and generates a playlist with
similar qualities, but of songs you haven’t heard before. The Spotify API provides all
of the tools needed to extract what you’ve listened to and create a playlist — the
recommendation engine is up to you!
29. Slack bot (suggested implementation: Slack API). If you or your team use the popular
chat app Slack, build a bot to make some aspect of your (or your team’s) life easier.
Ideas: a coffee order bot, a bot that reports daily on the number of commits made to
your team repos, or a daily stand-up reminder bot.
31. Advent of Code (suggested implementation: any language you want toWRITE A POST
practice).
Advent of Code challenges occur every year in the days leading up to Christmas. They
include lots of fun programming challenges that can help you develop your chops in
a programming language you’re learning or one you want to master. The challenges
from 2015, 2016, and 2017 are still available.
32. Kaggle’s Titanic Challenge (suggested implementation: Python or R). Kaggle offers a
fascinating challenge to introduce you to the basics of machine learning with Python
or R: use a real data set from the Titanic passenger log to predict which passengers
were most likely to survive the disaster.
33. Project Euler (suggested implementation: any programming language you want to
practice). Project Euler challenges are dedicated to exploring the marriage between
mathematics and programming. Use programming tools to solve various
mathematical challenges.
34. Lunch picker (suggested implementation: CLI, web or mobile app). If you’re a working
software engineer, you’ve probably wrestled with one of the toughest questions in
software development… where should I have lunch? Your lunch picker is the tool
you’ll turn to to answer this question. It can be super simple and pick from a range of
options you know you like at random, or more complex — pulling in data from
Google Reviews and taking into account: location, price, and type of cuisine.
35. Date planner (suggested implementation: mobile app). One of the hardest things
about dating, or being in a long-term relationship, is deciding where to go on dates.
Build a tool that scours restaurant reviews, event calendars, and other data for date
idea suggestions.
36. Tool to simplify your email newsletters (suggested implementation: scripts hooked
up to a mail server). If you’re like me, you receive way too many email newsletters
every week and they clutter up your inbox. Instead of unsubscribing from all of them
in a fit of rage, build a tool that captures these emails and compiles them all into a
single email that is sent once a week.
simple mobile app that sends you a phone notification in the morning telling you if
you should bring your umbrella to work (e.g., if it is going to rain inyour areaAthat
WRITE POST
day).
38. Collection tracker (suggested implementation: web or mobile app). Build a tool to
keep track of something you collect. You could keep track of: the value of the item,
the year it was made, its condition, and its location.
39. Create and automatically update a data set (suggested implementation: web
scraper input to CSV output). Build a tool to automatically build and update a data set
about something you’re interested in. Suggested data sets: stats about your favorite
sports team, flights to destinations you want to visit, meteorological data from where
you live, or anything else that interests you. The most important thing is that the data
set should require constant updates as new data is generated — and should occur
automatically. For example, as soon as your sport’s team’s results are posted on a
website, the data should be automatically scraped and added to your data set.
What has been the biggest challenge while working on your side project?
What tips would you give to someone else starting a similar side project?
https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 8/11
31/05/2019 40 Side Project Ideas for Software Engineers | Codementor
282 49 SHARE
Tash Postolovski
Software developer and Psychology student.
FOLLOW
49 Replies
Leave a reply
Reply
https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 9/11
31/05/2019 40 Side Project Ideas for Software Engineers | Codementor
WRITE A POST
Manjunath A 3 months ago
Anybody interested to team up for learning Cloud based technologies using
modern design patterns, email me to manvekar@gmail.com
Reply
Aditi Tipnis
Today I had to call an API with for a bunch of ids and get the results for each of those
ids. Now the problem is, I need to collect the results from all of those API calls. And I did
not want to use plain old for loop for this today.
So here’s how I did it. (Skip to the end for full code)
Promise
new Promise(executor)
https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 10/11
31/05/2019 40 Side Project Ideas for Software Engineers | Codementor
new Promise(executor)
WRITE A POST
executor
A function that is passed with the arguments resolve and reject. The executor
normally initiates some asynchronous work, and the ...
READ MORE
https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 11/11