In het kort
Ik ben beschikbaar als freelancer voor softwareontwikkeling (full-stack), unix/linux systeem- en applicatiebeheerder en system integrator.
Met mij haalt u een zelfstandige doorzetter in huis die flexibel inzetbaar is als programmeur, beheerder of engineer.
Softwareontwikkeling
Ik heb ervaring met het ontwerpen, implementeren, migreren, integreren en onderhouden van (web)applicaties.
Ik heb gewerkt aan bedrijfsinformatiesystemen, billingsystemen en systemen om datasets in te lezen, om te zetten en te laden of juist om datasets te exporteren in hosting-, telecom- en reisbranches.
Ik ben full-stack inzetbaar. Analyse van bedrijfsprocessen, het ontwerpen van informatiesystemen, het ontwerpen van de onderliggende database (inclusief stored procedures en triggers), business logic tot en met het maken van de user interface of een API via SOAP of REST.
Ik heb met diverse talen en frameworks ervaring. Voorbeelden zijn Java EE 6, Java Server Faces, PHP, Symfony, Propel, Bootstrap, Smarty, Twig en jQuery.
Alhoewel niet mijn specialiteit pak ik projecten in Python en Perl op. Idem voor C en C++.
Ik heb diverse legacy-systemen met behoud van data gemigreerd naar nieuwere systemen.
Systeemintegratie
Ik heb ervaring met het ontwerpen, implementeren, beheren en troubleshooten van complexe oplossingen bestaande uit diverse onderdelen.
Voorbeelden hiervan zijn prepaid hotspotoplossingen op basis van wireless controllers, radius en eigen provisioning- en billingsysteem of een systeem waarbij NetFlow-data zowel realtime als offline kan worden uitgesplitst naar simkaart. Een ander voorbeeld is software om een traffic-shaper-appliance aan te sturen.
Unix/Linux Beheer
Als (unix/linux) systeem- en applicatiebeheerder heb ik ervaring met Apache, MySQL, PostgreSQL, FreeRadius, Tomcat, Glassfish, Syslog-NG, Cacti, Nagios, Postfix, Squid en Sendmail
Qua distributies heb ik ervaring met Slackware, Gentoo, Ubuntu/Debian en Centos/RedHat. Ook kan ik mijn weg goed vinden in Solaris en OpenBSD.
Ik heb ervaring met het ontwerpen en implementeren van kleinschalige netwerken (met statische routering) inclusief DHCP, DNS, NTP, LVS, iptables en/of PF.
Profiel
Ik ben afgestudeerd aan de Technische Universiteit Twente in Technische Informatica.
Ik ben altijd bezig met het leren van en experimenteren met nieuwe onderwerpen, technieken en vaardigheden op het gebied van computers, software en techniek in het algemeen om zo daaruit en uit mezelf het maximale te halen. Ik hou van mooie, technisch, esthetische en visuele oplossingen. Ik werk graag aan de dingen die voor mij een uitdaging zijn. Dat pak ik dan projectmatig aan en neem de verantwoordelijkheid om het van het begin tot het eind uit te voeren.
Waardering krijg ik het liefst in de vorm van ruimte voor persoonlijke groei, verantwoordelijkheid en zelfstandigheid/onafhankelijkheid.
Ik werk het liefst individueel en onafhankelijk van collega's en leidinggevenden en ik rapporteer het liefst schriftelijk, ook voor mezelf.
Ik heb ervaring met het beheren van 100-en unix en linux-systemen in een hosting-omgeving, het ontwikkelen van (met name web-)applicaties t.b.v administratie- en billing- in een telecom-omgeving en het migreren en integreren van bestaande applicaties.
Projecten waar ik op trots op ben waren het ontwikkelen van de software voor een welfare-oplossing voor defensie met daarin prepaid en postpaid internet, telefoon en televisie voor ongeveer 600 vaste en mobiele gebruikers in 5 kampen aangesloten via satelliet verspreid over Afrika en het Midden-Oosten en het werken aan een systeem voor het verzamelen, analyseren en presenteren van voertuigdata voor een leasemaatschappij zodat klanten inzicht kregen in hun ritten, rijgedrag en uitstoot en dat we ze diensten konden aanbieden zoals parkeren.
Met mij haalt u een zelfstandige doorzetter in huis die flexibel inzetbaar is als programmeur, beheerder of engineer. Ik richt me op zelfstandigen en bedrijven die (een deel van) hun administratie of proces willen automatiseren.
Ik werk liever niet als teamlead en/of in (grote) kantoortuinen.
Curriculum Vitae
Werkervaring
Opleidingen
Cursussen
Talen
Engels. Vloeiend schrijven en spreken. Duits. Schrijven en spreken.
Interesses
Yoga, fitness, hardlopen.
Fotograferen, muziek luisteren, motorrijden.
Recente opdrachten
Hieronder vindt u een aantal van mijn recente opdrachten.
Terberg Leasing, Justlease
Terberg Business Mobility is een leasemaatschappij welke verschillende vormen van personen- en bedrijfswagenlease aanbiedt.
Om de klanten inzicht te geven in hun bestellingen, ritten, tankingen, facturen etc. en ze veel zelf te laten regelen, zijn er diverse 'Mijn ...'-omgevingen opgezet.
Als developer was ik actief in verschillende Scrum- en Kanban-teams voor het onderhouden en doorontwikkelen van de REST en/of GraphQL backends van deze omgevingen.
Development werd gedaan in Symfony met behulp van Mysql, PostgreSQL, Redis en Docker op een Kubernetes omgeving op Microsoft Azure.
Terberg Leasing, Driveguide
Driveguide is een dienst met een app en een dongle voor in de auto waardoor ritten geregistreerd worden en additionele diensten aangeboden kunnen worden zoals tanken, parkeren en pechhulp.
Hierbij moeten honderden berichten per seconde verwerkt worden welke van de auto’s komen. Deze berichten worden omgezet in ritten. De ritten worden beoordeeld, geclassificeerd, bijv. op rijgedrag en brandstofverbruik en CO2 emissie.
De additionele diensten zoals tanken, parkeren en pechhulp werden gedaan via koppelingen met diverse providers.
De bijzonderste ervaring was een pilot voor het CBR, waarin we op een afgehuurd circuit met onze dongle parameters probeerden te bepalen voor ‘huftergedrag’.
Development werd gedaan in Symfony 3 met behulp van MySQL, Redis en MongoDB op een Vagrant Centos box. Er wordt productie gedraaid met Ubuntu op enkele VPSen en bare metal.
In het begin heb ik gewerkt in een multidisciplinair scrum team. Later, toen de prioriteiten van Terberg voor wat betreft Driveguide veranderen, ben ik alleen verantwoordelijk geworden voor bugfixen en support.
Neema Tours online aanvraag formulier
Neema Tours is een kleinschalige touroperator, die werkt vanuit een passie voor Tanzania. Zij proberen de diversiteit van Tanzania aan de reizigers te laten zien door niet alleen naar de wildparken te gaan, maar mensen ook in contact te brengen met elkaar.
Als klanten zich aanmelden voor een reis moeten er veel gegevens verzameld worden. Dit gebeurde met papieren formulieren door de klant zelf. Het overnemen van de gegevens in de door Neema Tours gebruikte systemen kostte tijd en een typefout is zo gemaakt.
In opdracht van de klant zijn er online formulieren ontwikkeld waardoor de gegevens meteen digitaal beschikbaar zijn. Tevens is er een koppeling gemaakt met het bestaande boekingssysteem en krijgen de klanten voortaan via de e-mail een kopie van het formulier.
De formulieren zijn gemaakt op basis van het Symfony 2.8 framework met Twig en Swiftmailer en voor de frontend is er gebruik gemaakt van Bootstrap en Jquery. Validatie is zowel server side als client-side geïmplementeerd. Development is gedaan via een virtuele Debian Linux machine en de software draait productie op het hostingaccount van de hoofdwebsite van Neema Tours.
Hieronder een enkele screenshots van het formulier
Gannexion aanpassen dialplan Asterisk
Gannexion is een praktisch ingestelde onderneming die zich concentreert op het aanbieden van draadloze communicatie oplossingen en diensten voor professionele gebruikers.
Gannexion heeft o.a. een oplossing voor telefonie, internet, radio en televisie op basis van prepaid en postpaid billing voor lokaties waar deze standaard niet beschikbaar zijn, bijv. uitzendgebieden voor militaire operaties. Oorspronkelijk is het systeem alleen ontwikkeld voor Nederlandse afnemers.
In deze oplossing wordt gebruik gemaakt van Asterisk voor het telefoniegedeelte. Op basis van prefixlijsten werden de kosten voor telefoongesprekken bepaald. Sinds korte tijd worden gedeelten van de oplossing ook gebruikt door meerdere afnemers met welke verschillende tarieven en vrijstellingen zijn afgesproken. Het systeem moest gewijzigd worden om dit mogelijk te kunnen maken.
Kikvors heeft de onderliggende databasestructuur, stored procedures en triggers aangepast om dit mogelijk te maken. Daarnaast zijn de databasekoppelingen van Asterisk naar de database uitgebreid. In het dialplan is de flow gewijzigd en wordt er nu gebruik gemaakt van de nieuwe databasekoppelingen.
Er is gewerkt met Asterisk en PostgreSQL op een CentOS Linux platform.
Globecomm Europe opschonen database
Globecomm Europe verzorgt zowel gedeelde als dedicated satelietoplossingen vanuit hun teleport in Nederland en via het internationale Globecommnetwerk over de gehele wereld.
Globecomm Europe biedt Inmarsat I4 diensten aan. Dit is een soort mobiel internet via satelliet. De dienst wordt ingekocht bij Inmarsat maar Globecomm Europe is zelfstandig wat betreft het toelaten van simkaarten op het netwerk. Hiervoor wordt Radius gebruikt, welke alle informatie ophaalt uit een database. Deze database is na jaren van gebruik vervuilt geraakt.
Op verzoek van de klant zijn er diverse scripts geschreven om op basis van bepaalde criteria simkaarten te selecteren en alle gerelateerde informatie uit de database te verwijderen. De scripts zijn zo gemaakt dat ze door de klant zelf aangeroepen kunnen worden en er is documentatie geschreven over het gebruik van de scripts. Middels command line switches kan er bepaald worden of er een testrun gedaan wordt (om te kijken welke informatie zal verdwijnen) of dat de informatie ook verwijderd wordt.
Er is gewerkt met Radius, PHP, Propel en PostgreSQL op een Centos Linux platform.
Evocomms radius consultancy
Evocomms is gespecialiseerd in communicatieoplossingen voor gebruikers op afstand overal ter wereld. De meeste van hun oplossingen vertrouwen op satellietverbindingen, maar ze hebben ook de nodige ervaring via vaste verbindingen met bijv. huurlijnen of straalverbindingen.
Evocomms wil Thuraya aanbieden aan hun klanten en ze bieden al Inmarsat I4 aan aan hun klanten. Beiden diensten koop je in bij de leveranciers, maar een deel van de provisioning neem je zelf voor rekening met behulp van een Radius-setup.
Kikvors is gevraagd om advies en aanwijzigen voor het ontwerp en de implementatie door hun eigen engineers.
Er is gewerkt met Radius en PostgreSQL.
Gannexion WLC roaming issues
Gannexion is een praktisch ingestelde onderneming die zich concentreert op het aanbieden van draadloze communicatie oplossingen en diensten voor professionele gebruikers.
Gannexion heeft o.a. een oplossing voor telefonie, internet, radio en televisie op basis van prepaid en postpaid billing voor lokaties waar deze standaard niet beschikbaar zijn, bijv. uitzendgebieden voor militaire operaties.
In deze oplossing wordt WiFi aangeboden op basis van Cisco WLC. Roaming issues in combinatie met de gebruikte L3 authenticatie zorgden voor veel problemen.
Kikvors is gevraagd de roaming tussen access points, de L3 authenticatie en de combinatie daarvan te onderzoeken. Dit heeft geleid tot aanpassingen aan de L3-authenticatie en bijbehorende applicatie, wijzigingen op de WLC configuratie en een TAC-case voor Cisco support om niet verklaarbaar gedrag van de WLC te duiden.
Er is gewerkt met Cisco WLC, Radius, PHP, Apache, PostgreSQL, Tcpdump/Wireshark en Aircrack.
Gannexion - Python proxy
Gannexion is een praktisch ingestelde onderneming die zich concentreert op het aanbieden van draadloze communicatie oplossingen en diensten voor professionele gebruikers.
Gannexion heeft o.a. een oplossing voor telefonie, internet, radio en televisie op basis van prepaid en postpaid billing voor lokaties waar deze standaard niet beschikbaar zijn, bijv. uitzendgebieden voor militaire operaties.
In deze oplossing wordt gebruik gemaakt van een appliance die niet te monitoren is met standaard tooling zoals SNMP en daardoor niet te gebruiken is met de gebruikte monitoringsoplossing. Er is wel een Python API beschikbaar. Deze API levert monitoringinformatie in bulk terwijl slechts enkele meetgegevens nodig zijn en er gebruik wordt gemaakt van verbinding welke beperkt is in bandbreedte.
Kikvors is gevraagd een oplossing te implementeren welke de klant zelf bedacht had: een proxy naast de appliance om alle monitoringinformatie op te vangen en een clientscript dat aan de proxy alleen de benodigde gegevens over de beperkte verbinding vraagt. Het clientscript is aanroepbaar door de bestaande monitoringsoplossing.
Er is gewerkt met Procera, Python en PRTG op Centos Linux en Windows Server.
Gannexion - 802.1X en L3 authenticatie
Gannexion is een praktisch ingestelde onderneming die zich concentreert op het aanbieden van draadloze communicatie oplossingen en diensten voor professionele gebruikers.
Gannexion heeft o.a. een oplossing voor telefonie, internet, radio en televisie op basis van prepaid en postpaid billing voor lokaties waar deze standaard niet beschikbaar zijn, bijv. uitzendgebieden voor militaire operaties. Zo wordt er prepaid WiFi aangeboden na authenticatie via een webinterface.
Door roaming, een wisselende dekkingsgraad en energiebesparend gedrag op de clients wordt de WiFi-verbinding wel eens onderbroken. Dit in combinatie met de gebruikte WiFi-infrastructuur leidt er toe dat klanten zich steeds onnodig opnieuw moeten aanmelden. De klant vermoedde dat 802.1X een oplossing zou kunnen zijn voor dit probleem.
Kikvors is gevraagd een proof of concept te bouwen met de bestaande componenten naast het productienetwerk om te kunnen testen met 802.1X. Er is een extra WLAN opgezet met 802.1X authenticatie d.m.v. van certificaten, alsmede een extra radius server. Er is gebruik gemaakt van de bestaande klantendatabase welke is aangepast voor simultaan gebruik van beide methoden van authenticeren. Om dit verder gescheiden te houden van de bestaande opzet is er een nieuwe webserver opgetuigd en is een nieuwe webinterface gebouwd op basis van het Symfony Framework met Bootstrap en JQuery als frontend. Dit alles zonder uitval in het productienetwerk.
Er is gewerkt met Radius, 802.1X, Cisco WLC, Apple Configurator, PostgreSQL, Propel, Symfony, PHP en Apache in een CentOS Linux omgeving en diverse mobiele apparaten zoals laptops (windows, os x), iPads, iPhones en diverse Android apparaten. Een groot deel draait op een VMWare infrastructuur.
Gannexion - Onderhoud en wijzigingen prepaid toegangsysteem
Gannexion is een praktisch ingestelde onderneming die zich concentreert op het aanbieden van draadloze communicatie oplossingen en diensten voor professionele gebruikers.
Gannexion heeft o.a. een oplossing voor telefonie, internet, radio en televisie op basis van prepaid en postpaid billing voor locaties waar deze standaard niet beschikbaar zijn, bijv. uitzendgebieden voor militaire operaties. Het systeem is reeds jaren in gebruik.
Door voortschrijdend inzicht en ervaring is er behoefte tot het wijzigen van functionaliteit en het oplossen van bekende bugs. Tevens moesten de systemen waar het systeem op draait onderhouden worden: het opschonen van (log)data, het vergroten van file systemen en het bijwerken van het besturingssysteem.
Kikvors is gevraagd deze wijzigingen uit te voeren. De systemen zijn bijgewerkt. De bugs zijn onderzocht en er zijn voorstellen gedaan tot oplossing. Na de keuze van de klant zijn de oplossingen geïmplementeerd en getest. Wijzigingen aan de applicatie zijn doorgevoerd.
Er is gewerkt met Radius, Apache, PostgreSQL, PHP op een CentOS Linux omgeving.