Vývoj udržovatelného rozšiřitelného modulárního software na zakázku
Jsem zkušený freelance vývojář vyvíjející software na zakázku. Mým cílem je kvalitní a udržovatelný kód rozdělený do funkčních celků, které jsou znovu použitelné v budoucích projektech.
C++
Vývoj software v jazyce C++ pro operační systémy Windows a Linux.
HTML5 / CSS3 / JS
Vývoj responzivních webových stránek, aplikací, ale i blogů a e-shopů.
PHP / Node.js
Vývoj serverových aplikací v jazycích PHP a Node.js.
Cordova
Vývoj multiplatformních aplikací, převážně pro mobilní zařízení, v jazyce JavaScript. Jedna aplikace pro více operačních systémů.
Instalace
Instalace, konfigurace a zprovoznění vyvinutých aplikací, webových stránek i serverů.
Podpora
Pomoc zákazníkům včetně vývoje nových verzí i funkcionalit na základě požadavků a zkušeností.
Martin Svoboda
IT Freelancer
Jsem zkušený IT vývojář pracující na kontraktech, projektech na zakázku i open source projektech zvěřejněných na GitHubu.
Mezi mé programovací jazyky patří C++, JavaScript, TypeScript, Node.js, HTML, CSS, PHP, MySQL, PostgreSQL a SQLite. Průběžně se zdokonaluji i v dalších programovacích jazycích a frameworcích.
Mým cílem je kvalitní a udržovatelný kód rozdělený do funkčních celků, které jsou znovu použitelné v budoucích projektech. Vývoj nových projektů za použití dříve vyvinutých komponent je rychlejší a levnější.
Na větších projektech pro více vývojářů spolupracuji s dalšími freelance vývojáři, kteří se aktivně podílí na vývoji software.
Reference
ZÁKAZNÍCI A PROJEKTY, NA KTERÝCH JSEM PRACOVAL JAKO FREELANCE VÝVOJÁŘ
-
IXPERTA s.r.o.
V rámci kontraktu se jako C++, JavaScript (Node.js) a ORACLE Digital Assistant vývojář podílím na různých projektech. Pracoval jsem na vývoji digitálního asistenta na platformě ORACLE Digital Assitent. Logiku asistenta jsem implementoval v YAML a propojení digitálního asistenta s umělou inteligencí SentiSquare pro zpracování českého jazyka v Node.js.
Pracoval jsem také na projektu "Virtual Showroom" pro online prodej automobilů. Podílel jsem se na vývoji backendového serveru v Node.js (TypeScript).
V současné době pracuji na interním nástroji pro čtení a parsování dat z Confluence. Opět se jedná o backend server v Node.js (TypeScript).Detaily
-
SODAT Technologies, a.s.
V rámci kontraktu se SODAT Technologies a.s. jsem pracoval jako C++ develper na vývoji služby Windows, včetně jejích automatických testů. Podílel jsem se na implementaci komunikace s ovladačem souborového systému (file system driver), síťovým ovladačem (včetně analýzy provozu HTTP/HTTPS) a komunikace s backend serverem přes gRPC a Protocol Buffers.
Detaily
-
Atos Convergence Creators s.r.o
V rámci kontraktu jsem zde pracoval na vývoji komunikačních serverů pro radiostanice Tetra. Servery byly vyvíjeny v C++, SQLite a PostgreSQL. Implementoval jsem odesílání stavových zpráv a krátkých datových služeb (SDS). Podílel jsem se také na implementaci spojení hovorů a jejich záznamu.
Detaily
-
MarsTech
Implementace, spuštění a správa blogu mars-gamer o hraní počítačových her, herních zařízeních a všem, co s hraním her souvisí na webhostingu WEDOS.
Detaily
-
MarsTech
Vývoj a údržba vlastní webové stránky www.marstech.cz pro prezentaci nabízených služeb, referencí i open source projektů.
Detaily
Open Source Projekty
PRACUJI I NA VLASTNÍCH OPEN SOURCE PROJEKTECH, KTERÉ MĚ USNADŇUJÍ A URYCHLUJÍ PRÁCI
Při své práci často narážím na potřebu implementace podobných nebo stejných funkcionalit. Proto vyvíjím i své vlastní open source projekty implementující základní funkcionality jako je logování, aktivní i pasivní konfigurace, práci s vlákny, správou DLL knihoven a další. Všechny projekty a detailní informace o nich naleznete na mém GitHub profilu Mars2004.
MarsTech C++ SYS
MarsTech C++ SYS projekt integruje většinu ostatních projektů do jedné statické knihovny a dynamické (sdílené) knihovny.
Implementuje objekty, které přes svůj interface (rozhraní) poskytují přístup k implementacím jednotlivých projektů. Na příkladu použití C++ SYS knihovny lze vidět, kolik práce a času je možné jejím použitím ušetřit.
Zjistit Více O ProjektuMarsTech Error
Snad každý program v jakémkoli jazyce se musí vypořádat s obsluhou chybových kódu a výjimek. Projekt definuje typ pro chybové kódy i jednotlivé chybové kódy a implementuje vlastní výjimku včetně její obsluhy.
Samozřejmě lze použít obsluhu a definici chyb operačního systému. Bohužel většina operačních systémů má svůj vlastní seznam chybových kódu, které jsou nepřenositelné na ostatní operační systémy. MarsTech projekty jsou psány tak, aby šly s minimálním úsílím použít na různých operačních systémech.
Zjistit Více O ProjektuMarsTech Logging
Logování je důležitou součástí při ladění i hledání chyb a chybových stavů. Ideální je, když chyby nenastávají a logy nejsou potřeba, ale vydat program bez kvalitního logování je velice odvážné až hloupé.
Tento projekt sám o sobě neimplementuje logování. Existuje spousta kvalitních logovacích frameworků a není potřeba vyvíjet další. Bohužel většina logovacích frameworků není připravena na unit testování a dependency injection a proto MarsTech logging je jen obálka nad logovacím frameworkem spdlog.
Zjistit Více O ProjektuMarsTech Headers
Menší projekt obsahující pouze C++ hlavičkové soubory. Většina tříd, maker a funkcí je obecných a nezapadá do žádného jiného projektu.
Na druhou stranu většina těchto tříd, maker a funkcí je používáná ostatními MarsTech projekty.
Zjistit Více O ProjektuMarsTech Dependency Injection
C++ knihovna pro usnadnění implementace dependency injection v projektech. Jedná se o techniku používanou při implementaci kódu, který lze snadno unit testovat.
Knihovna obsahuje hlavičkové soubory definující makra pro snadnou implementaci dependency injection factories a injectors. Téměř každý unit testovatelný objekt (třída) v C++ má vlastní implementaci faktorky nebo injektoru.
Zjistit Více O ProjektuMarsTech Threading
C++ knihovna pro práci s vlákny a jejich snadnou synchronizaci. Implementuje thready, worker thready, eventy i thread pooly.
Standard C++ sice obsahuje implementaci vláken (threadů) a synchronizačních objektů, ale opět nejsou připravené na snadné unit testování a jejich použití vyžaduje často opakující se kód. Použití reálných vláken v unit testech je velice složité.
Zjistit Více O ProjektuMarsTech Configuration
C++ knihonvna implementující aktivní a pasivní konfiguraci. Pasivní konfigurace je nastavení, které si program/aplikace přečte jednou při spuštění, aktivní konfiguraci může program měnit. Lze ji použít i pro udržení stavové informace.
Většina projektů si implementuje vlastní konfiguraci. Pro každý program/aplikaci znovu a znovu. To je časově neefektivní. MarsTech konfiguraci stačí vložit seznam identifikátorů a jejich defaultní hodnoty (odvozuje se od nich typ) a máte konfiguraci implementovanou. Není potřeba vyvíjet ji znovu.
Zjistit Více O ProjektuMarsTech DLL Factory
C++ knihovna pro práci s dynamickýma (na Linuxu sdílenýma) knihovnama. Stačí mít instance MarsTech DLL Factory a můžete pracovat s dynamickými knihovnama. DLL faktory zajistí načtení a držení dynamické knihovny.
Práce s dynamickýma (sdílenýma) knihovnama může být složitá a při nesprávném použití hrozí pád aplikace. DLL Factory řeší většinu problémů spojených s dynamickýma knihovnama a usnadňuje práci s něma.
Zjistit Více O ProjektuMarsTech Module
C++ knihovna pro podporu modulárního software. Obsahuje implementaci Module Manageru, který řídí spuštění a zastavení modulů (pluginů).
Často vídávám software, který se snaží být univarzální a mít veškerou funkcionalitu na jednom místě. Takový software je bohužel složitý na údržbu, testování (automatizované testování je téměř nemožné) a je problém do něj přidat novou funkcionalitu. Dříve nebo později je takový software potřeba napsat znovu. Díky modulům, které implementují jednotlivé funkcionality se dá přepisu vyhnout. Stačí změnit dotyčný modul případně přidat nový.
Zjistit Více O ProjektuKontaktujte Mě
POŠLETE VAŠÍ ZPRÁVU