Before I got my own computer I was playing with my friends' C64 computer
to write simple basic programs. I was completely fascinated by computers and I knew
that I wouldn't want to do anything else.
When I got my first PC (a 286), I started using GW-BASIC.
I wrote some applications that
did computations on geometric objects, and in the end it was a
quite comprehensive math tool.
I switched to Turbo Pascal soon, and I did many projects with it.
I wrote a 3D graphics animator, a program to compute peoples' Biorhythms,
a Quick Database application, some visualization tools for mathematical
equations and chaotic behaviors, and many other things.
After that I taught myself C++ and enjoyed advanced
concepts and idioms.
During my last years of High School in Germany and during the first
years of College I was very interested in issues of Artificial Intelligence.
I enjoyed programming in Prolog. I have also worked
with Neuronal Networks. Besides technical things I was asked many
questions about the future and the essence of AI. That made me realize
that most people outside the field of computer science have been
influenced by distorted information on this topic. Thus I decided to bring
some facts and my point of view to paper to share it with anybody
who is interested. If you are interested, read my paper on
The Myths of Artificial Intelligence .
I like the Internet and the World Wide Web. I like keeping up
with the latest possibilities on the internet and look forward to many
more cool things to come.
In college I had the opportunity
to play with different systems such as DEC VAX/VMS, multi-processor
machines like the KSR and N-Cube, SUN workstations, Silicon Graphics
workstations, and others. Endless nights I played around with our
networks and without noticing it I learned a lot about the internet,
Unix, multi-user concepts, and security. Every now and then I miss
the good old shell scripts that did all kinds of neat tricks and
everything else that got hacked together over time.
Towards the end of College I also enjoyed non-technical aspects of computers
and solutions. I was the student representative for a large software company and
I interacted with many people. I presented software, talked about it's features,
and tried to understand the needs of the users. At that time I also
became more interested in ethical and legal issues concerning
computers and their technological advancement.
Out of college I did Windows programming. I was good at taking the rough
ideas that people have about what they need their computers to do and turning
them into successful solutions.
I enjoyed concepts of multi-threading and thread-safety.
I like object orientation
and I probably can't think any other way anymore. I also think that it's
important to write clean and high quality code.
In February/March 1997 I was invited to help cleaning up the
entire code base of the company I worked for.
It was quite a challenge and I worked together
with people of different backgrounds having
different ideas about what is good code.
In the end, we all learned a lot and we liked working together.
The project that I was working on between 1997 and 1998 was a
tool that interacted with printer queues of IBM's AS/400. Instead
of printing reports and spooled files of many pages, the tool
downloaded the spooled file and analyzed it on the PC. A flat text
file was turned into an interactive experience with graphics,
summaries, overviews, breakups that allowed drilling into the data sets,
and interaction with other programs.
In the summer of 1998 I started to work for a large software company again.
My initial project was to write a lightweight install and upgrade mechanism
for Windows 32-bit platforms. The task was to downloads software components and
installs them on a client. In addition to the mechanics of downloading files
using either Internet Explorer or Netscape Navigator, I was exposed to the
problem of how to properly install components, how to figure out if components
are out of date, and how to have all this controlled from the server.
During that time I was also heavily involved in more general web technologies,
mainly on the client side. I had fun writing ActiveX Controls, Netscape Plugins,
Java Applets, and the appropriate Java Script to glue it all together.
At the beginning of 1999 I started working on a high performance internet
web server with great demands for scalability and reliability. I learned a lot
in the areas of optimizing server side applications for speed and efficiency,
and many strategies on how to improve and run a very large scale web site.
For a more formal summary, please review my
Résumé.