10 Advanced Projects to Build in 2021
Tags: productivity, systems, career, c
Published: 2021-01-28 05:51:56

I've curated a list of 10 advanced projects to complete in 2021. Most of these are systems programming projects, but there are a few other AI and networking projects in the list. When I say these projects are advanced, they are **advanced**. I would recommend being very familiar with the programming language you choose to use to tackle one of these projects. Let's dive right into it!

## 1. Programming Language

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/domylpqbyboghckm79m7.png)

Creating a programming language, interpreted or compiled, is no easy feat. Some programming languages include: Python, Rust, Javascript, C++, Elixr, and many more. For this project, design and implement an interpreted or compiled programming language from scratch. If you would like this project to not only be a 2-week thing, think about the problems you have with certain programming languages, and how to fix them. For example, Rust is an awesome programming language that has memory safety and speed. The downside to Rust is its learning curve. I would try to create a programming language that is fast, memory safe, but would be easier to learn than Rust.

Tutorials (if you get stuck):

Golang: https://interpreterbook.com/
Rust: https://arzg.github.io/lang/
Python: https://youtu.be/Eythq9848Fg?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD
General: https://online.stanford.edu/courses/soe-ycscs1-compilers

## 2. Toy Database/Key, Value Store

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/byr748zy4umfj4f1jxg3.jpg)

For this project, create a toy database or a key, value store. If you would like some more practice with how databases work before building a real one, I would recommend creating a key, value store, a Redis clone, or a Memcached clone. As these projects are smaller than a full NoSQL/SQL database, these would be great intermediate systems projects. Once you feel ready, create a toy database. This database can be whatever you want: SQL or NoSQL, relational or nonrelational, the list goes on. 

Tutorials (if you get stuck):

Python (beginner-friendly): https://www.freecodecamp.org/news/how-to-write-a-simple-toy-database-in-python-within-minutes-51ff49f47f1/
General: https://www.coursera.org/specializations/database-systems

## 3. Implement the TCP Protocol

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/0heabe0chylgva726379.jpg)

In this project, implement the TCP protocol from scratch. If you don't know what the TCP protocol is, that would be the first step. I would recommend reading this: https://tools.ietf.org/html/rfc793. As the TCP protocol is a more advanced protocol, if you would like to tackle something a little simpler, I would recommend implementing the FTP protocol which you can learn about here: https://en.wikipedia.org/wiki/File_Transfer_Protocol.

Tutorials (if you get stuck):

Rust: https://youtu.be/bzja9fQWzdA?list=PLqbS7AVVErFivDY3iKAQk3_VAm8SXwt1X
C++: https://youtu.be/WDn-htpBlnU?list=PLZo2FfoMkJeEogzRXEJeTb3xpA2RAzwCZ
Python (FTP): https://www.tutorialspoint.com/python_network_programming/python_ftp.htm
Node: https://www.digitalocean.com/community/tutorials/how-to-develop-a-node-js-tcp-server-application-using-pm2-and-nginx-on-ubuntu-16-04

## 4. Implement Biometric Authentication

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/2rjtc3f0mlgxfk9mmjeg.jpg)

For number 4, implement biometric authentication. If you didn't know, biometric authentication uses a user's unique biological characteristics to confirm their identity. Some examples of biometric authentication include: fingerprint, face recognition, eye recognition, and more. This project requires you to be proficient with AI and machine learning. You could extend this project by implementing biometric authentication in an attendance platform, fingerprint voting system, and more.

Tutorials (if you get stuck):

Python (face recognition): https://youtu.be/535acCxjHCI
Node (fingerprint): https://youtu.be/RLpeBil53bk?list=PLrUF5HNl_xIKDmlYxMXtnQywpbfByH07r

## 5. Concurrent Data Structure

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/gx4j3693ws3qb0tzaobv.jpeg)

For this project, create a concurrent data structure. If you don't have any ideas on which concurrent data structure to make, I find looking at old research papers on concurrent data structures useful (usually they have some pseudocode). This project requires you to know what concurrency is and have a general knowledge of data structures.

Tutorials (if you get stuck):

Rust (concurrent hashmap): https://youtu.be/yQFWmGaFBjk?list=PLqbS7AVVErFj824-6QgnK_Za1187rNfnl
General: http://www.cs.tau.ac.il/~afek/ConcurrentDS-MS04.pdf

## 6. Create an Operating System

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/0i79qz27hi90emlyxfbd.jpg)

This one is a fun one! This project is all about creating your own operating system from scratch. For this project, I would recommend that you use a performant language like Rust, C, or C++ as creating an OS can slow your computer down a little. You could make this operating as simple or as complex as you like. Some extra features you could include are: basic built-in apps like Notes, QuickTime Player, or a text editor, multitasking, and more. 

Tutorials (if you get stuck):

Rust: https://os.phil-opp.com/
C: https://github.com/cfenollosa/os-tutorial
C++: https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System

## 7. Image Encryption using AES Algorithm

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/mjifayyrzeiy04a62py1.jpeg)

I have to admit, this one is pretty cool, I'll definitely be doing this one for my next project! In this project, create an image encryption tool using the AES algorithm. I found this blog post really helpful for understanding the AES algorithm: https://www.tutorialspoint.com/cryptography/advanced_encryption_standard.htm. You could extend this project by using your image encryption tool in some web applications like an Instagram clone. 

Tutorials (if you get stuck):

General: https://link.springer.com/article/10.1007/s11227-019-02878-7

## 8. Create a Text Editor

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/xp81dx07bo75famwgw56.jpg)

For this project, your goal is to create a fully functioning text editor. Some examples of text editors: sublime text, notepad++, and more. You could create a text editor which is mainly focusing on programming (syntax highlighting, keyboard shortcuts, etc) like sublime or just a regular notepad (more subtitle for beginners) like notepad++. 

Tutorials (if you get stuck):

Rust: https://www.philippflenker.com/hecto/
Java: https://www.geeksforgeeks.org/java-swing-create-a-simple-text-editor/
C: https://viewsourcecode.org/snaptoken/kilo/
Python: https://www.codespeedy.com/create-a-text-editor-in-python/
C#: https://youtu.be/e_ychG719Fk

## 9. Create a Browser Engine

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/6qypjmmthflm15vyrr8j.jpg)

Create a fully functioning browser engine. Make this browser engine allow for HTML, CSS, and JS files. You could make this project as complex or as simple as you want. For this project, I would focus on the design aspect as that is a big factor when choosing which browser to choose.

Tutorials (if you get stuck):

Rust: https://youtu.be/brhuVn91EdY?list=PLJbE2Yu2zumDD5vy2BuSHvFZU0a6RDmgb
Java: https://youtu.be/anoPsxasIBE

## 10. Create a Cryptocurrency

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/gmnq8q2a8ysj21pr2pi6.jpg)

For this project, create a cryptocurrency. Some examples of cryptocurrencies include: Bitcoin, Ethereum, Dash, etc. Like all the previous projects, you choose how deep you want to go into this project. If you want to add more advanced features such as smart contracts, mining, and more.

Tutorials (if you get stuck):

Rust: https://youtu.be/vJdT05zl6jk?list=PLwnSaD6BDfXL0RiKT_5nOIdxTxZWpPtAv
Python: https://www.freecodecamp.org/news/create-cryptocurrency-using-python/
Elixir: https://shyr.io/blog/writing-blockchain-elixir
Typescript: https://lhartikk.github.io/

****

These are some pretty big projects! If you complete any of them, I would love to know how it went! Good luck if you want to tackle any of these projects! Thanks for reading!

**Henry**

<a href="https://buttondown.email/hb">📰 Newsletter</a>
<a href="https://github.com/henryboisdequin">🐱 GitHub</a>
<a href="https://twitter.com/henryboisdequin">🐦 Twitter</a>