Resumé

Besides this resumé, I invite you to take look at the rest of my website as well. It is as much part of my resumé as anything here.

Contact

Photo of Wiebe Cazemier in may 2008.
Wiebe Cazemier

http://www.halfgaar.net/

profile for Halfgaar at Server Fault, Q&A for system and network administrators

Summary

After finishing my IT education in july 2004, I started working as a database engineer with PostgreSQL. Because of that, when it comes to writing software, databases and SQL are a specialty. I've worked extensively with PostgreSQL and MySQL as primary development platforms (not just a data store), and have a definite preference for PostgreSQL. Over time, I have gained years of experience in C# and Microsoft SQL Server, as well as C++/Qt. I also have a lot of experience in Linux system administration (mostly Ubuntu and Debian), both enterprise level professional and personal. When it comes to technology in my spare time, I also like designing and working with electronic circuits (audio electronics mostly). Aside from technology, you may see me on my bicycle, preferrably in the Alps.

Software development I enjoy the most is working with statically typed, strict languages and databases. Dynamic languages like Python or Javascript may allow you to set something up quickly, but maintaining it long term, especially when working on it with multiple people, is error prone. Every piece of code written has an intent. The intent is very clear in one's head when the code is just written, but since less of it is part of the code when types are missing, long term working on it with multiple people is hard and error prone. As ancient wisdom states, reading code is a lot harder than writing code, and reading code without types to help you (and the static code analyzer) is harder still.

I prefer the more exact, algorithmic kind of programming over, say, automating paper shuffling. Not only because it's more interesting to me, but also because it can be more easily defined. For example, I'm very glad I don't have to automate tax filings based on laws that politicians come up with on a whim. Instead, ask me to generate a unique random number sequence and do an analysis of the random seeding and distribution, and I'll hapilly take a book from Donald Knuth and get coding.

Webprogramming has never been my forte. I find the platform hard to work with. Essentially, we've made document renderers into application delivery platforms, and slow and flakey ones at that. For years, I've never been able to articulate it well, but now that mobile apps exist that mostly run natively (Facebook, Youtube, Linkedin are all apps, not websites), I can finally reset my case.

I enjoy working directly for and with clients and do so frequently, on-site. As somebody who takes responsibility for his work, I prefer working with people who are equally self reliant, yet work well in a team.

References

The beauty of today's world is that we stumble upon people like Wiebe who have the vision and skills to break down a problem and find solutions for it. Wiebe saw a data problem I had and had the open mindeness to use available sources and link them together to create my solution. I had to virtually cross a great distance to find these qualities in an individual and would not hesitate to recommend Wiebe's work to anyone. As we say here in Quebec: "Merci beaucoup mon ami". — David Joly, davidjoly.com

Education

August 2000 - July 2004
Bachelor Software Engineering
Hanzehogeschool Groningen
August 1995 - July 2000
HAVO - secondary school
Augustinus College Groningen

Experience

November 2009 - present
Software developer and system-/network administrator
YTEC Development B.V.

Initially only the network/system administrator, now also a developer primarily in C#, C++/Qt and PHP, and some Python.

Network and system administration involves managing some 30 to 40 servers, virtual and physical, mostly Ubuntu and Debian Linux. It's my job to actively seek out areas of improvement, both in the sysadmin work itself and in the services we develop. This may involve working with developers to address issues like slow performance.

As a developer, most of my time is spent directly for clients that have specific IT requirements.

July 2005 - November 2009
Software developer and system-/network administrator
Sicirec Group B.V.

Initially as part of a team of two, but later by myself, I designed and developed the software needed to automate a large part of our administration. This means a custumor relation management system, but also an extensive database system to automate the administration of investment funds. We used Ruby on Rails and PostgreSQL for this.

Besides the new database software, the legacy system, using DataPerfect, also needed to be maintained, minor as well as major maintanance. Because of this, I have the questionable honor of being a proficient DataPerfect administrator.

Additionally, I did the network- and system administration (Debian Linux, some windows clients, Coyote Linux router, etc).

Finally, I also became webmaster of the website; not as much as an editor, but as a technical maintainer of the infrastructure (XSLT, PHP, Javascript, Subversion, etc).

Februari 2004 - July 2004
Software development to automate laboratory analysis
Universitair Medisch Centrum Groningen

Together with a fellow-student, I wrote a program in Borland Delphi 7 to automate the processing of data produced by mass spectrometers and gas chromatography machines used to analyze urine samples, to produce a graphical report and store the information in a database.

November 2003 - Februari 2004
Lab assistant
Hanzehogeschool Groningen

Although usually they don't use first year students for Lab assistants, I was offered to assist in programming classes. They were having a shortage, so they asked those people who were in their first year with the highest grades for programming if they were interested. I declined, but later in college (fourth year), I decided to do it after all, and I'm happy I did. I liked helping students learning to code.

Skills

Linux

I have extensive experience with Linux systems. The first distribution I used was Slackware, back in 1998. Since then, I have installed and used Linux From Scratch, Coyote, Gentoo, Archlinux, Debian, Ubuntu and Mint systems. Because of the years I ran Slackware, Linux From Scratch and to some extent Gentoo, I am used to getting into the guts of the system and configure things manually. Especially in the early days, maintaining a Linux system was quite different from what it is today.

My Linux experience of course includes everything like Apache, Nginx, Samba, SMTP/IMAP/POP, Software and hardware RAID, but also hosting PHP/Django, Asterisk, central configuration management with Salt, and more Enterprise level aspects. Additionally, I also use Linux on the desktop, so my experience isn't limited to server software.

Bash

In my years of working with Linux systems, I have written a great deal of scripts to automate processes, whether it's to help me automate backup processes, or support my lazy nature (because I can't be expected to do a certain action on multiple files by typing it twice).

It's a bit of a deformity, but I like Bash.

C#

I've worked with C# for several long running projects, up to the present. I worked with several version of .NET, as well as supporting libraries like Linq2SQL and Entity Framework.

C++/Qt

I've done several projects in C++/Qt, which I've enjoyed very much. I like lower level languages like C++, especially with Qt.

Postgresql, SQL and PlPgsql

In my opinion, it's the database's responsibility to ensure data integrity. Some people like to use the database models, provided by Frameworks like Hibernate or Ruby on Rails (Active Record actually) for that, but this poses problems in my opinion, because you then have a database which accepts faulty data. Add to this the amount of trouble I had with Active Record, in that it's very unpredictable, which makes it even worse. Because I prefer to let the database ensure data integrity, I have ample experience in writing triggers, views, rules, etc in SQL and PlPgsql.

MySQL

For an application with a large database, I work extensively with MySQL and its more advanced features (views, rules, triggers, partitions, replication, etc).

CVS, Subversion, Bazaar and Git

Over the years, I've gotten to learn especially Subversion and git well. Of course, when you're used to the advanced features Git offers, it's hard to go back to Subversion.

I value good SCM practices a lot. I wonder how it is today, but it's a shame it wasn't tought in computer science courses when I was in college. It should be part of a college degree.

PHP

I routinely work with PHP, though it's not my favorite language. When the string "0" is false, it's obvious it's not meant for engineers.

Audio engineering

Over the years, I (partly) designed and built a several complete HiFi surround systems. It has tought me a thing or two about building, diagnosing and repairing audio equipment and general electronics skills like PCB design. I have a separate section on my website about it.