Skills

Backend Development

Build services for efficiently querying and storing data. Design databases to ensure that data remains valid and current. I've built both REST and SOAP services in Java EE, C# .NET, Python with Twisted and Flask, e-commerce sites with Django, and Ruby On Rails. I've also built databases in MS Sql Server, SQLite3, and PostgreSQL. I'm comfortable here in just about any technology.

Desktop Applications

Build rich, interactive desktop applications. I've built everything from easily customisable Tkinter data-entry apps through to OpenGL 3D visualisations of physics models; PDA applications in .NET and XAML, and Java Swing rich clients.

Integration

I've got a strong polyglot mindset, which means I often get called on to integrate legacy systems in unfriendly languages such as Visual Basic or PHP. I've worked on several compilers, doing static analysis with PyPy and jChord, and wrapping the libFirm C compiler for use from python.

 

Inferred aircraft state from streamed flight path in tkinter Lorenz attractor simulation in three.js Pitch detection of a popular song in Kivy

 

Web Development

Create user interfaces for the web so that people can view and interact with data. I've built pages based on geospatial maps with Leaflet, used ClojureScript with Om (a React wrapper) to build highly interactive content, client-side visualisation with d3, used a wide range of templating engines including Genshi, Jinja2, Mako, ERB, HAML, ASP, JSP, JSF and Stan. Use of many popular CSS and Javascript component libraries such as bootstrap, yui, mootools and jQuery.

Data

I'm often the go-to for interactive and one-off analysis and migration of data. Migrating data from legacy systems, integrating between different departments, complex schema changes and reporting, html/xml as well as parsing unstructured data can easily be done with Common Table Expressions in SQL, custom Python code, or EMACS.

Workflow

I've worked on teams of twelve with fortnightly sprints, kanban boards, and even pair programming at DSE, and I've worked on my own for small clients with emails and slack. I have used Confluence and JIRA for documentation and issue management and Jenkins for CI, and I've used bitbucket and buildbot when I contribute to PyPy. I've deployed to tens of machines on AWS and GCP and installed systems on small embedded devices. Whatever workflow your team works with, I've probably used it before.

Experience

Bureau of Meteorology / COSPPac

Python Developer / Flask

April 2018 - present

The COSPPac program within the Bureau work with islands in the Pacific to reduce the impact of climate, weather and geo-hazard events. One of their products is the Traditional Knowledge Database (TKDB), which is used for recording traditional methods of predicting the weather, integrating these with conventional scientific forecasts, and recording culturally significant narratives for future generations. The TKDB is a web application written with Python 2, Flask, SQLAlchemy, PostgreSQL, and JQuery; deployed on CentOS and Ubuntu with Ansible. I added new pages for recording information such as how communities prepare when geo-hazards or extreme climate are forecast, increased unit test coverage, audited Jinja2 templates to ensure fields are sanitised properly, replaced html tables built with string concatenation with lxml.builder expressions, built Scalable Vector Graphics icons, and made many code-quality improvements to ensure that the system continues do be maintainable.

Stock Software

JEE Developer / Integration & Data specialist

2009-Feb 2018

Stock Software provide development, maintenance and operations to several state and federal departments who had a specific need for information systems (both online and rich client), as well as geospatial systems. I help design, develop and maintain everything from SOAP and REST services to Sql Server Reporting Services reports.

While most of our work has been in a JEE environment with MS Sql Server, we also do our own operations with Chef, build our code with buildr, and produced a few standalone Ruby On Rails applications. I had the pleasure of working in the mapping department from time to time, helping with their PostGIS and ESRI Python scripts.

With my Python, SQL and EMACS expertise I also performed data import from legacy systems and other integration points, performed or wrote reports for deep analysis of data, and helped others to integrate systems written in various languages to our deployment environment.

BigNote Pty Ltd

.NET Developer

2008-2009

BigNote develop and maintain a framework for building distributed information systems, specialising in case management. We tailored a suite of C#, T-SQL and AJAX client applications for the Windows Desktop, PDA, and the web, as well as XSL-FO reporting applications, for the clients case management needs.

I also offered general support, worked on bugs, massaged flaky data, and was heavily involved in design of the database and new features.

William Leslie — william.leslie.ttg@gmail.com — +61 425-885-208