TKDBMS Selection Criteria

Qualifications appropriate to duties

I completed a Batchelor of Science in Applied Mathematics at RMIT in 2007, which covered software development and documentation for scientific applications.

I have 9 years of professional software development experience in/for enterprise, startups, and government, across the entire software development and deployment lifecycle. I have also made numerous open-source contributions.

Python Experience

I have been in the python community for 11 years. At DELWP, I was often tasked to the mapping team to help with their PostGIS and ESRI installations, developing and maintaining services and making sure they are reliable. I designed custom ETL programs and tools for manipulating and visualising data.

At NAFC, I developed services for the raspberry pi, as well as internal python websites for tracking the status of the services and performing operational changes.

I have operated the official #python IRC support channel on freenode.net providing help and moderation for 10 years so I am well known in that community. I contribute to the pypy python runtime, and have produced experimental backends and optimisations for it. I contribute to many packages, and maintain one of my own, a cffi-based compiler wrapper.

Web Frameworks & Databases

I have built or maintained applications in a variety of web frameworks. I have built and deployed websites / webapps in Twisted Web, Flask, WebApp2 (the Google App Engine default), and Django. I follow the modern practice of having static HTML rather than templating, with javascript making calls to JSON REST services or interacting over a websocket.

I am intimately familliar with several relational databases including PostgreSQL (and PostGIS), MS SQL Server, and Sqlite3. When using them from python, I typically use the sqlalchemy.core API, though I have used dbapi2 and the full sqlalchemy ORM.

UNIX/Linux

I have run Debian GNU/Linux as my primary OS since 2006. I do all of my testing and deployment from a GNU bash command line.

My previous employer moved almost exclusively to Ubuntu LTS as their server OS in 2012, and started maintaining these systems with opscode chef. We have used several cloud providers, including Amazon, GCP, and Telstra Private Cloud, and I have built these systems up from an SSH connection to continuous deployment targets.

Software Lifecycle

Most of the teams I have worked in have followed TDD best practices, with full coverage expected of unit tests as well as automated style checking. Many of the projects I have worked on have also had integration testing, including some advanced selenium usage, mocking real web services, and database usage. I added load testing to one application where it was required.

I have used mercurial, git, svn and darcs for revision control, and use branches for individual features, which I use for code review and user acceptance testing. I have also used branches with buildbot or jenkins to perform continuous integration and deployment.

Communication Skills

I have worked on distributed teams where phone and email communication has been crucial to working effectively. I have often had to do my own business analysis, figuring out what the client is requesting, and helping them to understand what I can provide.

I have produced technical documentation in a range of formats, including LaTeX, reStructuredText, Markdown and HTML. My own blog is written in reStructuredText.

I have delivered presentations and talks in front of groups of different sizes and tutored people on mathematics and programming.

Time Management

I have often worked on my own. At DELWP, I was often the only person with in-depth experience in a certain technology (such as python or sql server reporting services), and would be tasked to produce reports, track down various bugs, and develop features with little supervision.

To keep track of outstanding work and deadlines, I have used issue trackers such as JIRA and ServiceNow, and have used calendars, reminders, org-mode lists, and kanban boards.

Social Justice Strategy

I value a workplace that sees the value in its employees and contractors, that is committed to diversity. It is essential that everyone can be heard and that work is a comfortable place to be, where every person is treated with respect.