0% found this document useful (0 votes)
906 views

40 Side Project Ideas For Software Engineers - Codementor

This document provides 40 side project ideas for software engineers to improve their skills. It begins by explaining how side projects are important for developing skills and employability as a software engineer. It then discusses common barriers to starting side projects and suggests focusing on less ambitious but still worthwhile projects. The rest of the document lists 40 specific side project ideas organized into categories like computer science projects, personal finance tools, and games/simulations. Many of the ideas can be completed in a single weekend.

Uploaded by

JAIR
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
906 views

40 Side Project Ideas For Software Engineers - Codementor

This document provides 40 side project ideas for software engineers to improve their skills. It begins by explaining how side projects are important for developing skills and employability as a software engineer. It then discusses common barriers to starting side projects and suggests focusing on less ambitious but still worthwhile projects. The rest of the document lists 40 specific side project ideas organized into categories like computer science projects, personal finance tools, and games/simulations. Many of the ideas can be completed in a single weekend.

Uploaded by

JAIR
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

2/29/2020 40 Side Project Ideas for Software Engineers | Codementor

Tash Postolovski FOLLOW


Software developer and Psychology student.

40 Side Project Ideas for Software Engineers


Published Feb 01, 2018

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.

In my experience, this happens when we subconsciously artificially restrict ourselves.


For example, we may unintentionally limit the types of projects that we feel are ‘worthy’
as side projects.

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
Byto addCodementor,
using to your portfolio andtomake
you agree you aPolicy.
our Cookie better developer.
ACCEPT

Enjoy this post?  WRITE


331 A POST54
Computer Science Side Projects
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 1/11
2/29/2020
p j
40 Side Project Ideas for Software Engineers | Codementor

These projects are suited for engineers trying to beef up their computer science
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.

1. FTP Client (suggested implementation: web, desktop or CLI app).


Build a simple FTP client. As a bonus challenge, support secure file transfer.

2. HTTP Server (suggested implementation: any programming language you want to


master). To understand HTTP deeply, build an HTTP server. There are a number of
tutorials available to guide you through the process.

3. Build a simple operating system (suggested implementation: any programming


language you want to master). This is a project that is technically challenging and will
deepen your understanding of how computers and operating systems work. You

might wish to start with the free (and cleverly named) book, Operating Systems: From
0 to 1.

4. Build a web scraper (suggested implementation: any programming language you


want to master). Build a tool that takes a URL as input and returns the content of the
URL as HTML or XML.

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.

6. Implement a cipher (suggested implementation: any programming language you


want to master). Build a tool that takes a string of text as input and encrypts it using a
cipher, such as the Caesar cipher.

7. Create a text message downtime alerter (suggested implementation: app hooked


up to the Twilio API for sending text messages). Create an app that takes a URL as
input and sends you a text message when a request to the URL returns a response
code other than 200 (OK).

Personal Finance Side Projects


These projects will help you achieve a practical goal (get a better handle on your
finances), while also improving your software engineering skills.
By using Codementor, you agree to our Cookie Policy. ACCEPT

Enjoy this post?  WRITE


331 A POST54
8. A net worth calculator and tracker (suggested implementation: CLI, web, or mobile
) B ild l l k h i f ll f
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef h 2/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor
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
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.”

12. A financial independence calculator (suggested implementation: web app). Financial


independence is, essentially, saving and investing as much of your income as possible
so that you don’t need to work for money. While many financially independent
people continue to work, they can now focus on doing work that they love, rather
than work that pays the most. Build a tool to calculate, based on your: current
savings, investments, income, retirement accounts, and expenses, how far away you
are from financial independence. Some examples: FIREcalc, cFIREsim.

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.

Games and Simulation Side Projects


Most software engineers I know are fascinated by the world of game development,
graphics, and simulations, but don’t have a lot of experience with them. These projects
are small enough that you can set foot into this world without biting off more than you
can chew.

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
By algorithm. Use machine
using Codementor, learning
you agree techniques
to our Cookie Policy.to help you by training the
ACCEPT
program with a sample data set of names similar to those you want to generate.
Enjoy this post?  WRITE
331 A POST54
Otherwise, create your own lexical rules for how names are generated. For example,
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 3/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor

a name generating algorithm inspired by The Handmaid's Tale might stipulate that
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:

epic conway's game of life

16. A procedurally generated map maker (suggested implementation: browser-based


app). Create a browser-based application that allows users to procedurally generate a
terrain map based on a random seed. The map can be as detailed or as simple as
you’d like. This project is a good opportunity to learn about procedural generation.

17. A character generator (suggested implementation: browser-based or mobile app,


CLI). Create a tool that allows you to randomly generate playable characters for your
favorite role-playing games, whether they be tabletop games, like Pathfinder, or
video games, like Divinity: Original Sin.

18. Interactive fiction (suggested implementation: CLI). A fun way to get into game
development without having to worry about graphical assets, interactive fiction
renders theByworld for the player
using Codementor, youthrough
agree totext descriptions.
our Cookie Policy. The ACCEPT
Dreamhold is a good
example
Enjoy of interactive
this post? fiction with a useful ‘help’ command.  WRITE
331 A POST54

https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 4/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor

Artificial Intelligence Side Projects


AI’s usefulness in day-to-day software engineering is increasing by leaps and bounds. It’s
now easier than ever before to make your first forays into the world of Artificial
Intelligence.

19. An unbeatable Tic-Tac-Toe engine (suggested implementation: CLI program). For an


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 draw as its
worst-case outcome.

20. A chess engine (suggested implementation: an engine written in a programming


language you want to learn, or master). Try to write an engine that can play chess
against a human opponent using a Universal Chess Interface compatible GUI, such as
XBoard. See Stockfish as an example. For a less daunting challenge, you may wish to
focus on the behavior of just one piece, e.g., Knights.

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.

Entertainment Side Projects


These projects are for software engineers who want to work on something fun and
light-hearted.

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
By using Codementor, you agree to our Cookie Policy. ACCEPT
example, you might use the Open Movie Database API, paired with an HTML parser
like Enjoy this post? to build a program that alerts you to sci-fi movies
BeautifulSoup,  WRITE A POST
331 7.0
rated or 54
above on IMDB movies starring Amy Adams and/or any movie with an average
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 5/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor
above on IMDB, movies starring Amy Adams, and/or any movie with an average
rating of 8.0 or higher.

24. A spoiler blocker (suggested implementation: browser extension). Short of


implementing a total social media/internet/watercooler chat ban, it can be difficult to
avoid seeing spoilers for your favorite TV show… especially if that TV show is as
popular as Game of Thrones. Create a browser extension that removes all mentions
of your favorite show from any webpage loaded in your browser… or replaces them
with cute pictures of puppies.

Fun Side Projects


These projects are all different, from logging sensor data to finding new desktop
backgrounds for your computer. One thing they all have in common is that they’re fun,
and several of them will have you work with interesting APIs.

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!

27. Temperature logger (suggested implementation: Raspberry Pi, temperature sensor,


web app). Have your Raspberry Pi hooked up to a temperature sensor and send
temperature data from your home to a web app that saves the data to a database or
updates a CSV file. For bonus points, have a weekly temperature report emailed to
you. Other Raspberry Pi projects: home automation, home security.

28. Microlearning app (suggested implementation: web or mobile app). Build an


application that sends you one page per day about something you want to learn. This
could be a random page from Wikipedia, a page of React documentation, a Kanji
character, or a page from the CIA World Factbook.

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
By using bot, a botyou
Codementor, that reports
agree daily
to our on Policy.
Cookie the number of commits made to
ACCEPT
your team repos, or a daily stand-up reminder bot.
Enjoy this post?  WRITE
331 A POST54
30. Daily desktop background (suggested implementation: Unsplash API, scripting
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 6/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor
y p g ( gg p p , p g
language for your OS). Build an app that refreshes your desktop background with a
new image every day.

Coding Challenge Side Projects


Rather than building a project from scratch, these are collections of coding challenges to
improve your skills. If you want to get better at solving discrete problems, or improving
your chops with a new programming language, these are all good options.

31. Advent of Code (suggested implementation: any language you want to 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.

Daily Life Side Projects


These side projects have a practical purpose: they help with some aspect of your daily
life. Though they solve simple real-world problems (things like what to have for lunch),
the solutions can be as simple, or as complex, as you’d like.

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


By using implementation:
Codementor, mobile
you agree to our app).
Cookie One of ACCEPT
Policy. the hardest things
about dating, or being in a long-term relationship, is deciding where toWRITE
go on dates.
Enjoy this post?   331 A POST54
Build a tool that scours restaurant reviews, event calendars, and other data for date
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 7/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor

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.

37. ‘Bring your umbrella’ notifier (suggested implementation: mobile app). Build a
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 in your area that
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.

Data Side Projects


These projects will improve your ability to work with data. Software engineers work with
ever-larger amounts of data. These projects will help you learn how to collate, parse,
and analyze data with confidence.

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.

40. Enter a data science competition (suggested implementation: R or Python). Kaggle


hosts a number of data science competitions featuring real-world data sets and hefty
cash prizes. You’ll also often be tasked with solving real-world problems like: how to
classify toxic online comments, forecast restaurant visitors, or recognize objects from
space.

Share Your Side Project


By usingthings
One of the toughest Codementor,
aboutyou agree to
working onour Cookie
a side Policy.is getting
project ACCEPT
anybody other
than you, your
Enjoy thisspouse,
post? and your pet cat Millie to appreciate it. Pleaseuse the comments
WRITE
331 A POST54
on this article as an opportunity to get some love for your latest side project. Share a
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 8/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor
pp y g y p j
link to what you’re working on, and let us know:

What has been the biggest challenge while working on your side project?

What’s one thing you’ve learned working on your side project?

What tips would you give to someone else starting a similar side project?

Software engineering Software development

Enjoy this post? Give Tash Postolovski a like if it's helpful.

 331 54  SHARE

Tash Postolovski
Software developer and Psychology student.

FOLLOW

54 Replies

Leave a reply

Daniel Moxon a month ago 


By using Codementor, you agree to our Cookie Policy. ACCEPT
I enjoyed reading through this list. I am interested in playing around with the
Enjoy this post?  WRITE
331 A POST54
Conway’s Game of Life simulations. I recently just finished building V1 of my
https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 9/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor

heatmapper project - https://github.com/dcmox/heatmapper and have been


looking for something else that’d be fun to play around with!

 Reply

Jeffrey McAnarney 2 months ago 


I have never seen such a comprehensive, categorized, but concise list of
interesting ideas for side projects. Thanks for helping me out of my analysis
paralysis!

 Reply

Arushi Sharma 3 months ago 


A list of amazing side projects. However, I wish to work on a side project that
involves data processing and visualisation.
Any ideas for the same?

 Reply

Show more replies

Ketan Bhatt

Build Systems with Speed and Confidence by Closing


the Loop First!

I re-learnt something recently: the importance of closing the loop on a system you are
trying to build, as quickly as possible, and then adding the juicy bits later (Thank you
Kesha for helping me with the concept 😊).

A completely finished “loop” is when you can provide the required input to your system,
and it produces the desired output (or side effects, if that’s how you like it). The “Close
the loop first” technique is about closing this loop as fast as possible by creating a
barebones version of it first, providing all or some required inputs, and generating a
partial form of the desired ... READ MORE
By using Codementor, you agree to our Cookie Policy. ACCEPT

Enjoy this post?  331 54

https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 10/11
2/29/2020 40 Side Project Ideas for Software Engineers | Codementor

https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef 11/11

You might also like