About me

Hello,

I'm Gert-Jan Schouten, a Software Architect / Engineer (yes, you can - and should - be both). 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, and RRiBbit, a versatile and easy to use Open Source Eventbus Framework that eliminates dependencies and simplifies code structure. It is compatible with existing code and allows bidirectional communication between components.

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 PHP and Haskell as well. My main specialities are technical architecture, i.e. how the structure of an application is set up, and development infrastructure, like buildservers and continuous integration. It is vital that those two are well-aligned, while still being decoupled from each other. 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 focus on my specialities: development infrastructure and technical architecture. However, I also create back-end logic and front-end user interfaces. Not only does 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'm involved in hiring new developers as well.

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

Metanova (02-2015 / present)
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 are developing an online platform for creating and viewing models of business processes. Our aim is to give companies insight into their own processes and to help them automate those processes in an optimal way.

As Head of Software Development, I created the technical architecture and development infrastructure for this platform and am now leading the development of it.

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

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 here as well, mainly because of my 6 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 (SE and EE)(Expert)
XML(Expert)
HTML(Expert)
XHTML(Expert)
CSS(Expert)
JavaScript(Advanced)
JQuery(Advanced)
SQL(Advanced)
DTD / XSD(Advanced)
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)
Java Swing(Expert)
Java RMI(Expert)
Spring(Expert)
Hibernate(Expert)
C3P0(Expert)
SLF4J(Expert)
JUnit(Expert)
Mockito(Expert)
DOM4J(Expert)
Apache Wicket(Expert)
Apache Commons(Advanced)
Apache Velocity(Intermediate)
Java Mail(Intermediate)
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:
Windows(Advanced)
Linux(Advanced)
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)
MySQL(Advanced)
Oracle 10g(Long time ago)
IBM DB2(Long time ago)
Tools:
Eclipse(Expert)
Maven 3(Expert)
Subversion(Expert)
Jenkins(Expert)
Checkstyle(Expert)
Findbugs(Expert)
PMD(Expert)
JaCoCo(Expert)
Liquibase(Expert)
Ant(Expert)
Squirrel(Expert)
SOAP UI(Advanced)
Phabricator(Advanced)
Jmeter(Intermediate)
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)
Luntbuild(Long time ago)
JSPWiki(Long time ago)
Trac(Long time ago)
Reviewboard(Long time ago)