40 Side Project Ideas for Software Engineers | Codementor (2024)

Tash Postolovski

Follow

Software developer and Psychology student.

Published Feb 01, 2018Last updated Jul 30, 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 to add to your portfolio and make you a better developer.

Computer Science Side Projects

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.

  1. A net worth calculator and tracker (suggested implementation: CLI, web, or mobile 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.

  2. 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.

  3. 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.

  4. 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.”

  5. 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.

  6. 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.

  1. 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 program with a sample data set of names similar to those you want to generate. 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 names for Handmaid women should start with 'Of', and end with a random male name, e.g., Ofpeter.

  2. 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

  1. 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.

  2. 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.

  3. 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.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  1. 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.

  2. 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.

  1. 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.

  2. 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!

  3. 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.

  4. 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.

  5. 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.

  6. Daily desktop background (suggested implementation: Unsplash API, scripting 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.

  1. 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.

  2. 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.

  3. 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.

  1. 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.

  2. 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.

  3. 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.

  4. ‘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).

  5. 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.

  1. 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.

  2. 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.

One of the toughest things about working on a side project is getting anybody other than you, your spouse, and your pet cat Millie to appreciate it. Please use the comments on this article as an opportunity to get some love for your latest side project. Share a 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?
40 Side Project Ideas for Software Engineers  | Codementor (2024)

FAQs

How do you get ideas for side projects? â€ș

How to come up with side project ideas 💡
  1. Reflect on your day-to-day. Often the best ideas come from one's own experiences. ...
  2. Ask your friends. ...
  3. Explore emerging platforms. ...
  4. Browse Product Hunt. ...
  5. Explore GitHub. ...
  6. Turn a feature into a standalone product . ...
  7. Go to a hackathon. ...
  8. Read the internet.

What are projects in software engineering? â€ș

A Software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product.

What are side projects in CS? â€ș

Programming side projects are apps, websites or engines that you create by yourself and on your own time. These programs typically show off your skills as a programmer, which can help make you a more qualified job candidate. Programming side projects can be programs that are specific to the industry you want to enter.

Which topic is best for final year project? â€ș

Final Year Project Ideas Worth Trying
  • Movie recommendation system. ...
  • Fraud app detection software. ...
  • Stock price prediction system. ...
  • Credit scoring system. ...
  • Online examination and evaluation system. ...
  • Fitness activity recognition for smartphone. ...
  • Handwritten digit classification system. ...
  • Personality prediction system.

What are some examples of projects? â€ș

Below are some examples of project:
  • Digging a well for the extraction of a natural resource in Nebraska.
  • Building a wooden house somewhere in Spain.
  • Developing a cloud-based marketing platform for startups.
  • Establishing a non-profit organization for COVID-19 relief and recovery efforts.
  • Renovating the kitchen.

What are project ideas? â€ș

Project Ideas are where you begin documenting proposals for future research grant applications. At this phase, you are documenting key information related to the project, as well as identifying collaborators, potential funders, budget information, and metadata related to the project.

What are creative projects? â€ș

Creative projects are the tangible products of creative behavior and creative thinking. If we want students to produce creative works, we need to structure student work so that the outcome is a natural result of these behaviors.

Which topic is best for mini project? â€ș

Mini Project Ideas For Engineers
  1. Make Your Own Dual-Voltage Rechargeable Torch Light Line Follower. ...
  2. GPS On ATmega. ...
  3. PC Based GPS. ...
  4. Low Power Inverter. ...
  5. LPG Leakage Detector. ...
  6. Geyser Timer Circuit. ...
  7. Automatic Off Timer For CD Players. ...
  8. Doorbell Cum Visitor Indicator.

What are the types of IT projects? â€ș

9 Types of IT Projects to Outsource
  • Staff Augmentation. You may well have a stellar IT team — but just not enough people to complete all the projects on your plate. ...
  • Software Development. ...
  • Web Development. ...
  • Technology Installation. ...
  • Cloud Computing. ...
  • Maintenance and Support. ...
  • Communication. ...
  • Cybersecurity.

What are the types of software projects? â€ș

10 Types of Software Development — Explained
  • Frontend Development. Frontend developers work on the part of the product with which the user interacts. ...
  • Backend Development. ...
  • Full-Stack Development. ...
  • Desktop Development. ...
  • Web Development. ...
  • Database Development. ...
  • Mobile Development. ...
  • Cloud Computing.
Oct 26, 2020

Are side projects good? â€ș

Side projects allow you to experience and learn new things that your daily work might not. They help you learn new techniques or, through deliberate practice, improve your current skills. They encourage your creativity. Side projects allow you to work without any constraints.

Should I put side projects on resume? â€ș

If you have a significant amount of side jobs or clients, consider listing them under one company name or category to keep your resume streamlined and uncluttered. Side projects are a great way to round out your skillset and give you an advantage with employers.

What are side projects in university? â€ș

What Are Side Projects? Before we go any further, what is a side project? I define it as a personal project that you work on outside of your “day job.” Or, if you're in college, something you work on outside of class. A side project is distinct from a side hustle, in which the goal is to make extra money.

What are the trending topics for project? â€ș

The Most Important Project Management Trends for 2022
  • The expansion of Artificial Intelligence (AI) & Automation. ...
  • Inclusion of hybrid project management approaches. ...
  • The impact of emotional intelligence (EQ) ...
  • More focus on data analytics and numbers. ...
  • Advanced project management tools and solutions. ...
  • Increased remote working.

Which project is best for students? â€ș

Project Ideas for Students
  • Learn How to Develop A Digital Clock Using C Language. ...
  • Sticky Note number matching. ...
  • Road accident analysis using machine learning. ...
  • Food Image Detection Using CNN and Machine Learning. ...
  • Oil Spill STEM Activity. ...
  • Loan prediction using machine learning. ...
  • Crystal suncatcher - STEM activity for kids.

What is a simple project? â€ș

Simple projects involve only one or a few people over a short time. Typically, simple projects will have few tasks dependent on other tasks, and will be relatively straightforward and easy to coordinate.

What is real life project? â€ș

Real Life is a project that aims to give students and faculty the chance to talk together about how to connect all the parts of our lives in a meaningful way. Based in the Center for Spirituality, Real Life takes the ancient, rich idea of vocation, or calling, and brings it into the 21st century.

What are mini projects? â€ș

A mini project is an assignment that you try to complete at the end of every semester ,especially in engineering to strengthen the understanding of your fundamentals through effective application of theoretical concepts.

How do I select a mini project? â€ș

1. Analyze the current technology trends: Any mini project that is done with the old and outdated technologies will not have any futuristic scope. As mini projects provide you an effective platform to get skilled on technologies, use it to learn latest technologies that are currently trending.

What is the hundred day project? â€ș

Every year, thousands of people all around the world commit to 100 days of creating. Anyone can participate (yes, that means you!). The idea is simple: choose a creative project, do it every single day for 100 days, and share your process on social using the hashtag #The100DayProject.

How do I write a project idea? â€ș

Steps to writing your own project proposal
  1. Step 1: Define the problem.
  2. Step 2: Present your solution.
  3. Step 3: Define your deliverables and success criteria.
  4. Step 4: State your plan or approach.
  5. Step 5: Outline your project schedule and budget.
  6. Step 6: Tie it all together.
  7. Step 7: Edit/proofread your proposal.
May 18, 2022

What is a genius hour project? â€ș

Genius hour is where you allocate 1 hour of classroom time each week for student-led projects. The beauty of this time is that not only that this can very be much a time that student's look forward to, it also can be a chance for you to identify hidden student skills or develop their skills further!

Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated:

Views: 6482

Rating: 4.2 / 5 (43 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.