1. Home
  2. >>
  3. Vaardigheden

Databases, migraties, DWH, AI

De database is in feite de kern van het bedrijf. In de database wordt data geordend en opgeslagen en hieruit wordt zinvolle informatie gegenereerd. Wat organisaties willen heeft direct gevolgen voor de structuur, hier moet van tevoren over worden nagedacht. Het bedenken van deze structuur is een vak apart! Reeds in 1996 zag ik de enorme mogelijkheden van relationele databases en heb ik mij hier dagelijks op toegelegd. Eerst als programmeur, later als project manager.

Ik was in eerste instantie enthousiast over de mogelijkheden qua database marketing en het structureel benaderen van potentiële klanten (+opvangen van de respons). Nog voordat Google bestond ontwikkelde ik robots die het internet afgingen om (publieke) informatie in kaart te brengen. Internet voor business intelligence! Nog steeds is dit zeer interessante materie. Ik had hiervoor grote Nederlandse bedrijven als klant. Later heb ik natuurlijk databases ingezet voor allerlei doeleinden en toepassingen.

Databases / applicaties waarmee ik bekend ben:

  • Redis
  • MySQL
  • PostgreSQL
  • MariaDB
  • Oracle
  • SQL Server
  • noSQL: MongoDB, DynamoDB, Elastic

Ik ken de verschillen en weet in elke situatie welke database de juist keuze is.

Werkzaamheden die ik rondom databases heb uitgevoerd zijn:

  • Data modelling (conceptueel, logisch, fysiek)
  • database design
  • Query ontwerp
  • Optimalisatie (op query niveau, database niveau en server niveau)
  • Load balancing / replicatie voor grotere toepassingen
  • Migratiewerkzaamheden algemeen
  • Cloudmigraties, AWS, GCP
  • Machine- & Deep Learning & AI (Python: Pandas, SKlearn, TensorFlow, Tensorboard, SciPy, Predictive Analytics, LTSM, Keras, NumPy, Neural Networks, Arima, Timeseries analysis & forecasting, Classification Modelling, Regression Analysis, CLustering, Deep Learning, Anomaly detection, Sequence mining, Computer Vision, NLP )
  • DWH Design (DWH tuning, Data Vault modeling, Kimball, Inmon, Snowflake, Google Cloud, AWS)

Programmeertalen / Software ontwikkeling

De eerste programmeertaal die ik mij aanleerde was Perl. Perl is een soort van mijn eerste liefde… Perl is high-code en de syntax lijkt op C. Python lijkt ook op Perl hoewel het robuuster, iets stabieler en beter schaalbaar is dan Perl. Grappig detail is dat Perl veel sneller is dan Python! Maar de analyses die je kan maken in Python met een paar regels code zijn geweldig!

Ik heb uitgebreide ervaring met:

  • RiskShield RSS, Riskshield Client, AppCenter & Case Manager
  • Perl
  • PHP
  • Python 3
  • Machine learning & AI (Pandas, SciKit, NumPy)
  • SQL (natuurlijk) en noSQL (MongoDB)
  • C, C++, C#
  • MQL4, XML, JSON, SOAP, REST, HTML5, CSS, AJAX, DHTML, Java(script), JQUERY, REST api’s, etc.

Tools

  • IntelliJ / PyCharm
  • Jira, Confluence, BitBucket, GitHub, GitLab, Sourcetree
  • Scrum / Agile werken

Low code zoals Mendix (mee bekend) is aardig voor prototyping en heeft voordelen maar is alleen in bepaalde situaties toepasbaar (vendor lock-in is tevens een groot risico qua continuïteit!).

Met behulp van deze programmeertalen en protocollen heb ik honderden verschillende toepassingen bedacht en ontwikkeld voor bedrijven waarover u meer kunt lezen in mijn portfolio.

Serverbeheer en administratie

Ik heb jarenlang de hosting verzorgd en de (fysieke!) servers beheerd van zowel mijn klanten als voor mijn eigen Consultancy & Development bedrijf. Ik heb het hier niet over plug-and-play cloud oplossingen maar ik richtte de servers zelf in (vanaf nul) en reed zelf met servers in de kofferbak naar het datacentrum in Amsterdam. Tegenwoordig is dat allemaal een stuk eenvoudiger.

Daarnaast is het beheren natuurlijk een grote uitdaging en dan doel ik met name op de schaalbaarheid, snelheid en last but not least: De beveiliging. Hier heb ik ruime ervaring mee. Na enkele (goed oplosbare) hacks heb ik geleerd wat ik moet doen om het risico op hacken zo klein mogelijk te maken, hacks te detecteren, te analyseren en botfabrieken buiten de deur te houden.

Ik heb ervaring met:

  • RHEL 7/8 (Redhat Enterprise Linux)
  • Ansible, XLDeploy, CI/CD Pipelines, Jenkins
  • PLESK, CPANEL, Webmin
  • DNS beheer, SSL, Load balancing
  • Firewall configuratie & beveiliging
  • User administratie, IAM
  • Cybersecurity / Intrusion detection & analysis
  • Apache, nginx, TCP/IP, etc.

Projectmanagement

Naarmate mijn Consultancy & Development bedrijf groeide ben ik gaan samenwerken met externe programmeurs terwijl ik zelf de algemene voortgang van het project bewaakte.

Ik ben na het inventariseren van de doelen en wensen van de opdrachtgever in staat een zeer helder functioneel ontwerp te maken en in overleg met uitvoerders de functies te bespreken. Hierbij baseer ik me niet bij voorbaat op een bepaalde methode (zoals Agile, Scrum) maar altijd op de context. Noem het “Contextual Project Management” of “People based Project Management”

Alvorens ergens voor te kiezen dienen dus de volgende vragen te worden beantwoord:

  • Met wie heb ik te maken?
  • In hoeverre kan het werk in stukjes gehakt worden? In hoeverre is dit wenselijk?
  • Met hoeveel verschillende uitvoerders en disciplines heb ik te maken?
  • Moet alles voorgekauwd worden of komt men graag zelf met suggesties?
  • Hoe sterk is de betrokkenheid? Hoe snel werkt men? Ervaring? Kwaliteiten?

Deze vragen moeten naar mijn mening eerst beantwoord worden en zijn bepalend voor het verdere verloop, intensiteit en frequentie van de begeleiding. Nothing beats experience!

Pas hierna praten we over de methodiek en instrumenten. (Agile, Scrum, Prince2, Lean, Kanban, Togaf, Archimate, Waterfall, APF, PMBOK, CCPM…etc).

Ik heb jarenlang IT projecten begeleid en gedelegeerd naar zowel eigen personeel (in-house), als externe specialisten (o.a. naar India). Soms laat ik door verschillende partijen tussentijdse opleveringen plaatsvinden. Mijn streven is altijd om de opdrachtgever zo snel mogelijk iets te laten zien: Korte feedback loops. Daar waar mogelijk werk ik Agile.

Overschrijdingen (qua budget of tijd) staan simpelweg niet in mijn woordenboek omdat ik goede inschattingen kan maken door mijn uitgebreide technische kennis gecombineerd met mijn vermogen om teams effectief aan te sturen en te motiveren.