Delivery 1.0 Help

Developer

Stanowisko

Grade

Zadania/wymagania/kompetencje

Developer

Junior

  • Java

    • Znajomość podstaw języka Java

    • Znajomość podstaw teorii baz danych i znajomość języka SQL

  • Frontend

    • Znajomość podstawowych technologii i wzorców: HTML, CSS, Java Script, REST-API

    • Znajomość podstaw w najpopularniejszych frameworków: React, Vue, Angular, a także Bootstrap czy jQuery

  • Data Science

    • Podstawy języka R, Python i frameworków analitycznych: pandas, scikit-learn, numpy, matplotlib

    • Znajomość narzędzi takich jak Jupiter NotebookPodstawa matematyczne i statystyczne (regresja, klasyfikacja, grupowanie)

Wspólne dla bez względu na technologię:

  • Znajomość popularnych formatów danych do budowania komunikacji między systemami IT: Json, Yaml, XML

  • Umiejętność pracy z systemie kontroli wersji: Git

  • Znajomość podstaw programowania obiektowego, struktur danych i algorytmów

  • Zrozumienie zasad działania Internetu: podstawowe protokoły komunikacji

  • Praca w zespole i współpraca z innymi programistami

  • Rozwiązywanie prostych problemów technicznych pod nadzorem, w założonym czasie i poziomie jakości

  • Wsparcie w procesach utrzymania systemu i zachowania drożności operacji

  • Znajomość teorii metodyk Agile

Mid

  • Rodzaj technologii

    • Java

      • Znajomość języka Java na poziomie uwzględniającym:

        • Streams

        • JPA

        • JAX-RS

        • JAX-WS

      • Znajomość frameworku Spring Framework (Spring Boot, Spring Data,  Spring Security)

      • Znajomość Java EE, Kotlin

      • Bazy danych: umiejętność zarządzania strukturą i informacją, znajomość PostgreSQL

      • Znajomość narzędzi integracji systemów: RabbitMQ, ActiveMQ, Kafka

    • Frontend

      • Wie jak działają używane frameworki i potrafi efektywnie wykorzystywać ich elementy

      • Znajomość podstawowych technik optymalizacji wydajności strony (np. lazy loading, caching)

      • Znajomość elementów poprawnego budowania interfejsów o wysokiej dostępności dla użytkownika

      • Znajomość cech charakterystycznych w obsłudze różnych przeglądarek internetowych

      • Sprawnie korzysta z narzędzia Figma

    • Data Science

      • Znajomość teorii modeli machine learningowych i umiejętność realizacji tych modeli: drzewa decyzyjne, algorytmy ensemble (np. Random Forest, Gradient Boosting), redukcja wymiarowości (np. PCA)

      • Znajomość podstaw baz danych relacyjnych i nierelacyjnych do pozyskiwania danych do przeprowadzania analiz i trenowania modeli, np. PostgreSQL, MongoDB

      • Podstawy przetwarzania języka naturalnego (NLP), narzędzia takie jak SpaCy

    • Wspólne

      • Znajomość wzorców projektowych

      • Sprawne posługiwanie się IDE z rodziny JetBrains

      • Biegła praca w systemie kontroli wersji: Git

      • Umiejętność posługiwania się instrumentami CI/CD takimi jak GitLab, Bamboo

      • Umiejętność pracy z narzędziami do konteneryzacji i orkiestracji: Docker, Kubernetes

      • Podstawowa umiejętność pracy z systemami Linuxowymi

  • Zdolność do samodzielnego rozwiązywania średniozaawansowanych problemów technicznych

  • Umiejętność wsparcia Product Ownera

    • Analiza elementów systemu

    • Ocena czasochłonności zmiany

    • Zrozumienie kontekstu zadań i złożoności systemów

  • Dobra komunikatywność z PO i innym osobami w zespole i poza zespołem

  • Praktyczna znajomość metodyk Agile

Senior

  • Rodzaj technologii

    • Java

      • Biegłość w posługiwaniu się językiem Java:

        • Concurrency

        • JTA

        • Zaawansowane JPA (znajomość cyklu życia encji, sposoby lockowania, sesje itp)

      • Zrozumienie i umiejętność konfigurowania serwerów aplikacji z rodziny Jboss/Wildfly

      • Biegłość w umiejętności posługiwania się bazą danych PostgreSQL

      • Znajomość systemów integracji systemów: RabbitMQ, ActiveMQ, Kafka, Redis, Elasticsearch, Debezium

      • Znajomość instrumentów zabezpieczania komunikacji: HMAC, SHA, mTLS, JWT, IPSec

      • Umiejętność korzystania z narzędzi takich jak Prometheus, Grafana, Zabbix, OpsGenie

    • Data Science

      • Zaawansowane techniki uczenia maszynowego: głębokie sieci neuronowe (Deep Learning), narzędzia TensorFlow, Keras, PyTorch

      • Zaawansowane techniki przetwarzania języka naturalnego (NLP): Word Embeddings, LSTM, transformers

      • Zaawansowane techniki statystyczne i uczenia maszynowego: modelowanie Bayesowskie, Reinforcement Learning, transfer learning

      • Doświadczenie w pracy z dużymi zbiorami danych i rozproszonym przetwarzaniem danych

    • Frontend

      • Umiejętność realizacji projektów Node.js

      • Umiejętność realizacji zadań w modelu Serverless, Progressive Web Apps, Responsive web design

    • Wspólne

      • Umiejętność korzystania z wybranych instrumentów dostarczanych przez rozwiązania cloudowe, np. S3, EC2, Lambda, RDS, Athena, Aurora, DynamoDB w AWS

      • Umiejętność debugowania i profilowania aplikacji

  • Umiejętność rozwiązywania złożonych problemów technicznych

    • Optymalizacja wydajności i skalowalności aplikacji

    • Znajomość aspektów tworzenia architektura oprogramowania

    • Doświadczenie w projektowaniu i implementacji mikroserwisów

  • Zdolność do pełnego udziału w cyklu życia projektu, od analizy wymagań do wdrażania i utrzymania

    • Wsparcie przy analizie

    • Udział w spotkaniach z kontrahentami

    • Potrafi samodzielnie poprowadzić i zrealizować projekt technicznie

  • Umiejętność posługiwania się i konfigurowania instrumentów CI/CD: Gitlab, Flux, Terraform

  • Umiejętność pracy w metodykach Agile

  • Mentorowanie i wspieranie rozwoju młodszych programistów

  • Dbanie o ciągłość działania systemów m.in. poprzez wsparcie systemów w trakcie dyżurów i reakcji na incydenty

TechLead

  • Doskonała znajomość języków, problematyki technologicznej w swoim obszarze

  • Doskonała znajomość architektury oprogramowania w organizacji oraz podobnych modeli rynkowych

  • Wsparcie Product Ownera w modelowaniu produktu i systemów IT

    • Udział w spotkaniach z kontrahentami

    • Pomoc w analizie i harmonogramowaniu projektów

  • Mentoring dla zespołu, dbanie o jakość dostarczanych przez zespół zmian

  • Dzieli się wiedzą ekspercką w zespole oraz w organizacji

  • Projektowanie skalowalnych i elastycznych rozwiązań

  • Samodzielna umiejętność analizy stanu systemu i określania aspektów wymagających rozwoju lub poprawy

  • Podejmowanie strategicznych decyzji technologicznych i zapewnianie jakości oprogramowania

    • Znajomość i praktyczne wykorzystywanie Sonara

    • Udział w inicjatywach architektoniczych cross-zespołowych

    • Określanie poziomów akceptacji dla Code Quality

    • Analiza rynku pod kątem wyboru nowych rozwiązań technologicznych

    • Analiza przyczyn wystąpienia incydentów i likwidacja tych przyczyn

Last modified: 30 May 2024