Skills en Expertise

In de afgelopen tien jaar waarin ik heb geprogrammeerd, heb ik met enorm veel programmeertalen en frameworks te maken gehad, van plain C tot Ruby on Rails en van Java 6 tot Python Django. Hierdoor heb ik uitgevonden welke talen en frameworks mij het best liggen, en waar ik het beste resultaat kan behalen om de behoeften van de eindgebruiker het beste te vervullen.

De afgelopen jaren heb ik me gespecialiseerd in enkele stacks, zoals hieronder te lezen. Hoewel ik natuurlijk mijn voorkeuren heb, zal ik altijd the best tool for the job kiezen, onafhankelijk van mijn voorkeur.

Ik programmeer, tenzij het project anders vereist, volgens de Coding Standards van Bytecode. De Coding Standards zijn hier te vinden.

Sinds ongeveer een jaar vervul ik bij Bytecode de rol van Technical Lead. Dit betekent dat ik nog slechts een klein deel van mijn tijd nog zelf code schrijf, omdat ik me meer bezig hou met software architectuur, het design van de code op hoger niveau, het uitvoeren van code-reviews en het begeleiden van de developers bij Bytecode. Natuurlijk zijn er ook nog genoeg momenten waarop ik zelf code schrijf.

De technieken waar ik momenteel het meeste mee werk zijn in bold.

Web-development

  • Typescript/Javascript (NodeJS, Express)
  • ReactJS (icm. Redux) en Angular 2+
  • Python, (Django, Flask)
  • Elixir (Phoenix)
  • Rust (Rocket, Diesel)
  • C# (.NET Core)
  • Java, Scala
  • PHP (WordPress, Laravel, Magento 2)

Mobile development

  • React Native (Expo)
  • Progressive Web Apps
  • Ionic 2+
  • Flutter
  • Accelerated Mobile Pages

Databases

  • PostgreSQL
  • MySQL
  • NoSQL (MongoDB)
  • GraphQL

DevOps en Site Reliability Engineering

  • Linux (Arch, Ubuntu, CentOS)
  • Docker (Compose)
  • Ansible
  • CI/CD (GitLab)
  • Terraform
  • Cloud (DigitalOcean, AWS)
  • Nginx
  • Kubernetes

Werkwijze




Persoonlijke ontwikkeling

Als developer is het belangrijk om altijd te blijven leren en om ervoor te zorgen dat je continue bij blijft met de nieuwste technieken. Om deze reden besteed ik één dag per week aan zelf-educatie.

Waar ik momenteel mee bezig ben:
  • Onderzoek doen om voor Bytecode vaste “stacks” op te stellen voor ontwikkeling
  • Lezen van boeken gerelateerd aan het proces/management met softwareontwikkeling
  • Lezen van boeken gerelateerd aan productiviteit en soft-skills
  • Lezen van The Art of Computer Programming, deel 1 tot 4A (Donald Knuth)
Waar ik de afgelopen tijd mee bezig ben geweest (meest noemenswaardig):
  • Specialiseren richting softwarearchitectuur en -design
  • Functioneel programmeren met Elixir (+Phoenix framework)
  • Verdiepen in geavanceerde web security en het beveiligen van applicaties
  • Lezen van Clean Code, The Clean Coder en Clean Architecture (Robert C. Martin)
  • Low-level web programming met Rust (icm Rocket)
  • Lezen van Start With Why en soortgelijke boeken richting startup-branding
  • Verdiepen in compilers en assembly Language(s)
  • Kubernetes in production
Wat ik nog wil gaan leren (meest noemenswaardig):
  • Functioneel front-end web development met Elm, ReasonML of ClosureScript
  • Full-stack ontwikkeling met het Lisp-dialect Clojure (en dus ClojureScript)
  • WebAssembly, icm. Rust, Go en C
  • Artificial Intelligence en Neural Networks met Tensorflow




Ontwikkelomgeving

Ik krijg vaak vragen over hoe mijn lokale ontwikkelomgeving eruit ziet en hoe alles is geconfigureerd. Om deze reden heb ik alles kort samengevat op deze pagina.

Operating system

Voor het grootste deel van de tijd maak ik gebruik van Arch Linux, of Mac OS. Het liefst zou ik alles binnen Arch Linux doen, echter is dat helaas niet haalbaar omdat ik regelmatig iOS apps moet compilen, waarvoor Mac OS nodig is.

Arch config

Binnen Arch Linux maak ik gebruik van dwm als window manager, Ranger als file manager en ZSH met Oh My ZSH binnen ST (Simple Terminal) als terminal.

Code editors

Ik maak gebruik van twee verschillende code editors: NeoVim (een betere en backwards-compatible fork van Vim) en Visual Studio Code (afgekort: VS Code).

Mijn voorkeur gaat uit naar werken met NeoVim, maar voor veel projecten maak ik toch gebruik van VS Code, omdat dit meer IDE functionaliteiten biedt, waardoor ik productiever kan zijn als ik werk in middelgrote codebases.

Hiernaast maak ik regelmatig gebruik van IntelliJ IDEA, omdat voor grootschalige projecten code editors zoals (Neo)Vim en VS Code helaas niet genoeg support kunnen bieden mbt code intelligence om effectief te werken.

Binnen zowel mijn code editors als mijn terminal maak ik gebruik van de Monokai kleuren, omdat ik deze als erg duidelijk en prettig ervaar.

Dotfiles (configbestanden)

Mijn “dotfiles” zijn te vinden in mijn dotfiles repository op GitHub.

Omdat Arch Linux opzetten toch wel een redelijk arbeidsintensief klusje kan zijn, en ik graag dingen automatiseer, heb ik op basis van Luke Smith’s scripts dit proces geautomatiseerd. Deze “bootstrapping scripts” zijn te vinden in de LARBS respository op mijn GitHub profiel.

Voel je vrij om mijn dotfiles te gebruiken en aan te passen voor eigen gebruik!

Vragen of hulp nodig?

Ik ben erg gepassioneerd over hoe ik alles heb geconfigureerd, en ik help anderen graag. Mocht je vragen hebben, mail me gerust!