Projekty własne i GitHub w CV — jak zbudować dowód bez stażu
Ten tekst jest częścią przewodnika Przebranżowienie — jak zmienić zawód i przekonać rekrutera.
Projekty własne i GitHub w CV to dla osoby bez komercyjnego stażu jedyny dowód umiejętności, który ktoś obcy może kliknąć i zweryfikować w kilka minut. Ten poradnik pokazuje, ile projektów faktycznie potrzebujesz, co musi znaleźć się w README, czego na własnym repozytorium publikować nie wolno i jak zapisać link, żeby ktoś w niego wszedł.
Ile projektów powinno mieć portfolio osoby bez komercyjnego doświadczenia?
Trzy skończone projekty w zupełności wystarczą, pod warunkiem że każdy pokazuje co innego i każdy uruchamia się u obcej osoby bez Twojej pomocy. Portfolio programisty to zestaw publicznych repozytoriów i wdrożeń, które ktoś może obejrzeć samodzielnie — a nie licznik repozytoriów na profilu.
Sensowny komplet wygląda tak:
- Aplikacja z bazą danych i logowaniem — pokazuje, że ogarniasz warstwę danych, sesję, walidację i obsługę błędów.
- Integracja z zewnętrznym API — pokazuje pracę z dokumentacją, kluczami, limitami zapytań i nieudanymi odpowiedziami.
- Narzędzie rozwiązujące Twój własny problem — pokazuje, że potrafisz zdefiniować zakres i doprowadzić rzecz do końca.
Czwarty projekt dokładaj tylko wtedy, gdy wchodzisz w konkretną specjalizację. Reguła jest bezlitosna: jedno porzucone repozytorium bez README kasuje wrażenie zbudowane przez trzy dobre. Dotyczy to każdego, kto buduje dowód od zera — zarówno osób w trakcie przebranżowienia do IT, jak i kandydatów 50 plus wchodzących w nową dziedzinę.
Czy warto wrzucać na GitHub projekty z kursu, bootcampu i tutoriali?
Tak, ale wyłącznie jako projekty rozbudowane o własną część i uczciwie opisane w README. Repozytorium będące kopią kodu z tutoriala nie mówi nic o Twoich umiejętnościach, bo każdy uczestnik tego kursu ma identyczne.
Sposób na przerobienie zadania kursowego w materiał do portfolio: dołóż jedną funkcję, której w kursie nie było, napisz do niej testy i wdróż całość. W README napisz wprost, co pochodziło z materiału, a co dopisałeś — osoba techniczna i tak rozpozna kod z popularnego kursu.
Portfolio wzmacnia się dodatkowo, gdy dopełnisz je stażem lub praktykami, które realnie liczą się w CV.
Co dokładnie musi znaleźć się w README, żeby projekt wyglądał poważnie?
README musi na pierwszym ekranie odpowiedzieć na pięć pytań: co to robi, dla kogo, jak to uruchomić, na czym zostało zbudowane i która część kodu jest Twoja. Wszystko poniżej jest bonusem, bo osoba oceniająca rzadko przewija dalej niż jeden ekran.
Kolejność, która się sprawdza:
- Jedno zdanie opisu i adres działającego demo.
- Zrzut ekranu albo krótkie nagranie interfejsu.
- Stack z wersjami — nie „React”, tylko „React 18, Node.js 20, PostgreSQL 16”.
- Instrukcja uruchomienia w maksymalnie trzech krokach, wraz z plikiem .env.example.
- Zakres własnego wkładu i znane ograniczenia.
„Budżet domowy — aplikacja webowa do śledzenia wydatków z podziałem na kategorie i miesięcznym raportem. Demo: budzet-demo.vercel.app (konto testowe: demo@demo.pl / demo1234). Stack: React 18, Node.js 20, PostgreSQL 16, Docker. Uruchomienie lokalne: skopiuj .env.example do .env i wykonaj docker compose up. Mój wkład: całość poza szablonem stylów.”
Osobnym elementem jest profile README, czyli opis widoczny na górze Twojego profilu. Żeby GitHub go wyświetlił, repozytorium musi mieć nazwę identyczną z Twoim loginem, być publiczne i zawierać niepusty plik README.md w katalogu głównym. Wpisz w nim jedno zdanie o tym, kim jesteś, trzy technologie i link do CV.
Czy zielone kwadraciki na profilu GitHub naprawdę mają znaczenie?
Wykres kontrybucji jest znacznie słabszym dowodem, niż sugerują poradniki, bo pokazuje tylko wycinek pracy i łatwo go zapełnić bez pisania kodu. Commit trafia na wykres wyłącznie wtedy, gdy spełni wszystkie warunki naraz: adres e-mail autora jest powiązany z kontem GitHub, commit znajduje się w repozytorium, a nie w forku, leży na gałęzi domyślnej albo gh-pages, a Ty jesteś współpracownikiem repozytorium, członkiem organizacji, autorem forka albo otworzyłeś w nim pull request lub issue.
Z drugiej strony samo utworzenie nowego repozytorium i sforkowanie cudzego zawsze liczy się jako kontrybucja. Wniosek dla Ciebie jest praktyczny: nie inwestuj czasu w zapełnianie wykresu, tylko w to, co widać od razu — sześć przypiętych pozycji (repozytoria i gisty liczone łącznie) i profile README.
Znacznie mocniej działa czytelna historia commitów. Trzymaj się standardu Conventional Commits 1.0.0: format „typ(zakres): opis”, gdzie feat oznacza nową funkcję, fix poprawkę, a zmianę łamiącą kompatybilność zapisujesz jako „feat!:” albo stopką „BREAKING CHANGE:”. Pozostałe rekomendowane typy to build, chore, ci, docs, style, refactor, perf i test.
Czy mogę opublikować kod, który napisałem w pracy, na stażu albo na zlecenie?
Nie, jeżeli nie masz na to wyraźnej pisemnej zgody — i to jest najczęstszy błąd w portfoliach osób, które jakieś doświadczenie już mają. Art. 74 ust. 3 ustawy z 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych stanowi, że majątkowe prawa do programu komputerowego stworzonego przez pracownika w wyniku wykonywania obowiązków ze stosunku pracy przysługują pracodawcy, o ile umowa nie stanowi inaczej.
Druga warstwa to tajemnica przedsiębiorstwa. Art. 11 ustawy z 16 kwietnia 1993 r. o zwalczaniu nieuczciwej konkurencji obejmuje informacje o wartości gospodarczej, nieznane powszechnie osobom z branży, wobec których uprawniony podjął działania dla zachowania poufności. Schemat bazy klienta, konfiguracja integracji czy logika wyceny mogą się w tej definicji mieścić. Ten tekst nie jest poradą prawną — w razie wątpliwości sprawdź własną umowę i zapytaj pracodawcy.
Trzy rzeczy do zrobienia przy każdym publicznym repozytorium:
- Dodaj plik LICENSE. Bez niego obowiązuje domyślne prawo autorskie i nikt nie może Twojego kodu kopiować, rozpowszechniać ani tworzyć na jego podstawie utworów zależnych. Dla portfolio wybierz licencję MIT albo Apache License 2.0 — gotowe treści są na choosealicense.com.
- Przejrzyj całą historię gita, nie tylko ostatni commit. GitHub secret scanning działa automatycznie i bezpłatnie w repozytoriach publicznych i skanuje wszystkie gałęzie; push protection jest domyślnie włączona i blokuje wypchnięcie sekretu do repozytorium publicznego.
- Odtwórz zamiast kopiować. Jeśli chcesz pokazać rozwiązanie z pracy, napisz je od nowa na własnych, wymyślonych danych i pod inną nazwą.
Czy potrzebne jest działające demo, czy wystarczy samo repozytorium?
Demo jest konieczne dla wszystkiego, co ma interfejs; dla biblioteki, skryptu czy narzędzia CLI wystarczy repozytorium z przykładem użycia w README. Nikt nie będzie klonował Twojego projektu, konfigurował bazy i uruchamiał go lokalnie, żeby sprawdzić, czy działa.
Gdzie to wystawić, nie płacąc:
| Hosting | Ograniczenie, o którym trzeba wiedzieć |
|---|---|
| GitHub Pages | Na planie GitHub Free repozytorium musi być publiczne. Adres to login.github.io albo login.github.io/nazwa-repo, limit 1 GB na opublikowaną stronę, miękki limit 100 GB transferu miesięcznie i 10 buildów na godzinę. |
| Vercel (plan Hobby) | Bezpłatny, ale zasady fair use dopuszczają wyłącznie użytek niekomercyjny i osobisty. Limity: 100 GB transferu miesięcznie, 100 wdrożeń na dobę, 45 minut na build, jeden build równolegle, logi runtime przez godzinę. |
| Netlify, Render, Fly.io | Sensowne alternatywy dla aplikacji z backendem. Limity planów darmowych zmieniają się często — sprawdź je w cenniku dostawcy w dniu wdrożenia, zamiast wierzyć poradnikom. |
Automatyzację dorzuć, gdy projekty już stoją. GitHub Actions jest w pełni darmowy dla repozytoriów publicznych na standardowych runnerach; dla prywatnych plan GitHub Free daje 2000 minut miesięcznie, a GitHub Pro 3000 minut. Jeżeli studiujesz, GitHub Student Developer Pack daje GitHub Pro za darmo na czas studiów oraz między innymi 100 USD kredytu w Microsoft Azure, licencje IDE JetBrains, 50 USD kredytu w MongoDB i dostęp do GitHub Codespaces. Uczniowie sprawdzający, co wolno prawnie osobie szesnastoletniej na rynku pracy, mogą zacząć od portfolio, zanim zaczną aplikować.
Gdzie w CV wkleić link do GitHuba i portfolio, żeby był czytelny?
Adres profilu wpisz pełnym tekstem w nagłówku CV, obok maila i telefonu — w formie github.com/twojlogin, bez „https://” i bez ukrywania go pod słowem „portfolio”. Pełny adres wpisany tekstem jest bezpieczną praktyką: pozostaje czytelny nawet wtedy, gdy dokument zostanie skonwertowany albo wydrukowany.
„Jan Kowalski — Junior Backend Developer | Kraków | 600 100 200 | jan.kowalski@example.com | github.com/jankowalski | jankowalski.github.io”
Zasada podziału jest prosta: w nagłówku podajesz profil, a przy konkretnym projekcie adres tego jednego repozytorium i jego demo. Format samej sekcji z projektami omawiamy w tekście o tym, jak opisać projekty w CV, układ całego dokumentu dewelopera znajdziesz we wzorze CV programisty, a techniczną stronę hiperłączy rozkładamy na części przy okazji tematu linki w CV. Cały nagłówek z kompletem adresów ustawisz w kilka minut w kreatorze CV.
Ile czasu zajmuje zbudowanie portfolio od zera przy nauce po godzinach?
Przy około ośmiu–dziesięciu godzinach tygodniowo realny plan to jeden miesiąc na komplet trzech projektów, jeśli dwa z nich rozbudowujesz z istniejących zadań, a tylko jeden piszesz od podstaw. Rozłożenie na cztery tygodnie:
- Tydzień 1 — wybór trzech tematów, doprowadzenie pierwszego projektu do stanu działającego, plik LICENSE i README.
- Tydzień 2 — drugi projekt: integracja z zewnętrznym API, obsługa błędów i limitów, testy.
- Tydzień 3 — trzeci projekt, wdrożenia wszystkich trzech na hosting i przegląd historii gita pod kątem sekretów.
- Tydzień 4 — profile README, sześć przypięć, zrzuty ekranu w README i wpisanie linków do CV.
Portfolio zwraca się nie tylko przy pierwszej pracy. Kiedy później liczysz, czy opłaca się zmienić pracę dla wyższej pensji, publiczne repozytoria są argumentem, który da się pokazać zamiast opowiadać — według raportu Bulldogjob „Badanie Społeczności IT 2025” mediana wynagrodzenia na kontrakcie B2B w polskim IT wyniosła 20 800 zł. Jeśli wychodzisz z bootcampu, ułożenie tych samych materiałów w dokument opisujemy w tekście o tym, jak napisać CV po bootcampie IT.
Checklista
Częste pytania
Czy rekruterzy w ogóle otwierają linki do GitHuba?
Rekruter najczęściej sprawdza tylko, czy link działa i czy profil nie jest pusty. Repozytoria przegląda osoba techniczna na kolejnym etapie i to ona czyta README, historię commitów i strukturę katalogów. Dlatego pierwszy ekran profilu ma być czytelny w pięć sekund, a kod ma bronić się bez Twojego komentarza.
Czy zielone kwadraciki na GitHubie mają znaczenie w rekrutacji?
Wykres kontrybucji jest niepełnym obrazem pracy programisty. Nie pokazuje commitów z repozytoriów prywatnych i firmowych, commitów wykonanych z adresu e-mail niepowiązanego z kontem ani pracy na gałęzi innej niż domyślna. Jednocześnie samo utworzenie repozytorium i sforkowanie cudzego zawsze liczy się jako kontrybucja, więc wykres można zapełnić bez pisania kodu.
Czy mogę opublikować na GitHubie kod, który napisałem w pracy?
Nie, jeżeli nie masz na to pisemnej zgody. Zgodnie z art. 74 ust. 3 ustawy o prawie autorskim i prawach pokrewnych majątkowe prawa do programu stworzonego przez pracownika w ramach obowiązków służbowych przysługują pracodawcy, o ile umowa nie stanowi inaczej. Dodatkowo kod, konfiguracje i dane klientów mogą być tajemnicą przedsiębiorstwa w rozumieniu art. 11 ustawy o zwalczaniu nieuczciwej konkurencji.
Czy brak pliku LICENSE w publicznym repozytorium to problem?
Tak, jeśli chcesz, żeby ktokolwiek mógł Twojego kodu użyć. Bez pliku LICENSE obowiązuje domyślne prawo autorskie, więc nikt nie ma prawa kopiować, rozpowszechniać ani tworzyć utworów zależnych od Twojego kodu. Dla portfolio typowym wyborem jest licencja MIT albo Apache License 2.0 — treść gotową do wklejenia znajdziesz na choosealicense.com.
Czy GitHub Pages i Vercel są darmowe dla portfolio?
GitHub Pages na planie GitHub Free wymaga, żeby repozytorium było publiczne; strona dostaje adres login.github.io albo login.github.io/nazwa-repo, z limitem 1 GB na opublikowaną stronę i miękkim limitem 100 GB transferu miesięcznie. Plan Hobby w Vercelu jest bezpłatny, ale zgodnie z zasadami fair use dopuszcza wyłącznie użytek niekomercyjny i osobisty, z limitem 100 wdrożeń na dobę.