Personal
details
Mark de Does
Magdalenastraat 6
3512 NH Utrecht
born January 3, 1956
phone +31 30 2314150
email
mark@mdedoes.xs4all.nl
Profile
Mark is an experienced
software architect that always tries to find the simplest possible
solution. His current focus is on Java/JEE and internet technology. He has
not forgotten his long experience in C/C++ development for Unix and Linux
however. His long experience helps Mark to easily pick up new subjects and
technologies. He is a goal oriented doer that nows to focus on the
essentials without completely ignoring the details. As an enthusiast with a
hands-on attitude, Mark is a better coach than he is a manager.
Mark is a member of the
following professional associations: NLJUG (Dutch Java User Group), ACM
(Association for Computing Machinery), IEEE Computer Society.
|
Overview of technical knowledge and
experience
|
|
|
|
Subject
|
Level
|
Years
|
|
Software product Design
|
Senior
|
15
|
|
Build Systems and Software packaging
Ant, Maven2, Make, deb,
rpm, msi, unix PKG, HP swinstall
|
Senior
|
15
Ant: 6
Maven: 1
|
|
Quality Control and Test Suites
JUnit, Regression test
suites, Scripting VMware VIX to run them, Fitnesse
|
Senior
|
15
Junit: 5
|
|
GUI Programming
Swing, AWT, GTK, Motif,
NextStep
|
Senior
|
15
|
|
Document Formats
RTF, PDF, PostScript, XML
based
|
Senior/Expert
|
15
|
|
Linux, Unix
|
Senior/Expert
|
25+
|
|
Windows
|
Medior
|
10
|
|
Java
|
Senior/Expert
|
10
|
|
C/C++
Unix cc,gcc,MS-C,from K&R
via iso/ANSI 9898-1990 to full C++
|
Senior/Expert
|
25+
|
|
HTML/CSS
|
Senior
|
10
|
|
HTML5/W3C Widgets
|
Medior
|
1
|
|
Javascript/jQuery
|
Senior
|
5
|
|
Scripting
sh, bash, perl, vbscript
|
Senior/Expert
|
15
|
|
SQL
|
Senior/Expert
|
15
|
|
Relational Databases (general experience)
|
Senior
|
15
|
|
Oracle
|
Senior
|
10
|
|
MS-SQL/Sybase
|
Medior
|
8
|
|
MySql
|
Senior
|
5
|
|
Various other databases
RDB, Solid, DB2,
Informix, HP-Neoview, NCR Teradata, C-Isam, PussyCat/Berkeley DB, Postgres
|
Senior
|
10
|
|
Java IDE's
Eclipse, RSA, Oracle
J-Developer
|
Senior
|
8
Eclipse:
8
|
|
Source Code Control Systems
CVS, Rational ClearCase,
Subversion
|
Senior
|
15
|
|
Network Protocols
Mainly HTTP, raw socket
programming and some SMTP
|
Senior/Expert
|
15
HTTP/HTTPS:
10
|
|
J2EE Application Servers
JBoss, WebSphere AS,
Tomcat, OC4J
|
Senior
|
5
Websphere
AS: 2
JBoss: 2
|
|
JEE Integration technologies
Spring Framework
|
Senior/Expert
|
5
|
|
Java Object Relational Mapping
IBatis/myBatis,
Hibernate, JPA, Spring JDBC-Template, HP ObjectServer
|
Senior
|
6
IBatis:
2
Hibernate:
2
ObjectServer:
4
|
|
J2EE Front End Technologies
Plain JSP, Spring MVC, JSF
|
Senior
|
4
JSF: 1
1/5 year
|
|
Web Services
Spring WS, Axis2,
JAX-RS(Jersey), XML-RPC
|
Senior
|
3
|
|
Java Messaging
IBM WebSphere MQ,
JBoss-MQ, JBoss Messaging, Active MQ
|
Senior
|
3
WS-MQ:
1 1/2
JBoss *
1 1/2
|
2009 -
now -- Software Architect with TriOpSys
Software Architect /
Consultant with TriOpSys. TriOpSys is a medium sized systems integrator
with a focus on mission critical systems and mobile solutions. Besides
that, TriOpSys is a specialist in traffic management systems.
September
2011 - now -- Application Engineer (Software architect) KAD at RABOBANK
The Customer
Authorization Service (KAD) will be the system that is responsible for all
customer authorizations for self-service applications at RABOBANK. The
system is based on the customer and product data in Siebel and the
administration of personal bank passes. The expected rapid growth of the
use of self service applications over the internet requires high
performance and high scalability.
I am working on the
technical software architecture of the application and on the design of a
general authorization API for all RABO internet applications. I actively
participate in the implementation team as a senior member and a coach.
Technologies: Java,
Spring framework 3, JAX-RS (Jersey), WebSphere Application Server, myBatis,
DB2.
March 2011 - now -- Application Engineer
(Software Architect) CIV at RABOBANK
The Customer Information
View (CIV) is a web application embedded in an IFRAME in the Siebel
console. In this way CIV supplements the Siebel CRM system of RABO bank.
The application gives customer and account information to all customer
facing staff at the local banks and at all call centers.
I have been reinvolved in
the CIV project because changes in technology and in the positioning of the
application required a partial redesign of the architecture. As such I am
involved in the design of data services based on CIVs database and in the
migration of the 200GB database from HP-NeoView to DB2 on Z/OS. The design
of the data services focuses on their usability for the external
applications and finding the right granularity in the balance between
system load and network latency.
Technologies: XSD, Java,
Spring Framework 2.5, WebSphere Application Server, myBatis, DB2, iBatis.
November 2010 - September 2011 -- Software
Architect KNMI Climate Information System
TriOpSys reimplemented
the Climate Information System of the Dutch Royal Meteorological Institute.
(KNMI) The new system has a uniform architecture and is more robust than
the original system. The focus was on future extensibility and on making
the data available to researchers, public relations and even to the general
public.
The system stores all
weather and climate observations from 1850 until now. The data is exposed
through a web based system for ad hoc queries. The result of the queries
can be downloaded in CSV format or formatted in a wide variety of different
formats including publication ready graphs and diagrams.
I participated in the
general design of the system and implemented the data layer that is at the
basis of the system. Throughout the project I have coached the development
team with architectural and technical advice.
Technologies: Oracle,
Spring Framework 3, Spring MVC rest support, JSON, jQuery, Apache Tomcat,
JFeeChart, Linux, PostScript/PDF, Spring JDBC template.
November 2010 - July 2011 -- Software
Architect Prikroute
TriOpSys built a mobile
application for a Health Care laboratory. Nurses take blood samples at the
patients home and take the samples to the laboratory. Every day, requests
for examinations are collected, planned and then sent to the nurses PDA.
The progress of the nurses during the day is monitored and the results are
reported at the end of the day.
The application consists
of several components: (1) Receiving orders over HL7. (2) Automatically
planning the orders based on geographic information. (3) Sharing the
information with the PDA. (4) Reporting. Because of the limitations of
Windows Mobile, the PDA client is a .Net application. Special attention was
paid to the reliability and the statelessness of the communication between
the PDA and the application server. For the user interface of the back
office, we reused the iMOS planboard.
I made the general design
and the technology decisions. I also designed the (JSON based)
communication protocol and implemented the server side.
Technologies: Spring
Framework 3, myBatis, JBoss, HAPI HL7 Library, .Net, MS-SQL.
April 2009 - November 2010 -- Software
architect iMOS
Software architect for
TriOpSys iMOS field service application product. iMOS is a mobile
application that supports the field service process. It consists of modules
for planning, logistics and progress reporting. On top of the base
functionality, TriOpSys develops and delivers custom modules for its
customers.
iMOS is a traditional
J2EE application that runs in JBoss. It uses Hibernate as its database
interface. The mobile front end runs as a Java application on PDAs. It
stays in touch with the server via messaging. The obvious implementation as
a web application was unsuitable when the application was incepted as field
engineers work in places where connectivity might be absent or too
unreliable.
After more than 5 years,
we realize that there have been important technical developments since iMOS
inception. The traditional j2EE reference architecture is not ideal for a
mobile application and new and simpler technologies for internet
applications and for communication now exist. These include internet
applications that can temporarily store data locally while no internet
communication is possible. My task was to gradually modernize and optimize
the iMOS application architecture without completely overhauling it.
A non negligible part of
the energy went into the task of convincing the organization that change
was necessary if we want the product to survive.
We managed to base
several stable customer projects on the improved software.
Technologies: JBoss,
Hibernate, JBoss MQ, HTTP, CreMe JVM, Windows Mobile, MySQL, Oracle, MS-SQL.
January
2009 - April 2009 -- Calculator for Travel Expenses
Design and implementation
of a tool to manage and calculate travel expenses. The relatively small
size of the project, combined with the fact that it is publicly available
over the internet made it an ideal candidate for a jQuery/AJAX based rich
internet application without any server side involvement with the user
interface.
Technologies: IIS, Apache
web server, YAJL JSON parser, jQuery, MS-C
May
2007 - December 2008 -- Software Architect with Ordina J-Technologies.
September
2007 - December 2008 -- Software Architect CIV at RABOBANK
CIV is customer/product
information system that supplements the Siebel CRM system of RABO bank. The
application gives customer and account information to all customer facing
staff at the local banks and at all call centers. It is embedded in an
iFrame in the Siebel user console.
The integration with
Siebel on one side, and various legacy database structures on the other
side were a challenge. Additionally, for reasons outside the scope of the
project design, we had to use a HP NeoView database server that required
extensive tuning, both in the structure of the database schema and in the
database engine configuration before it could deliver acceptable
performance. (Upto 100 queries/second)
In practice, as a
software architect, I took the responsibility to technically coach the
developers.
The high number of
external interfaces and the evolving specifications forced us into a very
modular component based architecture based on the Spring framework.
As requirements were not
completely clear at the beginning of the project, we have used an
incremental approach to development. This was the best way to get
commitment in the organization even though it was completely agains
corporate culture.
The application is
deployed in two IBM WebSphere clusters at two different locations.
Additional communication between the application server and the Siebel
server is through IBM MQ services. Since end 2008, the system is in
production with upto 22,000 concurrent users, serving 1,000,000 screens per
day.
Technologies: JSF, Spring
Framework 2.5, Oracle, WebSphere Application Server, WebSphere MQ,
HP-NeoView
June
2007 - August 2007 -- Implementing iDEAL at Europeesche Verzekeringen
Implemented iDEAL
payments on the web site of a travel insurance company. This is a proof of
concept implementation that actually went into production.
Technologies: Plain JSP,
EJB, WebSphere Application server, XML-RPC, Prototype JS (too much of it)
May
2007 -- Legacy system for Transportation Company
I participated in the
reimplementation of a legacy FOXPRO application with Spring MVC. A major
part was fixing the reporting module that was built with BIRT.
Technologies: Spring
Framework 2, BIRT, iText.
May 2002 - May 2007 -- Senior developer and
Team Lead HP OpenView
Senior developer and Team
Lead of the Service Desk Team at HP-OpenView in Amsterdam. Service Desk is
a Java application that implements the ITIL service management standard. My
position was partly in design, partly in implementation. Many of the
activities relate to making the product more mature:
•
I
designed and built an automatic regression test framework to monitor the
quality of the software. Though the technology is based on the junit unit
test framework, most of the tests are functional regression tests. The
framework fully automatically installs the packages that come from the
latest build, then creates a database and runs the tests.
•
I
created tools to measure the performance of the product and on the basis of
the results I introduced several performance improvements. The performance
measurement tool and the load generator record actual user sessions at the
interface between client and server in the form of a Java program. The
generated program replays the session with small variations to load the
system and to measure response times.
•
Service
Desk is built on top of a very complex object-relational database model.
After six month of convincing my colleagues and management I managed to
bring the model under source code version control. This is an absolute
necessity as several teams work on components that are integrated into
Service Desk.
•
I
am the designer of the Service Desk installation and upgrade procedure. It
is a major challenge to implement a complex database schema like the
Service Desk schema at the customer site. It is even harder to check and
upgrade the schema at a customer site when the software is upgraded.
•
I
was the architect of the ServiceDesk/Database interface: A home brewn
object relational mapping mechanism. Though standard technology might have
been preferable, it was quite successful in separating the details of the
database schema and the application implementation.
March 2000 - May 2002 -- Founding Member
W3Creative.com
March 2000 - May 2002 -- Member of the
technical team
W3Creative.com is the
author of the 'Game of the Worlds' internet game that can be
found at the URL www.simcountry.com. It is a virtual
world consisting of oceans, continents regions and countries. The players
are the presidents of the countries. They decide on the budget, education,
social policy and economic issues or they just work on trade contracts for
their countries. Behind the scenes is a realistic economic world model that
runs at the pace of three month in one day on Linux servers. I contributed
to the general architecture of the application and the implementation of
the model. I designed and made the software that builds the world- and
country maps and adapts them to the current state of the countries. I
designed and built the database interface of the model and most of the
processes that run the model on just une Linux server. It was quite a
challenge to optimize the economic model process that fully updates a
200000 record database several times a day.
1984 - March 2000 -- Chief Engineer with
SuperNova Technology
1984 - March 2000 -- Chief Engineer
SuperNova Technology
started as a software house specialized in UNIX. It now produces the
software tools like SuperNova Application Developer, SuperNova Decision
Query and SuperNova Visual Concepts. Since I left SuperNova the company has
been acquired by WRQ inc. and the tool set was renamed to WRQ VeraStream.
As chief engineer and
architect directly reporting to the CEO, I am one of the principal
designers of the SuperNova software tools that include:
·
SuperNova
Application Developer is an object based 4GL and graphical application
builder.
·
SuperNova
Decision Query is a report generator in which the user can build a template
report, and let the generator derive the query strategy from the report.
·
SuperNova
Visual Concepts, a component assembly tool for the construction of
component based applications from standard application components.
I contributed a major
part to the architecture and the implementation of the tool set. (Mostly
in C.) My contributions to the architecture and implementation include:
·
The
abstraction layer between the products and database engines or record
managers. It offers simultaneous access to different database systems
through a uniform interface.
·
The
core SuperNova engine. It is an object based engine that executes the
business logic in an application system.
·
The
distributed processing part of SuperNova: It can move over part of an
application to another node on a computer network and execute that part
over there.
·
The
interface of SuperNova products to GUI systems such as MS-Windows and
Motif. This includes a wide variety of graphical objects and an interface
for call-backs to the SuperNova core engine.
·
The
Query By Report algorithm of SuperNova Decision Query.
·
A
fully validating XML parser and XML DTD browser and a message composer for
the SuperNova application construction and integration environment.
1983 - 1984 -- Statistician, Programmer
with RIVM
I wrote programs for
statistical analysis and data management of the epidemiology department of
the National Institute for Public Health in C. An important part of the
work was statistical consultancy.
1975 -
1983 -- Student in Mathematical Biology
Statistical analysis
programs and simulation programs, mostly in a biological context. At
university I worked on graph rewriting systems and formal languages. I
built a generator and an inference engine for Map L systems, producing
graphical output.
2000 - 2011 -- Technical achievements
outside the context of a job
I am the author of a set
of spelling servers originally for the NextStep environment. It is a set of
production quality spelling checkers. Its main interest lies in the
application of finite automata for approximate search.
I am the author of the Ted RTF text formatter. As one of the
more complete and fastest open source text formatters
Ted is widely used to produce appealing PDF output
from application software. I have done several projects where I have
extended the Ted text
formatter to support more RTF features and to integrate it with database
applications. In particular for two Italian service providers to local
banks that use the Ted
text formatter to produce contracts and policies and the German Railway
company that uses it to format some of their timetables. I am a specialist
in various document formats and their conversion. In particular in RTF,
PostScript, PDF and HTML.
I am the author of an
easy lightweight wysiwyg rich text processor for Unix/Linux and GTK (or
Motif). It is based on the Ted text formatter. Though it runs on any POSIX implementation it
is a Linux application in practice. It is available from
http://www.nllgg.nl/Ted. It implements most of
the RTF 1.5 standard. Besides that it is an experiment into the limitations
of one single individual when he has to implement a full software product.
Evidently Ted uses the
spell checkers mentioned above.
For pleiade management
and consultancy I built a framework for conducting surveys over the internet: www.pleiadesurvey.nl Once installed, it allows a surveyor such as a market researcher
to conduct a survey without the help of a technician. For pragmatic reasons
the system was implemented in perl. The whole application runs on the
server of an internet ISP. The survey questionnaires are defined as an
MS-Excel spreadsheet and uploaded to the server. The survey is conducted
over the internet and the reporting module produces complete fully
formatted statistical reports with publication quality tables, statistic
tests and bar charts in Microsoft Word format.