O mnie

Mój portret (Armin Kunkel)

Cześć, nazywam się Armin Kunkel. Tworzę produkty cyfrowe, koncentrując się na trwałej wartości. Jako autor piszę praktyczne książki techniczne i prowadzę blog o tematyce IT. Moje doświadczenie obejmuje badania akademickie, projekty open-source oraz zastosowany web development.

Moja droga zaczęła się od studiów z bezpieczeństwa IT, które później zmieniłem na informatykę.

Na początku (ówczesnych) studiów licencjackich na Hochschule Karlsruhe (Uniwersytet Nauk Stosowanych) zainteresowałem się tworzenie stron WWW i zacząłem uczyć się HTML, CSS, JavaScript & PHP. Zbudowanie księgi gości pozwoliło mi zgłębić te technologie poprzez lekturę dokumentacji (MDN, dokumentacja PHP), tutoriali, książek i materiałów wideo.

W drodze do zostania web developerem poznałem różnice między HTML 4 a HTML 5, ewolucję od CSS 2 do CSS 3, architekturę klient-serwer oraz różnice między stronami statycznymi (bez JS) a dynamicznymi (z JS). Szczególnie doceniłem zalety aplikacji jednostronicowych (SPA). Po położeniu fundamentów rozszerzyłem wiedzę o SSR (renderowanie po stronie serwera), SSG (generacja statyczna), narzędzia buildujące (Webpack, Vite), frameworki CSS (W3CSS, Bootstrap), preprocesory CSS (SASS, LESS, Stylus, SCSS), podejścia utility-first (np. TailwindCSS) oraz użycie zmiennych CSS.

Zgłębiałem historię i rozwój JavaScriptu – od LiveScript (Netscape Navigator) do standardu ECMAScript. Zdobyłem doświadczenie z AJAX (zapytania do serwera), walidacją formularzy, Web API oraz TypeScript. Podczas praktyk pracowałem z ExtJS, a później z Angularem (v5–v7). Dzięki Vue.js (v2 i v3) znalazłem potężny framework do budowy aplikacji i komponentów w ES/TS. Z Nuxt.js (v2 i v3) dodałem dodatkową warstwę abstrakcji dla aplikacji produkcyjnych. Na mojej ścieżce były też biblioteki jQuery i Lodash. Zajmowałem się również tematami takimi jak responsive design, SEO, użyteczność i UX.

Do przechowywania i zarządzania danymi pracowałem z technologiami serwerowymi, takimi jak PHP, Java Servlets oraz serwery WWW (np. Express w NodeJS, Apache httpd, Nginx). Poznałem WebSockety i SSE (Server-Sent Events) do komunikacji dwukierunkowej, GraphQL do komunikacji przez pojedynczy endpoint oraz projektowanie REST API i HATEOAS (Hypermedia as the Engine of Application State). Z silnikami szablonów takimi jak Thymeleaf (Java), JSP (Java) i Pug (NodeJS) poznałem inny sposób dynamicznego generowania stron HTML po stronie serwera. W back-endzie koncentrowałem się na Spring Boot (Spring MVC, Spring Security, Spring Data JPA, Spring Validation) w ekosystemie Javy. W czasie praktyk poznałem architekturę 3-warstwową (kontroler, serwis, DAO) ze Spring Boot.

W kontekście serializacji danych w żądaniach HTTP pogłębiłem wiedzę o XML (DTD, XSD, XSLT) i JSON oraz zaznajomiłem się z językami opisu takimi jak ASN1 i Protocol Buffers. Dzięki OWASP i BSI studiowałem bezpieczeństwo aplikacji webowych i ćwiczyłem je w praktyce (również z Kali Linux). Nauczyłem się także wielu języków programowania, m.in. Python, Haskell, Elixir, Assembler, Kotlin, Go, C i C++, VHDL, a nawet Brainfuck.

Armin Kunkel

Blog techniczny i sklep

Informatyk

  • Studia: bezpieczeństwo IT (rozpoczęte)
  • Zmiana na informatykę
  • Hochschule Karlsruhe (Uniwersytet Nauk Stosowanych)
  • Praktyki: ExtJS, Spring Boot (architektura 3-warstwowa)

Tworzenie stron WWW

  • Początek (księga gości, HTML, CSS, JS, PHP)
  • Źródła nauki: MDN, dokumentacja PHP, tutoriale, książki, filmy
  • HTML i CSS
  • HTML 4 vs HTML 5
  • CSS 2 vs CSS 3
  • Preprocesory CSS: SASS, LESS, Stylus, SCSS
  • Frameworki: Bootstrap, W3CSS
  • TailwindCSS (utility-first)
  • Zmienne CSS
  • JavaScript
  • Historia: LiveScript → ECMAScript
  • AJAX, walidacja formularzy, Web API
  • jQuery, Lodash
  • TypeScript
  • SPA vs strony statyczne
  • SSR i SSG

Frameworki

  • Angular (v5–v7)
  • Vue (v2, v3)
  • Nuxt (v2, v3)

Narzędzia buildujące

  • Webpack
  • Vite

Backend

  • Języki: PHP, Java Servlets, NodeJS
  • Serwery WWW: Apache, Nginx, Express

Komunikacja

  • REST, HATEOAS, GraphQL
  • WebSockety, SSE

Silniki szablonów

  • Thymeleaf, JSP, Pug

Spring Boot

Spring MVC · Spring Security · Spring Data JPA · Spring Validation

Formaty danych

  • JSON, XML (DTD, XSD, XSLT)
  • ASN.1, Protocol Buffers

Bezpieczeństwo

OWASP, BSI · Kali Linux (BackTrack)