Jonathan Irving

Profile

I'm a Software Engineer with an eclectic background. I've worked for the Prison Service (UK), done application and security architecture, security technology research, been trained in moral, political and natural philosophy and even acquired a USPA skydiving license along the way. I've moved continents twice and countries three times. All of this contributes to my unique perspective on software engineering. I have over 20 years' experience in a range of technology roles, and am always keen to work with new tools. I am a programming language nerd as time allows, but I'm also happy in the infrastructure, automating deployments or doing performance analysis. I enjoy working in small tight-knit teams and alone. I favour development projects which use lightweight processes, continuous integration and delivery for fun, profit and risk mitigation.

I am authorized to work in Canada and the EU. I am not currently authorized to work in the US, but have been in the past. I have been working remotely for over 15 years, the last 3+ years as a freelancer.

My current hourly rate is $100 USD. I am however quite flexible; I'm willing to charge less for great, socially and politically agreeable projects, and to charge more for larger, less appealing gigs for employers with fatter wallets.

Skills & Technologies

I have extensive experience specializing in UNIX and UNIX-like operating systems, many Linux distributions including cloud favourites such as Ubuntu, Amazon Linux and CentOS. I use Arch Linux as my desktop. I also have extensive experience with Solaris unsurprisingly, and am familiar with MacOS and OpenBSD. I have DevOps experience, managing production systems using Puppet, and more recently managing AWS deployments using Terraform and Convox.

I am an accomplished programmer, writing code these days primarily in Clojure, ClojureScript, Python and Go. I have written code for a living in Java, Ruby, Javascript (mostly Node.js), Perl and a little C. I try to learn new languages continuously - my current fixation is Rust. I would love an opportunity to use it in a non-trivial project.

I've designed and built application architectures involving many different kinds of connective tissue, like Kafka, Redis, Amazon Kinesis, and SQS. I've worked with various databases, including PostgreSQL, MongoDB, DynamoDB, and Cassandra.

I much prefer lightweight development processes, very small teams, and programming practices with short feedback cycles, including REPL based development, continuous testing or test driven design, depending on the language and context. I also prefer continuous integration and delivery. I am not religious about any particular methodology; I have found that different approaches serve different goals, technologies, tools and cultures.

I am an Emacs user. Enough said.

Finally, my communication skills are excellent; I have made numerous presentations as a part of my work, and have presented and facilitated at software conferences (though I have no interest in doing more of this!); in previous roles I have provided ad hoc, formal and informal training sessions. I've also trained non-technical end-users, and mentored novice web developers.

Education

MSc, Information Technology (Distinction)

Kingston University, Kingston-upon-Thames, UK 1996 - 1997

BA with Honors, Modern Arts (2:1)

Kingston University, Kingston-upon-Thames, UK 1989 - 1992

Experience

Affiliate, The Data Guild - 2016-now

I've been doing contract work on projects at The Data Guild for a while now. The Guild is a hothouse for socially responsible data science and related projects; its members are some of smartest, kindest people I've encountered in STEM.

Senior Engineer, Motiva, 2016-now

Motiva is a communication and relationship management platform, with ML-driven message tuning. Initially I worked on improving reliability and scalability on the first generation Motion product; more recently I designed and built a major component of the new CX product, working in a team of two backend engineers, alongside a two person frontend team and a data scientist.

Senior Engineer, AGL Project, Summer 2016

I joined this project, a peer-to-peer marketplace for solar energy trading, when it was already underway, tasked with improving the development to deployment workflow, and stabilizing the production environment. I transitioned a brittle homegrown AWS deployment system to Terraform, so that deployment environments could be spun up on demand (including VPC, ECS, ELK, scheduling, metrics collection and event alerting components), introduced continuous deployment to ECS, and wrote a bunch of tests to make that less terrifying.

Contract Engineer, Skalera - Part time, Feb-current

Built an anomaly detection pipeline using DynaTrace, AWS Kinsis Analytics and InfluxDB. We hope to make use of AWS SageMaker and build early warning system.

Staff Engineer, Appcanary - Winter and Spring 2016

Appcanary is a security product. It aggregates several sources of security advisories, and with the help of an agent, alerts users when their systems are impacted. Mostly Ruby on Rails and Go at a small startup here in Toronto.

Senior Engineer, CircleCI - 2014-2016

Joined CircleCI in September 2014 as its first resident Canadian employee. In my role in Platorm Engineering and Site Reliability, I worked on code throughout the product, which is written mostly in Clojure and ClojureScript and deployed to AWS. CircleCI evolved quickly over the time I was there, both in terms of technical architecture and organization. Helped grow CircleCI in Canada, hiring local engineers and bootstrapping a Toronto office.

Teaching Assistant and Mentor, Lighthouse Labs - 2016

I worked on the web development course, which covered Ruby (Sinatra and Rails) and JavaScript (NodeJS, JQuery, AngularJS, React). Very rewarding spare time work.

Senior Tools & Automation Engineer, DevOps, Turn Inc - 2013-2014

Focused on development projects in support of technical operations. Built out a time series database service using KairosDB, a Cassandra-based project. This involved a lot of component assembly and automation. My favourite part to do was a pre-processing layer written as a NodeJS application.

Senior Software Engineer, Valassis Canada - 2012-2013

Technical Lead on the Circle Street project, a retailer-oriented ad platform. We used Heroku, Rails, NodeJS, MongoDB. I have since learned not to use MongoDB.

Software Engineer, Sun Microsystems/Oracle Canada - 1997-2012

I worked in many roles during my time at Sun/Oracle. Highlights include:

  • Software Engineer on Project Kenai (2009-2012)
    Kenai was a software collaboration platform, combining features such as SCM, issue tracking, communications (forums, mailing lists, instant messaging) and documentation management (wiki). This was both my first Ruby on Rails job and my first DevOps (Puppet managed infrastructure) job.
  • Java Programmer on the OMalley project, aka Sun Software Library (2007-2009)
  • Network Security Engineer, SunCERT (2004-2007)
    Member of SunCERT, Sun IT's Computer Emergency Response Team. SunCERT was chartered to provide a computer security incident and advisory coordination service. In this role I was a co-author of Sun's Solaris Security Certification exam.
  • Security Technologist, Technology Office (2002-2003)
    As an individual contributor in a team of researchers in Sun IT's Technology Office, I was responsible for security projects within the CTO charter.
  • Architect, Sun IT
    Member of a team of four IT architects charged with creating the architecture for Sun's then fledgeling Enterprise Directory Service. Before that, various research projects leading to product and technology recommendations, and maintenance of IT application architecture standards.