Skip to content

Latest commit

 

History

History
161 lines (123 loc) · 6.22 KB

perl-programmer-john-bokma-resume.md

File metadata and controls

161 lines (123 loc) · 6.22 KB

name: John Bokma keywords: perl, modern perl, cpan, cgi, nginx, apache, algorithms, freelance, msc, senior perl developer, xml, xslt, mysql, crawling, scraping, remote, parsing, plack, git, api, testing left-column:

Summary

I am a freelance Senior Perl Developer with over 26 years' experience, including exposure to web scraping, data wrangling, Git, MySQL, NGINX, Apache HTTP Server, Python, XSLT, 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 I a lot of time over the years. I prefer to reuse tested code as much as possible, hence I often start a project with researching available solutions on CPAN.

Experience as Senior Perl Developer

Peppels.net

January 2019 - present; remote, part-time

  • Maintenance of existing code base; Perl, JavaScript, Template Toolkit, HTML and CSS3.
  • Turning graphic designs into responsive HTML and CSS3.
  • Complete redesign of the existing login page for both mobile and desktop.
  • Adding additional PDF printing support.
  • Adding support for portfolio pages for both mobile and desktop.
  • Testing and adjusting mobile design.

SF Metrics

August 2015 - present; remote, part-time

  • Developed a program to import a "JSON per line" database dump into a MySQL database. I reverse engineered the file format, designed the 70+ MySQL database tables, and added logic to avoid duplicate code.
  • Developed a web crawler that downloads XML data, verifies this data, gathers some statistics, and stores desired data and statistics in a MySQL database. I am also reponsible for writing all the technical documentation, specifications, and example SQL queries. (ongoing)
  • Developed several tools for analyzing search engine result pages (SERPs) (ongoing)
  • Porting Perl programs to the Go programming language. (ongoing)
  • Developed Perl modules for storing data in Amazon's S3.

RedSocks - Malicious Threat Detection

February 2013 - December 2015; remote, part-time

  • Developed several web crawling Perl programs for gathering security related data, each crawler exporting downloaded data as a CSV file.
  • Developed a Perl program that downloads security related data from several sources, verifies, cleans, normalizes the data, and export it as an XML file.
  • Developed a Perl program that post-processes the exported XML data to remove duplicate entries and overlapping IP ranges using a binary search algorithm.
  • Developed a Perl program that parses log files (Log4Perl) generated by aforementioned programs, creates reports, and emails those reports.
  • Developed a Dancer2 web application to manually enter IP ranges and related security data and store this information into a MySQL database.
  • Configured virtual machines for each of the Perl programs, including designing firewall rules, and allowing access via rsync and HTTPS in a secure manner where required. Documented the entire process of configuration and installation in great detail.
  • Wrote documentation on how to create certificates to allow client side certificate authentication in NGINX (HTTPS), and configuring NGINX accordingly.
  • Wrote extensive tests for all developed custom Perl modules and scripts.
  • Designed file formats (XML, CSV). Documented each format in Org Mode format (Emacs).
  • Designed Relax NG schemata to validate XML files.
  • Wrote XSLT to transform XML output to older formats in order to support client programs that require an older format prior to being safely updated.
  • Wrote extensive technical documentation in Org Mode format (Emacs).

Education

TH “Rijswijk”, Rijswijk, The Netherlands

: Computer Science, BSc; 1991.

Utrecht University, Utrecht, The Netherlands

: Design of Algorithms, MSc; 1994. Thesis: "Constraint Satisfaction with Learning Automata."

Courses

DelftX: FP101x Introduction to Functional Programming

: Functional Programming, Haskell, Monads; final grade: 98%; December 2014; course info; verified certificate (PDF).

Introduction to Big Data with Apache Spark

: Apache Spark, Python, Vagrant; final grade: 100%; July 2015; course info ; verified certificate (PDF).

Scalable Machine Learning

: Apache Spark, Python, Vagrant; final grade: 100%; August 2015; course info ; verified certificate (PDF).

GitHub

tumblelog

: A static HTML5 microblog generator with support for RSS and JSON feeds written in Perl. A Python version with identical functionality is also available in the same repository: tumblelog.

resume-pandoc

: 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.

Miscellaneous

Developing Web Applications with Apache, MySQL, memcached, and Perl

: Technical Editor; ISBN-13: 978-0470414644; 2009.

Modern Perl

: I did some voluntarily reviewing, and am listed in the Credits section. Electronic versions.

Languages

: Dutch (native), English (fluent).

My curriculum vitae (PDF)