Personal Collections: Some Pictures and Some Little Mac Utilities
Curriculum Vitae
[ Main | Pictures | Macintosh Utilities | AppleScript for Eudora | Contact me / Kontakformular | About me ]

 

Latest job developments and changes

I had been looking for a new job since December 2015; after some turns and twists, I have now started in a new position (working in a software development team in a public transport company).

This page was set up as a description of what I've been working on over the past years, what field I come from and where my interests are. I'll leave this up in case it comes in useful again in the future...

My work experience represents a mixture of software development, statistics, databases, and projects in a scientific environment. I'm a native Swiss German speaker but I also happen to speak (and write) excellent English (too many years of exposure to Monty Python in early life... I also worked in England for two years in later life).

If you'd like to contact me (about, say, project ideas for which it might be worthwhile starting a new company...) please use the form on this page (and make sure to select the subject "Job related"). You can also request a more formal CV (in English or German) on that page.


The story so far:

Education: Ph.D. in biology (behavioural ecology and evolutionary biology), Minor's degree in computer sciences.
Interests:

Biology and evolution, statistics, experimental design, software development, user interfaces, databases, simulations, colour & image analysis, and a lot of other things.

Work experience:

This can be split into two parts:

(A) In the first four years after finishing my Ph.D., I did a few projects as a post-doc. The main topics I was interested in were prey-predator systems on the one hand, and mate choice models on the other. I ran individual-based simulations that allowed for variation to be present; for the prey-predator model I also tried to find analytical solutions where possible and was able to compare the two approaches (and test if the variation that one might observe would be enough to hide small actual differences predicted by the mathematical model).

In the area of mate choice, I created simulations that looked at the development of signals used by females to select potential males. Signals might be used by males to indicate good genes (alleles currently favoured in an environment that changes rapidly though e.g. parasite pressure); but there is also the possibility that genetic correlations between female preferences and the chosen signal could lead to detrimental handicaps evolving over time, which might cause a population to go extinct.

My simulations looked at different choice functions and their influence on the outcome. They were all written in C so they could run on any machine I could get my hands on: the Macintosh under my desk, the university's VMS and UNIX machines. There was a program I wrote in Pascal, but that was earlier, during my Master's degree, and was done in order to transfer colour measurements from a densitometre to a PC; I didn't want to write down hundreds of measurements by hand... And I also wrote macros for Microsoft Excel that calculated the median back then (at a time when such a function was not available in Excel's own collection of functions; ah, the age of statistical innocence).

(B) Then in 1999 I switched to the private sector and started working in the field of software development (beginning with a web application). I also found my way into SQL and the big database engines available (and other aspects such as version control systems: first Source Safe, then cvs, svn and git).

The first job was maintaining and extending a C++ application representing the user logic for a large commercial search engine (called DataStar Web); this involved search syntax logic, user session data, local document cache, user interface (multilingual web pages) and many other aspects.
One of the nicest part of the application was the way it handled the web browser history, where you could submit new queries from forms already sent; the server kept track of all individual submissions and was able to update the overall result list accordingly. This also worked for a custom "clipboard" (a list of user-selected documents from the results of all searches in the current session), where an internal delta list was maintained that allowed users to find the correct clipboard documents from an older page in the local browser history (or a second browser window) even if the clipboard was modified afterwards.
This was one of the main lessons I learnt at that point: don't tell the user he is not allowed to use the "back" button of the browser (and instead should use only form buttons within the actual web page); rather make the application capable of handling the history of the session. The user shouldn't have to care about the different ways for going back to a previous page. In other words, don't be lazy and disable features that seem obvious to the user; rather, build software that can handle it transparently (i.e. make it easy for the user even if that means having a higher level of complexity in the software).

When that company closed its local offices in 2007 six of us started our own business. We created Global Trade Tracker, an application providing import/export figures of more than 80 countries. I'm involved in creating and maintaining the programs for loading the data for this system, which involves a lot of customisable small applications for processing the original data (ETL: extract, transform, load); and I built a web application where the loading process for each country can be done, with the status of all ongoing processes being displayed (running, prompts that are waiting for user input, errors and warnings) and core information on the current use of memory and CPU resources on that machine.

Apart from this, I was involved in various customer projects. Here are a few examples:

• I designed and implemented a registration system for a conference that allows users and members to book their stay and participation in various courses and workshops; features included web pages in seven languages, and exporting the list of attendants (available to just the congress organisers). This was a Java web application using Tomcat, Spring MVC, JPA, and PostgreSQL.

• As part of a larger project, I built workflows for entering, modifying and validating documents. The core of the workflow engine was the Open Source version of Bonita BPM (extended by us with custom code in Java and Groovy); I wrote workflows that allowed users to enter field values, created code that parsed and validated these values, modified and extended them via calls to custom services, and verified values e.g. via LDAP entries or custom dictionaries.

• I took over the administration software package at a local university for applied science and extended it to include new features (and replaced all parts of the package that used to run on local machines by new sofware located on the server); this package featured management of student course memberships, data entry of exam results, generation of spreadsheets with all exam results, calculation of final grades, creation of certificates as PDF files (package based on Apache httpd web server, PHP, Java, MySQL).


Programming skills and knowledge:

I write most of my code and applications inside the Eclipse IDE. Here's the list of programming languages I use:

  • Java
  • Groovy
  • JavaScript
  • C, C++
  • Perl
  • PHP
  • Bash shell scripting
  • SQL
  • AppleScript

And the main libraries and utilities:

  • Java frameworks: Spring MVC, Spring Security, Spring Batch; JPA, EclipseLink, Hibernate
  • JUnit, Mockito
  • Maven, Ant, make (GNU make)
  • Apache Tomcat, JBoss, Apache httpd
  • Databases: PostgreSQL, Oracle, MS SQL Server, MySQL

Most of the code I've written in recent years is used for building web applications (for all three tiers: user interface, business logic, and data processing).


Particular strengths: Patient, persistent, independent, analytically minded.
Previous job (until end of Nov 2015): Senior software engineer at Zen Innovations, working on various projects.



GPG/PGP public key

If you would like to receive my public key for GPG/PGP then please let me know in the form mentioned above. I will send you a link to an ASCII text file containing my key (if your browser doesn't know how to handle the 'gpgkey' extension, i.e. if it will not open your key manager application automatically when you open the link, then you will need to save the file as a text file and import it manually).


Last updated in April 2016 by Markus Frischknecht.