Design and implement the projects listed below in any language of your choice!
Avoid using libraries (if not written by you) as much as you can, reinvent the wheel!
Share a repository for each project and tag it as:
Design and implement a web server application. Aim for something like Nginx!More details
Talk is cheap. Show me the code.
A packet sniffer (a packet analyzer) is used to monitor network traffic by examining streams of data packets that flow between computers on a network.More details
Programs must be written for people to read, and only incidentally for machines to execute.
Write a tool to analyze source code (in your preferred language) without executing it to find out issues with the code.More details
Write a library or a separate service that analyzes emails to detect spam.More details
Implement the next generation AI-powered chess engine.More details
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Implement a fully-fledged web search engine that will some day compete with Google!More details
Do hardcore programmers never use GUI? Anyway, implement a fancy command-line terminal application.More details
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
You know Google Chrome, Mozilla Firefox, and alike. Design and implement something better from scratch!More details
Design and implement a fault-tolerant in-memory database management system.More details
It gets harder and harder. Implement a minimalistic Operating System (the kernel) with as many features as you can afford.More details
A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct.
Design and implement a program or a service that takes video input and produces subtitles by analyzing the content of the video.More details
Design your own cipher, and an encode/decoder program for it!More details
That's the thing about people who think they hate computers. What they really hate is lousy programmers.
Design and implement a p2p messaging application with all the necessary subsystems for it to work!More details
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
Implement a program or a service that translates text from one human language of your choice to others.More details
You know newsreaders (those that read RSS feeds). You know CNN-like news presenters. Now, implement a cartoon-like presenter who reads news from RSS feeds provided by the user. A hell of a task!More details
Design a simulated payment system that incorporates financial transactions. Try to be as near to PayPal or Stripe as possible.More details
Design a relational database management system with indexing and transactions support.More details
Implement an app or a service that provides personalized assistance to users. Something like Siri, but can be text-only.More details
In some ways, programming is like painting. You start with a blank canvas and certain basic raw materials. You use a combination of science, art, and craft to determine what to do with them.
Implement a garbage collector as a library or a subsystem that can be used in environments.More details
The best error message is the one that never shows up.
Design and implement a Dropbox-like service for file sharing.More details
Design and implement a Docker-like container management system using OS-level virtualization.More details
Design and implement a container orchestration service. Preferably your service works with the Container Manager, which you have already implemented.More details
Viruses are bad. Coronaviruses are even worse. Implement an antivirus.More details
Network attacks are as bad as viruses. Prevent them by implementing the next generation Firewall.More details
Remember Git? You might also remember SVN. Design and implement a new (maybe better) version control system.More details
The most damaging phrase in the language is: "It's always been done this way."
A tool that takes the project source code as an input and generates UML diagrams.More details
A good programmer is someone who always looks both ways before crossing a one-way street.
Design and implement a database system optimized for storing and processing time series.More details
Design and implement a library in any preferred language exposing a set of lock-free data structure implementations.More details
Implement an app or a service that analyzes the traffic and alerts on traffic jam and suggests better routes to reach a destination.More details
Implement an application to mix/merge two or more music tracks in a smart way to produce new music.More details
There are only two kinds of programming languages: those people always bitch about and those nobody uses.
An app or a service that generates new recipes, based on the food, passed as an input.More details
Seems a simple one. Write a plugin for the browser to create and manage flash cards.More details
Design and implement a video call application with the server-side implementation if necessary.More details
Premature optimization is the root of all evil.
Write (or devise) a system to test randomness, i. e. random number generator's output.More details
Design a pretty neat microservices framework in your favorite programming language.More details
Invent a new functional programming language and corresponding support environment.More details
Design and implement a game engine for strategy games. Preferably, implement a game based on the engine to test it.More details
Implement a service that allows simulating complex worlds with different a set of initial data.More details
Implement the perfect movie recommendation system. Scrap the movie databases if you will.More details
Devise, design, and implement the next generation data compression algorithm, i. e. Pied Piper.More details
An app and service allowing streaming a video from one phone to another. Share a video with a friend instantly.More details
All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can’t get them together again, there must be a reason. By all means, do not use a hammer.
Imagination is more important than knowledge. For knowledge is limited, whereas imagination embraces the entire world, stimulating progress, giving birth to evolution.
Design and implement a system that generates new applications based on the text description. Sounds impossible? The user describes what kind of application she needs and the system generates a brand new app based on the requirements.No details, surprise the world!