About me

Hello,

I'm Gert-Jan Schouten, a Software Architect / Engineer living and coding in Wageningen, The Netherlands. In my spare time, when I'm not outdoors doing sports or walking through nature, I write about my ideas and inventions regarding Software Development, Science and Philosophy.

My biggest accomplishments so far are the inventions of the Zenbi Architecture, a Client-Server Architecture based on Cloud Computing and Rich Internet Applications, RRiBbit, a versatile and easy to use Open Source Eventbus Framework that eliminates dependencies and simplifies code structure and The Lukashian Calendar, a radically fresh approach to a calendar that is easier, simpler and more accurate.

So, what is this Zenbi thing? Well, Zenbi is a Japanese word that can be written in two different ways. One means Perfection and Completeness, the other stands for The Good and The Beautiful. I chose this name, because I like Japanese culture and was inspired by it. It's also the name of the architecture that I invented.

I love Java. For me, it is without a doubt the world's number one programming language and I work with it almost every day. I like Haskell as well. My main specialities are technical architecture, i.e. how the structure of an application is set up, development infrastructure, like buildservers and continuous integration and deployment infrastructure. It is vital that those are well-aligned, while still being decoupled from one another. Within these fields, I have a special passion for simplicity. I always try to make things as simple as possible. I am convinced that when you do that, the rest will follow.

Simplicity is the ultimate sophistication

- Leonardo Da Vinci -

If you want to contact me, you can connect to me on LinkedIn. Please type a message in the request when you do so, because I generally ignore requests from people I don't know that don't have a message :-)

Experience


University (09-2001 / 09-2006)
I attended the University of Utrecht, where I got my MSc. degree in Computer Science. Highlights:

My final thesis was called "Tactical Motion Planning for Groups of Entities". It was about the question of how to get a group of units through a potentially dangerous area as fast as possible. The units should avoid the danger zones, stay close to obstacles and reach the destination as fast as possible. Different techniques were explored, such as grid-based and several roadmap-based algorithms. The implementation was done in C++.

One of the more interesting assignments was a Multi-Threaded AVL-Tree: An AVL-Tree where the different processes (insert, delete, search and balance) ran in different threads on the same Tree-object. It involved algorithmic techniques about locking-strategies and multi-threaded programming. It was done in Java.

I was involved in a project that created a "Life Simulator". We created this in a group of 8 using PHP. It was a game where you had to make all kinds of decisions involving your life (work, car, insurance, buying a house) and then, when you were 65, the game ended and you got your score. It was meant to teach high school kids about these matters and was used in real life by the Dutch Institute for Financial Advice.

I was a student-assistant for 4 years, helping junior students with their assignments. This brought me teaching credentials and a more thorough understanding of the courses I taught.

Technologies: Java, PHP, C++, Haskell, RMI, Swing, Multi-Threading

Fortis (01-2007 / 01-2010)
My first job after college was at Fortis, a large financial company, in the Websphere J2EE team. I participated in some projects and then I applied for a job as assistant infrastructure engineer. My job was to help develop and maintain the entire development factory. After a while, I was given the position of lead infrastructure engineer. I was now responsible for the architecture of the J2EE applications, the buildserver, the tooling, etc. I also had to teach the other developers how to develop J2EE applications and how to use the infrastructure and the buildserver.

After 1,5 years, a large migration was coming. The entire buildserver and Websphere installations were moving to new UNIX machines with a new AIX version and we moved to Websphere 6.0 from 5.1. I had to rebuild the infrastructure and buildserver and I upgraded the application architecture to Maven 2 and Spring 2.5. After that I was given the additional responsibility of hiring new Senior Java developers for large projects.

Under my lead, the development infrastructure had developed to an integrated and coherent platform, where developers could create new J2EE applications and deploy them on the development servers, all within 15 minutes. I also added automatic deployment features for deployment onto testing and production servers and automatic quality control checks that were performed at each build of every application.

Technologies: Java, J2EE, XML, XSLT, Websphere, AIX, RAD, Spring, Maven 1, Maven 2, Hibernate, Dozer, SQL, Log4J, Junit, Apache Commons, CVS, CruiseControl, JSP, Python, DOM4J, Selfdiagnose, Axis 2, Oracle DB, IBM DB2, JMeter

Zenbi (10-2009 / 02-2011)
During my job at Fortis, in my own time, I developed my own Client-Server Architecture and its reference implementation called "The Zenbi Architecture". This architecture could beat J2EE in terms of performance, scalability and robustness and was based around RMI and Rich Internet Applications.

In 2009, I started my own SaaS-company, based around this architecture. I had a Cloud-based vision and I wanted to relieve companies from having to deal with technology and infrastructure themselves.

Technologies: Java, Spring, Maven 2, Hibernate, RMI, Swing, Multi-Threading, Dozer, SQL, Log4J, JUnit, JFreeChart, Apache Commons, Subversion, Luntbuild

Geonomics (03-2011 / 02-2015)
In 2011, I moved to London to work on the development of GeoLotto, a fantastic new online lottery where you can buy small squares of land that are your lottery tickets. So go and buy your house, a piece of Buckingham Palace, or any place you like and win a million pounds!

At Geonomics, I focused on my specialities: development infrastructure and technical architecture. I also create back-end logic and front-end user interfaces. Not only did this bring a nice diversity, I also think it's important that you "use" the technical architecture and development infrastructure yourself as a developer. Otherwise, you can't possibly create/maintain them in an optimal fashion. I was involved in hiring new developers as well.

Technologies: Java, HTML, CSS, JavaScript, JQuery, SQL, Spring, Maven 3, Hibernate, Apache Wicket, GWT, Log4J, JUnit, Apache Commons, Subversion, Jenkins, Liquibase, Linux, Eclipse

Metanova (02-2015 / 06-2022)
During my time at Geonomics, I had always stayed in touch with some like-minded people that I met during my Zenbi period. They were in the process of setting up a Business Process Modeling company. Late 2014, I was offered an opportunity to co-found this business, which I happily accepted.

At Metanova, we developed an online platform for creating and viewing models of organizations. It integrates processes, data, information flows, compliance and analytics. Once an organization model is created, it forms a perfect blueprint for an application that automates that organization. As Head of Software Development, I created the technical architecture and infrastructure for this platform.

Using the models, we also created custom software for various customers in various fields. Most notably, we created a complete solution for the logistical processes surrounding Medical Appliances and one for the processes regarding Medical Dispensables. These were used by thousands of professionals and patients in hundreds of healthcare organizations.

Later, I performed various experiments and POCs involving Big Data software, like Cassandra and Kafka, tied together by Spring Data and Project Reactor. The aim was to see whether some of the high throughput data flows would be better served by these technologies than by regular relational databases. I find these new technologies fascinating, because they provide an entirely new perspective on how to store and query data and how to process that data with a reactive programming model. Also, the whole field seems to still be in active development. Where technologies involving relational databases and web applications have largely stabilized over the last 10 years and only see incremental improvements, Big Data technologies are still very raw, with a lot of things still to be achieved and discovered. This makes it an incredibly interesting field for me and one that I'd like to explore in more detail.

Technologies: Java, HTML, CSS, JavaScript, JQuery, SQL, Spring, Maven 3, Hibernate, Apache Wicket, SLF4J, JUnit, Apache Commons, Subversion, Docker, Jenkins, Liquibase, Linux, Postgres, Eclipse, IntelliJ IDEA, Phabricator, Cassandra, Kafka, Project Reactor

Team Rockstars IT (07-2022 / present)
After 7 years at Metanova, it was time for something new. I moved to Team Rockstars IT, the best IT consultancy firm in Holland. At Rockstars we don't just create high quality software for customers, but we're also very active in the Java Community itself, with developers contributing to Open Source projects, giving talks at conferences, etc. This makes Rockstars the place to be if you want to develop yourself further and further as a Software Engineer.

More to follow!

Technologies: Java, Kotlin, HTML, CSS, JavaScript, Angular, SQL, Spring, Maven 3, JUnit, Apache Commons, GIT, Docker, Linux, IntelliJ IDEA, Cassandra, Kafka, Project Reactor, AWS, Kubernetes, OpenShift, Tekton

Education


2001:High school diploma: Atheneum (highest high school level)
Courses: Dutch, English, Math, Physics, Chemistry, Biology and Geography
2006:MSc. Computer Science, University of Utrecht
2007:Certificate "Building Java 2 Enterprise Applications", InfoSupport
2007:Sun Certified Java Programmer for Java 5 (93% score)
2007:Certificate Scrum-Master, Scrum-Alliance
2008:Course Advanced Spring, SpringSource
2008:Course J2EE Security, Atos Origin

Languages


DutchNative language, 100% fluent in reading and writing, though I'm sometimes puzzled by how they try do "Dutchify" English verbs that are used in tech-related subjects, like "to update", of which the past tense is "updatete" or something...
EnglishMy favourite language. Puzzlement here too, mainly caused by the differences between American and British spelling. I'm 100% fluent in reading and writing, mainly because of my 6,5 year residency in London.

Speaker


2008:Held a presentation for students at the University of Applied Sciences in Utrecht about J2EE Software Development
2009:Held a presentation at JSpring in Bussum (The Netherlands' largest Java conference) about "Software Quality Automatically Measured"
2010:Was a participant at the ICTDelta Conference in the World Trade Center in Rotterdam

Technologies


And now, a long and boring list of all the technologies I'm familiar with. You don't have to scroll to the end if you don't want to, there's nothing below it.

Languages:
Java(Expert)
XML(Expert)
HTML(Expert)
XHTML(Expert)
XPath(Expert)
CSS(Expert)
JavaScript(Advanced)
JQuery(Advanced)
SQL(Advanced)
DTD / XSD(Advanced)
Kotlin(Intermediate)
Haskell(Intermediate)
XSLT(Intermediate)
JSP(Long time ago)
JavaFX(Long time ago)
C++(Long time ago)
Python(Long time ago)
PHP(Long time ago)
Libraries:
RRiBbit(Creator)
The Lukashian Calendar(Creator)
Java RMI(Expert)
Java Swing(Expert)
Spring(Expert)
Hibernate(Expert)
C3P0(Expert)
SLF4J(Expert)
JUnit(Expert)
Mockito(Expert)
DOM4J(Expert)
Apache Wicket(Expert)
Apache Commons(Advanced)
Java Mail(Advanced)
Project Reactor(Intermediate)
Apache Velocity(Long time ago)
JFreeChart(Long time ago)
Dozer(Long time ago)
Selfdiagnose(Long time ago)
Axis 2(Long time ago)
Log4J(Long time ago)
GWT(Long time ago)
Platforms:
Linux(Advanced)
Windows(Long time ago)
DOS(Long time ago)
IBM AIX (Unix)(Long time ago)
Servers:
Apache Tomcat(Expert)
Apache HTTP Server(Advanced)
IBM Websphere(Long time ago)
Databases:
Postgres(Expert)
Cassandra(Intermediate)
MySQL(Intermediate)
Oracle 10g(Long time ago)
IBM DB2(Long time ago)
Tools:
Eclipse(Expert)
IntelliJ IDEA(Expert)
Maven 3(Expert)
Subversion(Expert)
Jenkins(Expert)
Checkstyle(Expert)
Spotbugs(Expert)
PMD(Expert)
JaCoCo(Expert)
Liquibase(Expert)
SOAP UI(Advanced)
Phabricator(Advanced)
Docker(Intermediate)
Kafka(Intermediate)
Ant(Long time ago)
Maven 1(Long time ago)
Maven 2(Long time ago)
CVS(Long time ago)
CruiseControl(Long time ago)
IBM RAD(Long time ago)
JCreator(Long time ago)
Jmeter(Long time ago)
JSPWiki(Long time ago)
Luntbuild(Long time ago)
Squirrel(Long time ago)
Trac(Long time ago)
Reviewboard(Long time ago)