Work Experience
Introduction
I enjoy learning about and gaining experience in different
industries and in different company structures, specifically
focusing on the tech stack used.
This can greatly benefit a company as I am able to give the ups and
downs of any of the technology stacks. I am highly adaptable and
well able to adjust to new code. The things that I try to thrive
too:
-
FrontEnd: HTML/CSS/JS, starting off as a means to get a
button to do something in the BE, but quickly learned that users
need good UI to be able to understand what the data does and in
recent years found this "harder" to get right then the backend,
a CRUD is easy, doing something cool with Background workers to
handle data and process is fun. But if the user doesn't see any
of this data, it is in essence useless. It is a fun challenge to
get something looking right to the user while still displaying
complex concepts that the user might not be able to understand
if it wasn't for the UX. Frameworks are very easy to pick up
once you have a basic knowledge of JS, of which i have very
in-depth experience (for fun side project to build things purely
in vanilla JS)
-
BackEnd: Deep understanding of C#, I like to keep up with
the latest lang version, understand why something isn't the best
approach while still writing something that the next person can
understand, where possible use a minimal amount of Nuget
packages that are essential and very well maintained and write
code that is just immediately understood. Understand most other
languages to a basic extend, like C/C++ VB, Java or Python, just
enough to convert it to C#!
-
Maintain: Create very readable code, while keeping an
application optimised for speed and reliability is hard, I can
quickly understand code and create new features that fit the
narrative of the existing code
-
Create new Features: Quickly deliver code in an iterative
fashion, while unit testing already give small previews and ask
for feedback
-
Improve developers experience:Isolating application logic
and create a Domain Driven Design to create a more reliable
product by creating more Test Driven Design principles
-
Solution architect:A keen understanding of existing
infrastructure and being able to quickly change it if the
business requires it, I have experience with mono, microservices
and serverless all using IaC and with security in mind and I
very well know what to use when
-
DevOps:Creating strong CI/CD integrations to reliability
in deployment, which will in turn shorten the development cycle
Kiwa (Freelance) (Remote)
Period
December 2023 – Present
Branch
Certification of meat(pigs)
Title
Full stack developer
Methods & Techniques
Scrum (AzureDevops)
Systems Used
Azure DevOps, Entity framework, .net framework, .net core,
Languages
C#, jQuery
Frameworks
EF & Kendo
I was asked back at Kiwa, not for the project that I was originally
hired for, but for help with some of their internal systems, since
they needed a bit of TLC. During my time I mainly did maintenance
and small features to existing projects. But since the applications
where mostly written in .net framework I also decided to help out
with a migration to .net core, with some minimal effort I was not
only able to remove any dependencies that would stop us from
switching, but i also successfully migrated the application. Since I
can very quickly learn a new system inside out I was also asked to
help and support some older application and to write up some
documentations, that was not available
The main tasks I had at Kiwa were:
- Help maintain the applications
- Fix bugs, create new features and find new bugs
-
Clean up legacy code, upgrade projects and invent upgrade paths
- Help with invoice proposal
-
Understand code that nobody in the company had any knowledge of
and come up with solutions to get this code more maintainable
Vicrea (Contract) (Remote)
Period
September 2022 – December 2023
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