Work Experience
Introduction
I enjoy learning about and gaining experience in different industries and in different
company structures, specifically focusing on the technologies used, rather than the
final product
This benefits the company as I can provide a fresh innovative view.
I am highly adaptable and well able to adjust to new projects. While still maintaining a
high skill level for the challenges that any industry faces such as:
- Improving the speed and scalability of the application
- The ability to quickly test new features and reiterate over them if needed
-
Isolating parts of the applications (Domain Driven Design) to create a more reliable
product
- Implementing the architecture (mono, microservices, serverless) using IaC
- Improving reliability and user experience
- Creating strong CI/CD integrations to improve speed of deployment
Vicrea (Contract) (Remote)
Period
September 2022 – Present
Branch
Geometry management for local governments
Title
Solution architect/Full stack developer
Methods & Techniques
Scrum (AzureDevops)
Systems Used
Azure DevOps, K8s, Docker, Cloudflare, PostgreSQL
Languages
C#, TypeScript
Frameworks
EF, Remix, React, Kendo, GRPC, serverless, IdentityServer4, GeoServer
When I joined Vicrea, the application was a Proof of Concept. It was built locally on
portainer instances. Little consideration was given to reliability, security and
isolation of business logic. My main task was to get a production-ready application
launched. By leveraging my years of experience in various software stacks. I was able to
create a version of the application that could be run natively on the cloud while
maintaining high observability that would be expected of any modern application. Lastly
I removed all manual steps such as the provision of new customer environments and
ensuring the application could handle large amounts of data, without incurring a large
cost to the company.
The main tasks i had at Vicrea were:
-
Creating CI/CD pipelines to automatically deploy new versions of microservices
(levering helm)
-
Isolating the FE from the BE and deploying this using Cloudflare workers in order to
have a serverless global low latency way to serve HTML/CSS/JS
-
Building logic so that part of the FE was only available for authenticated users
-
Automatically using infrastructure as code provision new environments, including
databases, docker registries and k8s clusters
-
Refactoring major parts of the existing code to be compliant with Domain Driven
Design concepts
-
Creating background processes that would pull large datasets from various government
agencies. This was then redistributed to various internal api's, which in turn would
provide insights for users
-
Removing FE-microservices and creating a mono FE, refactored from single-spa to
Remix, introducing Tailwind and moving from Leaflet to OpenLayers
-
Mentoring/teaching other developers in kubernetes and how to develop decoupled
software
Kiwa (through TeamRockstar) (Appeldoorn, The Netherlands)
Period
June 2020 – September 2022
Branch
Manure management
Title
Full stack .net core developer
Methods & Techniques
Scrum/Kanban (AzureDevops)
Systems Used
Azure DevOps, K8s, Docker, Cloudflare, Kafka, ElasticSearch
Languages
C#, TailwindCSS, JavaScript, Yaml, Soap
Frameworks
AutoMapper, Entity framework, Microservices, pub-sub, Kafka, Tailwind, Web-Components,
Lit, Snowpack, Cloudflare, ES, HTTPS, Agro Tunnel, OAuth 2.0
We have been tasked by Kiwa to produce a proxy type application to collect and process
data for the manure industrie, since this system had to be asynchronous, reliable,
secure and highly flexible, we chose to build this in containers and with kubernetes,
since I had previous experience in this, I was tasked with setting up the basic system
and design it. Because of my previous experience we chose to use Kafka as the Pub-Sub
system, since this is highly reliable and ES for logging, since this is almost a facto
standart by now. We decided for a API based FrontEnd using an utility based CSS and Web
components to keep this part also very flexible and scalable. This was the first time I
had to do everything from scratch and learned a lot from this, also new for me was the
extended way we used EF, this is something I dealt with in the past, but I did not make
myself an expert in. We also created our own OAuth server due to the restrains presented
to us, all with all a project that we not only proved 'new' technologies are worth it,
but they are also highly flexible and maintainable when done right.
A few selections of the main tasks Daniël did was:
- Build, design and implement the infrastructure
-
Introduce new technologies to Kiwa who still runs some of their servers on bare
metal and has no prior history with technologies like Docker
-
Build, develop and CI/CD backend services to process: SOAP,XML,SFTP and have
restfull API's to have a very flexible set of data to insert and collect
-
Create a dynamic FrontEnd mostly driven by data entries (tables) that need to be
very readable, responsive and flexible for future changes
-
Create a full OAuth flow, which has multiple login systems, with roles that can be
maintained from the FE, it also has a "Permission Module" uniquely developed for the
Agriculture market, but highly customizable for future portals
-
Improve security throughout the whole process, create Tunnels using Cloudflare, have
E2E HTTPS traffic, create a Zero trust security plan where security standarts are
higher then any company I ever encountered
Univé (through TeamRockstar) (Zwolle, The Netherlands)
Period
August 2019 – May 2020
Branch
Insurances
Title
Front end Web Developer
Methods & Techniques
Scrum (Jira)
Operating systems
Azure DevOps, K8s, Docker, Nginx
Languages
HTML, JavaScript, TypeScript, CSS
Frameworks
Tailwind, UtilityCSS, LitElement, LitHTML, Snowpack, NPM, jQuery, SASS, Web-Components,
Storybook, WebPack, Karma, Visual Testing
When I started at Univé there were a lot of older techniques that were being
deployed, for example jQuery. This in combination with the hard to read code, made
developing slower for all the developers. That is why at Univé I introduced a few
technologies, mainly Web-components (using LitElement) in combination with a Utility
based CSS called Tailwind. This made developing quicker and more productive, without
changing to much of the current workflow, but it dramatically decreased the size of both
the JavaScript libraries and the size of CSS, on new components. To make it even better
to manage and develop in I also introduced Karma for unit testing and Storybook as a
component library, this so UX could view the components in a earlier stage and for us to
have a better view of what is where and how. This allowed us to create a more powerful
User Experience, while maintaining a consistent look and feel.
A few selections of the main tasks Daniël did was:
- Maintaining unive.nl and the logged in environment of unive.nl
-
Introducing new technologies tailored to the product and bringing this to production
(Tailwind, LitElement)
-
Maintaining build and release pipelines and improving these for quicker builds and
better stability
-
Create new features, that with the limited availability of other systems, still gave
a rich user experience, by finding creative solutions, rather than limiting yourself
to the systems you don't have control over
-
Being a helping hand for other team members, when they can't figure out how to build
new or improve existing code
RTL (through TeamRockstar) (Hilversum, The Netherlands)
Period
February 2019 – June 2019
Branch
Media
Title
Team lead/Full stack .Net core developer
Methods & Techniques
Scrum (Jira)
Operating systems
Azure DevOps, K8s, Docker
DB/DC
Nifi
Languages/Tools
.net core 2.2/K8s/Docker/MassTransit/RabbitMQ
Within RTL there are loads of systems that need to communicate with each other, the main
idea of this project is to combine this, going from a few source systems to multiple
target systems, thus reducing load. This also makes it possible to integrate legacy
systems with the newer systems RTL acquired, this data in the end will serve as metadata
for platforms like RTL XL and Videoland
A few selections of the main tasks Daniël did was:
- Adapt/Receive data from 1-2 source systems
-
Create Distributors that Distribute these to 4 target systems, each tailored for
their target system needs ·
- Finding and resolving both technical and non-technical queries
- Build a CD/CI pipeline in Azure DevOps
- Create and setup Azure resources
-
Guide the team as a team lead, introducing Kanban and getting business requirement
from PO’s
MyDataFactory (through TeamRockstar) (Meppel, The Netherlands)
Period
October 2018 – February 2019
Branch
Matching Data
Title
Full stack C#/Angular developer
Methods & Techniques
Scrum (Jira)
Operating systems
Azure DevOps, K8s, Docker
DB/DC
ElasticSearch & MySql
Languages/Tools
.net Core 2.2/C#/TypeScript/html5/Angular/npm
MyDataFactory is a company that specialises in building matching engines for customers
that have invoices coming in from different sources and that want to match this to their
own in-house catalogue of products. Through the process of manual and automated tagging
of potential products, the user can decide what products with what items on the bill,
after which the system will improve itself to remove further human intervention.
A few selections of the main tasks Daniël did was:
-
Building a Front-End where the matches can be suggested and approved, and after this
processing, can be downloaded for other systems
-
Building and deploying a proof of concept to move all the current infrastructure to
Kubernetes with code as infrastructure, in which I used helm to automate this better
-
Moving the existing tag structure to a single system, with some minor improvements
and building full deep dive tests to guarantee tag behavior currently and in the
future
-
Move existing Azure functions to pods in Kubernetes, which are now using Kafka to
get queue message, this to improve performance significantly, after which the data
will be saved in ElasticSearchmydata
PFM-Intelligence (through TeamRockstar) (Alphen aan den rijn, The Netherlands)
Period
June 2018 – September 2018
Branch
Footfall
Title
Full stack C#, Angular Engineer
Methods & Techniques
Scrum (Jira)
Operating systems
AWS Serverless lambda, S3
DB/DC
PostgreSQL
Languages/Tools
.net Core 2.1, C#, Typescript, html5, Angular, npm, yarn
PFM creates reporting/data repair and data collection software to measure footfall
(visitors). Currently the old stack needs to be phased out since the code is never
maintained and is not correctly build. So Daniël and the rest of the development
team is working on this new stack in .net Core(v2.1) + angular (v6) to create the same
functionality as the old stack, but with many improvements and optimisations. Party by
improving on data flow and partly by cutting cost, utilizing more Serverless approaches
like lambda
A few selections of the main tasks Daniël did was:
-
Build new front end functionality, improve and refactor existing code in angular and
VMware's clarity which interacts with a backend
-
Create lambda's that get kinesis events for parsing data from sensors that are in
the field, which then get processed and finally stored if all data is correct
TransUnion, TrustEv (Cork, Ireland)
Period
March 2017 - June 2018
Branch
Anti-Fraud
Title
Full stack C# Engineer
Methods & Techniques
SaFe/Kanban (Scrum)
Operating systems
Windows 10/Cent OS(servers)
DB/DC
ElasticSearch, Hive, HDFS, Logstash, Curator, Hadoop, Kafka
Languages/Tools
Microsoft Orleans, Web Api, C#, JavaScript, html5, Java, Python
The fraud prevention system main task was:
-
Fact/Score based system to indicate if a transaction that our customer sent us is a
legit person
-
Get the good guys in, make it very hard/impossible for the bad guys to come in
-
Aggregation over big sets of data to determine if the end user is a valid user
(identify the user based on their history)
A few selections of the main tasks Daniël did was:
-
Integrate with 3th party's data sources for better fact results, for example: xml,
soap, custom xml, json etc.
-
Extend existing API and service these new and existing API in a VueJS application
for demo purposes
- Creating Test systems/Mock systems for better QA automation
-
Improve existing delivery pipelines to speed up releases and remove manual
interaction
- Building custom nifi processors for handling data streams
-
Being on an on call rota for outages (remote logging into systems to determine why
the system went down or is using so many resources)
Triton Software (Cork, Ireland)
Period
November 2016 - February 2017
Branch
Medical systems for cruise ships
Title
PHP- developer
Methods & Techniques
Scrum
Operating systems
Ubuntu 17.04 LTS
DB/DC
MySQL
Languages/Tools
PHP, HTML5, CSS3, Bootstrap, NetBeans
Combined back-end and front-end developer. I develop a medical record system for on
nearly all cruise ships, which are strictly monitored by coast guards, no record can
ever be deleted and records require to be implemented using comprehensive guidelines.
Daniël worked directly with clients on issues that require development as well as
creating completely new enhancements set by the company.
Apple (Cork, Ireland)
Period
May 2016 – November 2016
Branch
IPhone, IPad, Mac, Watches, TV
Title
Methods & Techniques
Ticket system
Operating systems
OS X
Testing of Apple software products, logging and raising bug tickets and language
proofing of translations in my mother tongue (Dutch).
Ordina (Nieuwegein, , The Netherlands)
Period
May 2016 – November 2016
Branch
Smart Technologies
Title
Software Engineer
Methods & Techniques
Scrum, Agile
Operating systems
Windows 7
DB/DC
Couch DB
Languages/Tools
Angular JS, HTML, Bootstrap, Swift, Objective C
As a consultant working in the rapid prototyping department Daniël was responsible
for the development at creation of several technical prototypes for automation systems
for third party clients. Projects include:
-
Model taxi parking system for KLM: Creating an experimental parking system for taxis
near the Netherlands biggest airport on a small scale. Removing much needed space
while removing waiting time for taxi's, so they can be more efficient.
-
Smart health app for Interpolis: Health app for iOS using Apple Watch biometrics
designed with heavy gamification to reduce and prevent stress that leads to burnout
and its high exposure to health insurers.
-
Evacuation application for ProRail: Created a custom evacuation application, that
even works when the internet is temporarily not available for Dutch railroad
infrastructure.
Courses
College of Amsterdam
BSc. Technical Software Engineering
2012 - 2015
Nova College
MBO Software development level. 4
2010 - 2012
VLC college
HAVO-3
2007 - 2010
Languages
Dutch
mother language
English
spoken: excellent
writing: excellent
Competencies
- Passion for learning
- High determination
- Stress resistant
- Result driven
- Team player
- Precise
- Social
- Out of the box thinker