You can download my complete resume as a PDF file.
|Languages:||Dutch (native), English (fluently)|
I am a freelance Senior Perl Developer with over 25 years' experience, including exposure to MySQL, Apache HTTP Server, Python, XML, RelaxNG, HTML, and CSS.
I'm an active proponent of Modern Perl. I like writing technical documentation and unit tests; both have saved my customers and me a lot of time over the years. I prefer to reuse code as much as possible, hence I often start a project with researching available (partial) solutions on CPAN.
My personal development projects include a blog that's generated from XML files using Perl. I am currently working on a new version using Markdown for input instead.
Over the years many projects I've been working on involved parsing crawled data and storing the required result. I like challenges like how to make web crawlers robust. I prefer strict parsing of HTML, with many checks and extensive logging using Log::Log4perl. This way changes to HTML, which often occur in my experience, are detected early and collecting invalid data or missing additional data might be avoided.
Besides parsing HTML I've also experience with parsing XML, several custom formats and domain specific languages (DSLs).
Another task that often is assigned to me up is the conversion of data from one format to another; including data cleaning and verification. For example, modifying the text output of a legacy application in such a way that it's suitable to be printed on newly designed labels. Often the input format has to be reverse engineered, a challenge I like.
I prefer to use extensive testing of the custom modules and scripts I write. My favorite module is Test::Most because the module provides the most commonly used testing functions with a single line, avoiding a lot of boilerplate.
My main development environment is currently Ubuntu 15.10 running in a virtual machine on OS X. My router runs OpenWrt, and I use a fanless computer to study FreeBSD. I also use two different VPS providers for hosting my websites. I do the administration of each of those systems, e.g. updates, firewall rules and other security related tasks, installing and configuring software e.g. Apache HTTP server, NGINX , Postfix, Dovecot, OpenSSH, MySQL.
I like to write technical documentation. I prefer to use mark up languages like Org Mode (Emacs), Markdown, LaTeX. This makes version control and searching from the command line easy. Plain text also makes it very easy to generate code from documentation, and vice versa. Where required, PDF versions can be generated using tools like Emacs, Pandoc, pdflatex.
I would be happy to discuss my experience with and exposure to: Python, MySQL, XML, XSLT, XSL-FO, RelaxNG, Apache HTTP Server, NGINX , HTML, CSS, SEO.
Computer Science, BSc; 1991.
Design of Algorithms, MSc; 1994.
Haskell, Monads; final grade: 98%; December 2014; course info; verified certificate (PDF).
Apache Spark, Python, Vagrant; final grade: 100%; July 2015; course info ; verified certificate (PDF).
Apache Spark, Python, Vagrant; final grade: 100%; August 2015; course info ; verified certificate (PDF).
LaTeX resume template for Pandoc based on a LaTeX resume by Jason R. Blevins. The template can be used to create either a LaTeX or PDF file given a Markdown file as input. The template was used to create this resume. Repository: resume-pandoc.
Technical Editor; ISBN-13: 978-0470414644; 2009.
I did some voluntarily reviewing, and am listed in the Credits section.
I provided the Perl program used in this study; article in Psychosomatics 55(6); June 2014; abstract.
I assisted with Perl programming; article in International Research Journal of Microbiology (IRJM); ISSN: 2141-5463; Vol. 3(11) pp. 363-372; November 2012; full length research paper (PDF)
Resume of John Bokma (PDF)