In de afgelopen 20+ jaar ben ik met veel technieken — protocollen, programmeertalen, libraries, computer-architecturen, etc. — in aanraking gekomen. Zo heb ik mijn ‘toolbox’ kunnen vullen met gereedschappen waar ik in vertrouw. Deze ‘toolbox’ is veranderlijk: onbekende zaken wekken doorgaans mijn interesse en onderwerp ik vroeg of laat aan een ‘evaluatie’. Afgezien van mijn voorkeuren vereenzelvig ik mijzelf liever niet met ‘de schroevendraaier’ of ‘de soldeerbout’: ik zou mezelf (bij wijze van spreken) eerder profileren als “een timmerman” dan “een hamerspecialist”. Vanuit dit perspectief beleef ik het concept “buiten mijn comfort zone” vaker als “welbekend, maar…”.
BSD en Linux
Ik ben een UNIX en Linux guru: ik werk en ontwikkel hier dagelijks intensief mee. Eind jaren 90 kwam ik in mijn studietijd in aanraking met Linux. Ik wilde zelf Linux-systemen met de hand gaan maken: dit waren op maat gemaakte “Linux from scratch”-achtige systemen die ik gebruikt heb op oude hardware d.w.z. “computer-afval”. In deze periode heb ik het meeste van Linux en ‘hardware troubleshooting’ geleerd. Later ging ik Slackware Linux gebruiken. Nu gebruik ik Debian Linux. Naast Linux heb ik OpenBSD gebruikt, voornamelijk als internet gateway c.q. router. Ik heb daarnaast ook ontwikkeld op OSX.
Ik heb veel fundamentele kennis van Linux: ik heb enige ervaring met het ontwikkelen en aanpassen van hardware drivers en systeemsoftware. Deze kennis is met name inzetbaar tijdens embedded Linux software of platform ontwikkeling.
Programmeren
Vanaf de jaren 90 heb ik een fundament gelegd van computertechniek, elektronica en embedded systems engineering: ik heb ervaring met assembler (x86, 6502, AVR8), later gevolgd door C en C++. Vanuit dit fundament heb ik ervaring en interesse in de ontwikkeling van besturingssystemen en firmware c.q. ‘bare bones software’ (software dat op een computersysteem draait zonder besturingssysteem).
In de jaren die volgden ben ik me meer gaan focussen op de ontwikkeling van software die strikt genomen een abstracter fundament vereisen. Vervolgens zijn naast C en C++ o.a. de volgende programmeertalen in mijn ‘toolbox’ beland: Golang e.g. Google Go, Javascript, Perl, Python, Raku, Ruby en Typescript.
Ik heb daarnaast interesse in C#, Erlang, Haskell, Lisp, Rust, Scala en Scheme.
Mijn focus verschuift van de ene taal naar de andere, afhankelijk per ‘periode’ of project: niet alle programmeertalen kunnen volledig in mijn werkgeheugen zitten. Ik begrijp echter de onderliggende concepten, tot op het niveau dat ik interesse heb gekregen in de ontwikkeling en ontwerp van zulke programmeertalen en domain specific languages. Uiteindelijk ben ik verworden tot een “polyglot-programmeur” waardoor ik vrij gemakkelijk andere programmeertalen kan oppikken.
Zoekt u een ontwikkelaar voor een zeldzame of exotische programmeertaal of DSL?
Wilt u meer weten over mijn ervaringen met een bovenstaande programmeertaal?
Neem gerust contact met me op!
Overige tools
Naast UNIX platformen en een batterij aan compilers en interpreters voor de verschillende programmeertalen ben ik ook welbekend met o.a. Apache, Git, HTML en CSS, Latex, NGINX, PostgreSQL en Redis.
Meer weten? Zie mijn aanbod. Contact? Zie beneden.