About Me

Hello,

I'm Gert-Jan Schouten, a Senior Software Architect/Engineer (yes, you can - and should - be both), living and coding in London. 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.

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 new Open Source Java application framework that eliminates dependencies and simplifies code structure. It is inspired by the Eventbus pattern, but improves upon this by being compatible with existing code and allowing 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 like Java. No, wait, I adore 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. I am a member of the LJC, the London Java Community, which itself is an active member of the JCP, the Java Community Process.

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, Websphere, AIX, Spring, Maven 1, Maven 2, Hibernate, Dozer, SQL, Log4J, Junit, Jakarta 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, Jakarta Commons, Subversion, Luntbuild

GeoSweep (03-2011 / present)
In 2011, I moved to London to work on the development of GeoSweep, a fantastic new online lottery, based on Geos: small squares of land that you can buy and which are your lottery tickets. So go and buy your house, a piece of Buckingham Palace, or any place you like and win thousands of pounds!

At GeoSweep, I focus on my specialties: 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, Spring, Maven 3, Hibernate, Apache Wicket, GWT, SQL, Log4J, JUnit, JFreeChart, Jakarta Commons, Subversion, Jenkins

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", which' past tense is "updatete" or something...
EnglishMy favourite language, speaking it everyday, since I live in London. Puzzlement here as well, mainly caused by the differences between American and British spelling. I'm 100% fluent in writing (If you discover a mistake on my blog, please let me know ;-) ), almost fluent in speaking and working hard on my British accent.

Speaker


2008:Held a presentation for students at the "Higher Highschool" (no English equivalent) 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)
PHP(Advanced)
SQL(Advanced)
DTD / XSD(Advanced)
Haskell(Intermediate)
JavaFX(Intermediate)
XSLT(Intermediate)
JSP(Intermediate)
DHTML(Intermediate)
JavaScript(Intermediate)
CSS(Intermediate)
C++(Intermediate)
Python(Intermediate)
Libraries:
RRiBbit(Creator)
Java Swing(Expert)
Java RMI(Expert)
Java Threading(Expert)
Spring(Expert)
Hibernate(Expert)
Log4J(Expert)
JUnit(Expert)
Dozer(Expert)
DOM4J(Expert)
Selfdiagnose(Expert)
SLF4J(Expert)
JFreeChart(Expert)
GWT(Advanced)
Apache Wicket(Advanced)
Jakarta Commons(Advanced)
Java Mail(Intermediate)
Axis 2(Intermediate)
Platforms:
Windows(Expert)
DOS(Expert)
Linux(Advanced)
IBM AIX (Unix)(Intermediate)
Servers:
Apache Tomcat(Expert)
Apache HTTPD(Advanced)
IBM Websphere(Advanced)
Databases:
MySQL(Expert)
Postgres(Advanced)
Oracle 10g(Intermediate)
IBM DB2(Intermediate)
Tools:
Eclipse(Expert)
Maven 1(Expert)
Maven 2(Expert)
Maven 3(Expert)
CVS(Expert)
Subversion(Expert)
IBM RAD(Expert)
JCreator(Expert)
SOAP UI(Expert)
CruiseControl(Expert)
Luntbuild(Expert)
Jenkins(Expert)
JSPWiki(Expert)
Checkstyle(Expert)
Findbugs(Expert)
PMD(Expert)
Ant(Advanced)
Trac(Intermediate)
Jmeter(Intermediate)