Sean Lanigan

Software and Electronics Design Engineer

Who am I?

Hi! I’m Sean.

As an engineer and technology lover, I’m always looking for new challenges. With experience in software and firmware development, Linux server administration, electronics design, and a range of other technologies, I’d love to hear from you if you have an interesting project.

I was born and raised in Melbourne, Australia — but for the past two years I’ve been on an adventure in Brighton on the south coast of the UK, working for BP Pulse with EV charging infrastructure. In November 2021 I moved back home to Melbourne and now I’m ready for my next chapter.

Even when I’m not working, I still like to play around with and learn more about various bits of software and hardware technology. I have a variety of hobby projects that I spend time developing, including my IoT lamp “WiLED” project , or a funky custom ErgoDox keyboard , and really anything I can get my hands on which involves MicroPython or anything else fun!


Experience

Employment

BP Pulse

Embedded Software Engineer

October 2019 – November 2021

At BP Pulse I was part of a small but dedicated engineering team working on maintaining and extending our fleet of over 7,000 Electric Vehicle charging stations. We managed both legacy hardware and firmware, as well as work on developing new iterations of our products.

I coded primarily in Python on embedded Linux systems running a Yocto distribution, as well as working with bare-metal C applications. Along with coding I also helped our hardware engineers with requirements gathering, part selections, schematic reviews, and concept design. I was also heavily involved in modernising our coding workflow by migrating to Azure DevOps and beginning to use unit tests for our Python applications.

The biggest project I worked on was developing a proof-of-concept for an EV charging load balancing system, consisting of a mesh network and a distributed algorithm – the idea being to have a small cluster of EV chargers communicate with each other over a local network to distribute the available electric current in a fair manner without relying on any central master or external connection.

Extel Technologies

Design Engineer

September 2017 – August 2019

At Extel I was part of a team of a dozen engineers; covering electrical, mechanical, and software disciplines. My role primarily involved software and firmware development and testing, and also included high-level system design in collaboration with the electrical engineers.

I worked with C on embedded microcontrollers, Python on embedded and desktop Linux, and MicroPython in test jig microcontrollers; on projects including an IoT Power Meter and an X-Ray Scanner.

I also spearheaded the use of GitLab internally at Extel, which replaced separate SVN and Redmine services on new projects — my main motivation being to make it easier for both engineers and managers to see a clearer picture of the work being done, and the remaining tasks and features to be completed. Introducing GitLab then enabled me to configure continuous integration builds of our firmware projects, which helped to improve our development practices by giving fast feedback if there were compilation issues and also enabled us to begin doing test-driven development.

IBM Australia

Software Services Consultant

January 2015 – August 2017

At IBM I primarily worked with Tealeaf, an IBM software tool for capturing and analysing website traffic and usage patterns. All my engagements included detailed technical configuration of Tealeaf, support and troubleshooting, and delivery of tailored customer training and mentoring.

I worked on over a dozen Tealeaf engagements, both remotely and on-site with local and international clients, including on-site travel to China and Vietnam. I pioneered services delivery for the first ever SaaS version of Tealeaf in Australia. The biggest analytics discovery I made resulted in a client remedying $1 million monthly in revenue loss.

I also worked with IBM Marketing tools on a six month secondment with a large telco. In this role, I assisted with the creation and deployment of over 300 online marketing offers, by configuring the software to draw on the available data sources as required by the brief.

Qantas Engineering

Summer Intern

November 2013 – February 2014

I was one of 15 students from around the country to be offered an internship at the Qantas Jet Base in Sydney. I worked for three months with the Qantas Engineering team, between my third and fourth years of uni, primarily on a project to build an electrical load analysis database for tracking electrical components added and removed from aircraft. I also worked on a secondary project to make a user interface to copy aircraft firmware from a Boeing-provided DVD onto a floppy disk, as required by some of the older aircraft systems.

Projects

EV Load Balancing Prototype

BP Pulse

This was a big lockdown project for me while at BP Pulse. During some quieter periods at work I devised a peer-to-peer mesh system for EV chargers to communicate and cooperate in order to fairly share the available electric current. This is an emerging problem with EVs – a typical house will only have around 60 amps of incoming current, but a single EV can often charge at 32 amps. This means that in a household with two or more EVs there will need to be some sort of limiting to avoid tripping any circuit breakers. A static limit could be used, but then if only one EV is charging it won’t be drawing as much power as it could. The system I devised uses a simple algorithm running on each charger in a system and direct network connections between all chargers, so that there’s no reliance on a central master or any external server.

Programmed in Python, I first created numerous unit tests for my code to push the boundaries of the algorithm in various cases. I created a UNIX socket interface to abstract the load balancing application from any integration with the actual charging control application, and then finally set up some Raspberry Pis to run the code as a real-world demo.

IoT Power Meter

Extel Technologies

This was the largest project I worked on at Extel — the brief was to design an IoT power monitor and controller for an electric utility client. Over about 16 months the project went from prototype to small-run production.

My role on this project was to develop embedded C code for the two MSP430 processors, used for power measurement; as well as Python code and various Linux shell script and configuration files for the Raspberry Pi Compute Module, used for communications. I also helped to develop two test jigs, for hardware testing and calibration of the units coming off the production line.

X-Ray Scanner

Extel Technologies

This is one of the most interesting projects I’ve worked on — the client was undertaking research into a new kind of x-ray scanning for baggage security checks, and the brief for Extel was to further develop this prototype. The system uses an array of detector cards with FPGAs, which perform initial processing, before sending the data for collation and presentation by an application on a Linux PC.

My role on this project was to develop C++ code for a Qt-based desktop Linux application, which received the data from the detector cards over a TCP stream and assembled it into an image to be displayed on the monitor.

WiLED

Personal Project

gitlab.com/WiLED-Project

WiLED is one of my personal projects. Initially aiming to build a simple dimmable LED lamp, I’ve subsequently expanded my plans to include Wi-Fi and BLE connections. In its current state, the WiLED design retrofits onto an IKEA Hektar lamp stand, transforming a relatively cheap and simple lamp into a smart IoT device.

On this project I have covered a broad range of disciplines, including schematic and PCB design and assembly, 3D CAD modelling and 3D printing, as well as MicroPython firmware development.

ErgoDox Keyboard

Personal Project

gitlab.com/ErgoSL

I once had a colleague who built his own keyboards, which I was intrigued by but never tried myself. However, while I was in the UK and struggling with the ever so slightly different key layout I figured I should have a go at my own custom keyboard.

The design I went with was an ErgoDox, which features two split halves and linear columns rather than the standard QWERTY stagger. After building a vanilla version, I started making some slight modifications to the PCB to make it an even better fit and to use a more modern USB-C socket.


Education

Monash University

Bachelor of Engineering (with Honours)
Electrical and Computer Systems

GPA: 3.009

February 2011 – November 2014

Skills

Programming Languages
  • ✔ Python and MicroPython
  • ✔ C
  • ✔ C++
  • ✔ Bash / shell scripts
  • ✔ JavaScript
  • ✔ HTML and CSS
Software and Workflow
  • ✔ Git
  • ✔ SVN
  • ✔ PyTest
  • ✔ Docker
  • ✔ Yocto
  • ✔ Buildroot
  • ✔ GitLab CI
  • ✔ Gerrit
  • ✔ KiCad
  • ✔ FreeCAD
  • ✔ Wireshark
  • ✔ Snapcraft
Hardware-related
  • ✔ 3D printing
  • ✔ Soldering
  • ✔ Breadboarding and prototyping

Interests

When I’m not behind the keyboard, I enjoy spending summertimes at the beach, occasionally skiing in the winter, reading, playing video games, and playing social basketball.

I love experiencing new cultures, eating interesting food, and seeing different sights — and while I’m doing it I enjoy taking photos of it all. When I get time I play around editing said photos in Darktable.