The post has been translated automatically. Original language: Russian
Pet projects as the key to career success: creation guide and tips
Kevin Systrom developed the Burbn mobile app in his spare time, where users could check in, schedule meetings and upload photos. After rethinking the project with Mike Krieger, the social network Instagram appeared. Mark Zuckerberg created Facebook as a pet project while a Harvard student. Drew Houston started Dropbox as a personal project to solve a file storage and synchronization problem he was facing.
These stories show that small personal projects can grow into global companies if they solve people's real problems.
In this article, Vyacheslav Legostin, team leader of the backend development of the Kolesa Group, will tell you everything about pet projects that beginners need to know.

A pet project is a developer's personal project that he creates in his free time. Such a project is needed mainly to explore new technologies and gain experience in developing projects close to commercial ones. Also, thanks to the pet project, you will interest the employer in the interview, showing what you are capable of. It can be any idea that you are interested in: an application, a website, or even a game.
- The idea of the project
Choose a topic that is very interesting to you personally. For example, I chose my hobby — landscape photography. This will allow you to be as involved as possible: you will be able to come up with new features and improvements, find like-minded people and real users.
- Case
I will give a guide through the prism of my pet project, a website for photographers. I spent two months creating it so that I wouldn't be ashamed to show it at interviews.
We will not choose the same idea for the guide: it is at least ten years old. We will expand the idea to other areas and adapt the project to the realities of 2024. The site should include hubs, a feed of posts, dynamic blocks with useful information, categories, ratings. The site will be in the style of Reddit.
1. Select the stack
The choice of technologies and programming language for the project should correspond to your goals and the labor market. Determine which stack is used in the companies where you plan to get a job. For backend developers, I recommend PHP, Python or Java.
We choose PHP for the site — it is a relatively easy-to-learn programming language with a lot of educational materials and the Laravel framework. Laravel has a powerful community and a lot of materials.
For data storage, always choose free and popular relational databases such as MySQL or PostgreSQL.
Backend developers need to know how frontend works. For a quick and easy layout, I recommend Tailwind CSS.
2. We define the basic functionality for the site
- registration and authorization;
- creation of hubs — analogues of the subreddit {community inside Reddit on any topic};
- creating posts;
- hub feeds;
- the main page;
- likes, dislikes, comments.
At this stage, you will master the necessary programming language and framework, learn how to work with databases and create authorization for web projects. You will also understand how backend and frontend interact with each other.
3. We post the project on the Internet
When the basic functionality is ready, it's time to post the project on the Internet. You will need a virtual VPS server, an operating system (for example, Ubuntu) and a beautiful domain.
At this stage, you will learn:
- work with SSH access and SSH keys;
- configure the SFTP protocol and upload files to the VPS server;
- work with the terminal and commands: cat, ls, nano, vim, history, grep, apt, cp, mv, chmod, chown, artisan, etc.;
- deploy PHP, MySQL, PostgreSQL, NGINX on the server.
Additionally, you can implement an application containerization system — Docker. It is a popular and easy-to-learn application containerization system that contains libraries, system tools, code and runtime environment.
4. Logs and evaluation of the product status
A good specialist should be able to collect logs and analyze them. Logs are a repository where all events that occurred in the computer system are automatically recorded. This storage can be text files, a proprietary database, or a separate system. You need to know where and how to search for NGINX logs, be able to analyze PHP logs and the application itself, and use utilities such as Pail from Laravel.
5. Developing the product
At this stage, you can add additional features to improve the project.:
1) Caching using Redis — to speed up page loading.
2) Search on the site using Elasticsearch — to improve the user experience.
3) Setting up CI/CD pipelines — for regular automated code assembly.
4) Working with queues via RabbitMQ or Apache Kafka — for asynchronous data processing.
5) Transfer of information from the MySQL relational database to MongoDB — for convenient data storage.
6) Using microservices on Go — to highlight individual functions, for example, sending notifications.
1) Indicate in your resume the skills that you acquired while working on the project.
2) Show the project to real users and take into account their feedback.
3) Repeat the theory before the interview and be honest: note that the project was created to gain experience.
Pet-проекты как ключ к карьерному успеху: гайд по созданию и советы
Кевин Систром в свободное от работы время разработал мобильное приложение Burbn, где пользователи могли чекиниться, планировать встречи и загружать фото. После переосмысления проекта с Майком Кригером появилась социальная сеть Instagram. Марк Цукерберг создал Facebook как pet-проект, будучи студентом Гарварда. Дрю Хьюстон начал Dropbox как личный проект, чтобы решить проблему с хранением и синхронизацией файлов, с которой он столкнулся.
Эти истории показывают, что небольшие личные проекты могут вырасти в глобальные компании, если они решают реальные проблемы людей.
В этой статье Вячеслав Легостин, тимлид backend-разработки Kolesa Group, расскажет про pet-проекты всё, что нужно знать начинающим.

Что такое pet-проект и зачем он нужен
Pet-проект — это личный проект разработчика, который он создаёт в свободное время. Такой проект нужен, в основном, для изучения новых технологий и получения опыта разработки проектов, близких к коммерческим. Также благодаря pet-проекту вы заинтересуете работодателя на собеседовании, показав, на что вы способны. Это может быть любая идея, которая вам интересна: приложение, сайт или даже игра.
Гайд по подготовке pet-проекта
- Идея проекта
Выберите тему, которая очень интересна лично вам. Я, например, выбрал своё хобби — пейзажную фотографию. Это позволит вам быть максимально вовлечёнными: сможете придумывать новые фишки и улучшения, находить единомышленников и реальных пользователей.
- Кейс
Приведу гайд через призму своего pet-проекта — веб-сайта для фотографов. Потратил на его создание два месяца, чтобы мне не было стыдно его показывать на собеседованиях.
Мы не выберем для гайда эту же самую идею: ей не меньше десяти лет. Мы расширим идею на другие направления и адаптируем проект под реалии 2024 года. Сайт должен включать в себя хабы, ленту постов, динамические блоки с полезной информацией, категории, рейтинги. Сайт будет в стиле Reddit.
1. Выбираем стек
Выбор технологий и языка программирования для проекта должен соответствовать вашим целям и рынку труда. Определите, какой стек используют в компаниях, куда планируете устроиться. Для backend-разработчиков рекомендую PHP, Python или Java.
Для сайта выбираем PHP — это относительно простой в освоении язык программирования с большим количеством учебных материалов и фреймворком Laravel. У Laravel мощное комьюнити и много материалов.
Для хранения данных всегда выбирайте бесплатные и популярные реляционные базы, такие как MySQL или PostgreSQL.
Backend-разработчикам важно знать, как работает frontend. Для быстрой и простой вёрстки советую Tailwind CSS.
2. Определяем базовый функционал для сайта
- регистрация и авторизация;
- создание хабов — аналогов сабреддита {cообщество внутри Reddit на любую тему};
- создание постов;
- ленты хабов;
- главная страница;
- лайки, дизлайки, комментарии.
На этом этапе вы освоите нужный язык программирования и фреймворк, научитесь работать с базами данных и формировать авторизацию веб-проектов. А также поймёте, как взаимодействуют между собой backend- и frontend.
3. Размещаем проект в интернете
Когда базовый функционал готов, пора разместить проект в интернете. Вам нужны будут виртуальный сервер VPS, операционная система (например, Ubuntu) и красивый домен.
На данном этапе вы научитесь:
- работать с SSH-доступом и SSH-ключами;
- настраивать SFTP-протокол и загружать файлы на сервер VPS;
- работать с терминалом и командами: cat, ls, nano, vim, history, grep, apt, cp, mv, chmod, chown, artisan и др.;
- разворачивать на сервере PHP, MySQL, PostgreSQL, NGINX.
Дополнительно можно внедрить систему контейнеризации приложения — Docker. Это популярная и лёгкая в освоении система контейнеризации приложений, содержит библиотеки, системные инструменты, код и среду выполнения.
4. Логи и оценка состояния продукта
Хороший специалист должен уметь собирать логи и анализировать их. Логи — это хранилище, куда автоматически записываются все события, которые происходили в компьютерной системе. Этим хранилищем могут служить текстовые файлы, собственная база или отдельная система. Необходимо знать, где и как искать логи NGINX, уметь анализировать логи PHP и самого приложения, применять утилиты, такие как Pail из Laravel.
5. Развиваем продукт
На этом этапе можно добавить дополнительные функции для улучшения проекта:
1) Кеширование с помощью Redis — для ускорения загрузки страниц.
2) Поиск на сайте с использованием Elasticsearch — для улучшения пользовательского опыта.
3) Настройка CI/CD-пайплайнов — для регулярной автоматизированной сборки кода.
4) Работа с очередями через RabbitMQ или Apache Kafka — для асинхронной обработки данных.
5) Перевод информации из реляционной базы MySQL в MongoDB — для удобного хранения данных.
6) Использование микросервисов на Go — для выделения отдельных функций, например, отправки уведомлений.
Рекомендации по подготовке к собеседованиям
1) Указывайте в резюме навыки, которые вы приобрели во время работы над проектом.
2) Показывайте проект реальным пользователям и учитывайте их отзывы.
3) Повторяйте теорию перед собеседованием и будьте честны: отметьте, что проект был создан для получения опыта.