Right to be Offensive

Right
to be
Offensive

Profile

Professionally programming since 2012, (2016 with professional colleagues), after self-teaching from scratch. I love the craft with a passion, and can easily lose track of time working on a problem if it catches my interest.

I’m driven by helping others, whether directly by teaching them, or indirectly by optimising some database query to make their work take 1% less time.

I like to think I possess excellent written and spoken English skills, and I know for a fact I’m a complete beginner at Japanese, though my Japanese friends always say I’m very good indeed. One of them said I could easily be a translator, so I know they’re blowing smoke, but I still appreciate it.

In my own time I play Path of Exile in between raising my baby daughter and appeasing my wife. I also have a cat that hates me, which is pretty cool.

Expert in: Python; Django (and its ORM).

Professionally useful in: FastAPI, TypeScript; React; React Native; Redux; thunk; SQL (PostgreSQL, MySQL, SQLite, and more), Django REST Framework; SQLAlchemy; Linux; systemd; wxPython.

Hobby level interests: C++; Hugo; Go; Twisted.

Dislikes: WordPress; PHP.

Experience

Jul-2024 - today, Employer name withheld - L3 Full-stack developer

I worked on software across most of the engines in the company on many projects, all part of the energy trading platform that powers the business. I also featured heavily in the culture side of the company, often running “socials” (game nights) and pumping new energy into the declining “shuffles” (15 minute weekly chats with random participants). There was also a period during our explosive growth where I conducted a great many interviews, and did a minor overhaul to the types of questions we were asking the candidates, to get a more full picture of who they are technically.

Work included but was not limited to:

  • working in a small team to move our time series data off PostgreSQL onto Clickhouse, as it was causing a performance issue;
  • standard glue-and-pipes work of pushing our data from PostgreSQL via Python/FastAPI on AWS Lambda into a third party system for processing, polling it for completion, then ingesting it and displaying it to end users via a React frontend;
  • exposing some internal processes to broker partners through a private portal to cut down on both waiting time for them, and manual work for us; and
  • removal of a particularly overly-connected database table that existed for legacy reasons (took months!)

Mar 2019 - Jul 2024, Forensic Testing Service - Full-stack developer

I worked in a team of two people in an in-house tech department maintaining the giant piece of software that runs the business, which (in contrast to my previous roles at software agencies) does family law related forensic drug and alcohol testing. I also worked on odd side projects that cropped up from time to time.

The main software I maintained and for which I authored features on a daily basis - Empirical - was initially written nearly a decade ago by someone who had no professional guidance, nor much experience, and probably not a great deal of budget. As you might imagine, I gained a great deal of experience with the ins and outs of maintaining legacy code working on this codebase. As has been a theme, Empirical is a Django-based rich web application, with a PostgreSQL backing store, with various pieces of JavaScript on the frontend.

Outside of Empirical, I have created a mobile app for the sample collection team to use when interviewing clients with regards to their drug usage, researched and suggested the issue ticketing system currently in use, and thoroughly instilled a PR-driven culture with regards to what makes it to master, having gone from nearly a hundred PRs when I joined, to over a thousand less than three years later.

Jul 2018 - Mar 2019, CommonCode - Full-stack developer

I worked in a team of variable size depending on the project, from as few as two people, to as many as “I don’t know”. In the smaller teams, I often fell into somewhat of a mentorship role, as I had more experience with React than the team members who were assigned the tasks.

Similar to my time at my previous employer, I mainly used Python, Django, and React, backed by relational databases, usually PostgreSQL. Dissimilar to my time at my previous employer, I attended and contributed to meetings with clients.

I worked remotely from England for the Australian company as a self-employed contractor until my hours dried up, and I was put on a PHP project too often.

Mar 2016 - Mar 2018, JP74 - Junior developer

I worked in a team of four backend developers, one frontend developer, and three designers, creating and maintaining rich web applications,

Most of the time, the applications were written entirely in Django, with Celery managing long running tasks, and MySQL or PostgreSQL as the backing database, though occasionally we used Django REST Framework in addition to the aforementioned as an API for a React SPA.

I helped maintain the existing web applications, hunting down issues on behalf of clients, fixing them, and deploying them to production in the same day the client gave the go-ahead.

The deployments that I managed were to several different AWS setups. Our main production server was a standalone EC2 instance in AWS, though we had a much more interesting CloudFormation-configured autoscaling high-availability cluster with blue-green deployments which I championed, hosting a global wordpress site for a multinational company.

We also did regular expeditions into unknown territory, to prepare for upcoming projects, or as a special request from a client. We were asked to provide big data insights for a pharmaceutical company, for whom we were unable ptovide a satisfactory result, and - more happily - we were exploring React Native and GPS integration as a favour for a local nature conservation organisation.

I was made redundant from JP74 as it slowly died. I have a story about that. The domain has now been bought by a squatter, and read simply “fin” before that, so please excuse the lack of a link.

Jun 2012 - Mar 2016, John Hunt Photography - Lab assistant

I worked in a team of two to three people, managing two professional digital photo labs (printers), editing photographs, and managing stock.

Towards the end of my stint, I also developed several Python programs, some to automate my own job, and some to run processes in the company. This gave me the confidence to seek my way into the software engineering industry proper, so I left as I outgrew the company.

Qualifications

  • Computing, Economics, and Mathematics A levels
  • Physics AS level