Nasze wymagania
Twarde umiejętności – wymagane:
- Posiadasz minimum 9 lat profesjonalnego doświadczenia w tworzeniu i utrzymaniu aplikacji webowych w ekosystemie Javy.
- Java / JVM – bardzo dobrze znasz ekosystem Javy i potrafisz ocenić jakość, wydajność oraz utrzymywalność kodu.
- Spring / Spring Boot – stawiałeś od zera aplikacje webowe lub mikroserwisy.
- Hibernate / JPA – masz doświadczenie w pracy z ORM bezpośrednio lub przez Spring Data JPA.
- Frontend – masz doświadczenie w pracy z HTML, CSS i JS; korzystałeś np. z Reacta, Angulara, Vue.js lub podobnych frameworków.
- Praktyczne doświadczenie w tworzeniu narzędzi AI/LLM – np. stworzyłeś workflow automatyzujący zadania, integrację z API modelu, rozwiązanie RAG, narzędzie do analizy dokumentów/kodu albo generator testów/dokumentacji.
- Projektowanie systemów – masz na koncie złożone architektury webowe i wiesz, jak podejmować trade-offy.
- Bazy danych – dobrze znasz SQL i relacyjne modelowanie danych (PostgreSQL, Oracle lub podobne); znajomość NoSQL będzie atutem.
- Integracje i API – REST, messaging (Kafka, RabbitMQ lub podobne), OpenAPI.
- CI/CD – wiesz jak w zautomatyzowany sposób wydawać aplikacje na produkcję z wykorzystaniem Dockera, GitLab Pipelines i np. Docker Swarm lub K8s
- Środowisko pracy – wieloletnie doświadczenie z IntelliJ IDEA oraz macOS/Linux.
Pasja do IT – kluczowa dla tej roli:
- Żyjesz technologią – śledzisz zmiany w Javie, Springu, AI i narzędziach deweloperskich oraz rozumiesz, co realnie zmieniają w pracy inżyniera.
- Masz za sobą samodzielne projekty webowe – od pomysłu do wdrożenia – i chętnie je pokażesz.
- Zależy Ci na jakości, estetyce i użyteczności tego, co tworzysz.
- Uczysz się aktywnie: bierzesz udział w kursach, konferencjach, czytasz artykuły techniczne i newsy ze świata IT.
Doświadczenie w AI / Agentic AI:
- Aktywnie wykorzystujesz AI/LLM w codziennej pracy programistycznej i potrafisz automatyzować istotną część zadań.
- Masz bardzo dobrą wiedzę na temat LLM-ów, RAG, kontekstu, ograniczeń modeli, halucynacji i sposobów weryfikacji outputu.
- Masz doświadczenie w pracy z API OpenAI, Claude API, Gemini API lub podobnymi.
- Zbudowałeś już coś praktycznego z użyciem AI/LLM – np. prostego agenta, workflow automatyzujący zadania, integrację z API modelu, rozwiązanie RAG, narzędzie do analizy dokumentów/kodu albo generator testów/dokumentacji.
- Potrafisz czytać i wziąć odpowiedzialność za kod wygenerowany przez AI.
Wymagamy znajomości języka polskiego na poziomie umożliwiającym komunikację w mowie i piśmie.
Mile widziane
- Kursy AI potwierdzone certyfikatami.
- Znajomość JSF, PrimeFaces, Jakarta EE.
- Doświadczenie z serwerami frontowymi: Apache, NGINX, HAProxy.
- Doświadczenie z monitoringiem i observability aplikacji webowych.
- Doświadczenie w projektowaniu procesów automatyzacji pracy programistycznej.
- Portfolio samodzielnie wykonanych projektów webowych – od pomysłu do wdrożenia.
- Własne projekty open source dostępne na GitHubie.
Jeśli dotarłeś do tego miejsca i czujesz, że to opis Ciebie – odezwij się.
Rekrutacja: rozmowa techniczna i zadanie projektowe, które możesz rozwiązać z pomocą agentów AI.
Twój zakres obowiązków
Wytwarzanie nowego oprogramowania (full stack):
- Projektowanie i budowanie aplikacji webowych od początku do końca – backend, frontend, baza danych, testy, CI/CD, monitoring i observability.
- Praca po stronie backendu (Java, Spring) i frontendu (HTML, CSS, JavaScript) – bez sztywnego podziału na osobny zespół backendowy i frontendowy.
- Dbałość o estetykę, użyteczność i UX aplikacji we współpracy z grafikiem.
- Konfiguracja środowisk uruchomieniowych: chmura / wirtualki, Docker, GitLab Pipelines, Ansible.
- Implementacja wybranych funkcji oprogramowania w oparciu o API modeli AI.
Architektura i projektowanie:
- Regularna współpraca z biznesem przy analizie potrzeb, doprecyzowywaniu wymagań i przekładaniu ich na rozwiązania techniczne.
- Projektowanie architektury aplikacji webowych i systemów backendowych: API, integracje, model danych, dobór technologii i przygotowywanie analiz porównawczych.
- Definiowanie standardów technicznych, wzorców projektowych i zasad jakości dla rozwijanych produktów.
- Wybór architektury kodu: np. modularny monolit czy mikroserwisy? Event-driven czy sync API?
- Podejmowanie decyzji architektonicznych z uwzględnieniem trade-offów: złożoność, koszt utrzymania, wydajność, bezpieczeństwo i tempo developmentu.
Automatyzacja pracy programistycznej z AI:
- Przekształcanie wymagań biznesowych w precyzyjne specyfikacje i kontekst dla LLM-ów oraz agentów AI.
- Przygotowanie zautomatyzowanego workflow w oparciu o AI na całej ścieżce wytwarzania oprogramowania: analiza → projektowanie → implementacja → testy → dokumentacja → review.
- Budowanie i doskonalenie narzędzi opartych o API modeli AI oraz iteracyjne poprawianie jakości ich outputu: ograniczanie halucynacji, doprecyzowywanie kontekstu i weryfikacja wyników.
- Review, testowanie i finalizacja kodu generowanego lub modyfikowanego przez AI – z pełnym zrozumieniem, dlaczego kod działa tak, a nie inaczej.
- Utrzymanie wysokich standardów jakości: architektura kodu, testy, bezpieczeństwo, wydajność, CI/CD i utrzymywalność.
- Aktywne kodowanie tam, gdzie AI nie daje wystarczającej jakości albo potrzebna jest świadoma decyzja inżynierska.
Wsparcie prac przy istniejących projektach:
- Rozwój, utrzymanie i stopniowa modernizacja istniejących aplikacji webowych działających w ekosystemie Javy, w tym systemów opartych o Spring, Hibernate, JSF, PrimeFaces, jQuery, CSS, Tomcat i relacyjne bazy danych.
- Analiza istniejącego kodu, logów, stacktrace’ów i zachowań systemu w celu diagnozowania problemów oraz bezpiecznego wprowadzania zmian.
- Usprawnianie istniejących rozwiązań bez założenia, że wszystko trzeba przepisać od zera – tam, gdzie ma to sens, przez refaktoryzację, automatyzację, testy i stopniową modernizację.
- Dbanie o jakość, stabilność i przewidywalność systemów produkcyjnych, również wtedy, gdy oznacza to pracę w mniej popularnych, ale biznesowo krytycznych technologiach.