Portfolio zrealizowanych projektów na https://cv.sarata.pl.
Zaczynałem od assemblerów, potem C++ niezarządzalny i zarządzalny, C# i JS. Miałem też epizody z Pascalem i PHP. Swoją przyszłość widzę w pogłębianiu doświadczenia z JS. W tym języku można tworzyć nie tylko wydajny backend (node.js), ale również responsywny frontend (quasar.js). Nakładka Cordova pozwala ten sam kod JS przekształcić w uniwersalne aplikacje mobilne (Android, iPhone). Za pomocą innej nakładki - Electron generuje się programy desktopowe (Windows, Linux, czy OSX).
Nowoczesny JS jest niezwykle wydajny. Kod jest najpierw kompilowany, reaguje na zdarzenia i nie wymaga stosowania wątków, które podczas przełączania zabierają procesorom cenny czas. Programowanie zdarzeniowe wymaga od programisty sporego wysiłku w tworzeniu algorytmów umożliwiających automatyczne wykonywanie kolejno zaplanowanych kroków w reakcji na wykonanie z niedającym się przewidzieć opóźnieniem zakończenia poprzedniego kroku.
Oczywiście niemal całe tworzone oprogramowanie przetwarza dane. A skoro tak, musiałem poznać język SQL i bazy danych takie jak SQLserver, MySQL, SQLite, czy modne ostatnio MongoDB. SQL jest już w miarę dobrze znormalizowany. Wyjątkiem jest MongoDB – przeciwieństwo relacyjnych baz danych.
We współczesnych systemach tradycyjne konfiguracje klient/serwer już nie wystarczają. Musiałem więc opanować używanie web sockets, Firebase Cloud Messaging (FCM), czy pakiety UDP poprzez GPRS. W dotychczasowych projektach musiałem porozumiewać się wieloma urządzeniami peryferyjnymi stosującymi różne protokoły. Mam na myśli Near Field Communication (NFC) oraz Bluetooth Low Energy (BLE). A obsługa tych protokołów wymaga sporego nakładu pracy.