Back-end Developer
2022 - 2022Aliyoop- Designed the back end for a mass email marketing platform, creating a specification. The front end was developed by a separate team, communicating with the back end solely via REST.
- Costed the specification in man-hours and developed an implementation schedule. The specification was handed over to the front-end developers so the front and back end could be developed in parallel.
- Wrote the back end according to the specification.
- Developed a unit test framework for the module running on AWS to ensure it was tested against the actual AWS API. The REST API had 100% unit test coverage, tested against mocked AWS requests and responses collected by the AWS unit test framework.
Technologies: Python, Django, Django ORM, Django REST Framework, Celery, Elasticsearch, AWS, AWS STS, AWS IAM, AWS SES, AWS Push Notification Service (AWS SNS), AWS SQS, Pytest, AWS EC2, Boto 3, Cloud, Back-end Development, CI/CD Pipelines, GitLab CI/CDTechnical Lead
2001 - 2021Lube Mobile PTD LTD- Created a VPN (GRE/IPSec/IPv4/IPv6) with 30 Linux machines spanning Australia. The VPN did automatic failover to redundant links.
- Developed REST and SOAP APIs for vendors in Java and Python, implementing real-time stock on hand lookup to find the nearest store with all the required parts, real-time ordering, pick-up notification when packed, invoicing, and credit notes.
- Designed and wrote the Android application.
- Created a distributed digital PABX spanning 20 servers and 250 mobile machines, with IVR's, centralized call logging from all of the 20 servers, a call center queues serviced by 12 people, later making the queues work over softphones during COVID-19.
- Read the Kernel source of the undocumented Linux traffic control engine to produce Linux-tc-notes. This was so real-time traffic, such as VoIP streams and keyboard-interactive, ran smoothly on slow ADSL links. It was of some Linux man pages.
- Created a tracking system using GPS units I sourced from China, providing real-time tracking, driver behavior monitoring, geofences, and a customer-facing web page providing real-time tracking of the mechanic on their way to the job.
- Made a dynamic PHP website static with remaining dynamic bits done as SPA’s by developing a simple CMS compiler in PHP. It did static checking like dangling links. I wrote a WebGUI for it in TypeScript, enabling it to grow from 50 to 3,000 pages.
- Developed a multilingual Postgres and SQLite replicator for SQL in Python. It isolated the main database by replicating a tiny subset of the webserver. Sensitive data was encrypted with a 256 bit AES key, split between the server and the customer.
- Took over maintenance of iBCS, a set of open-source kernel modules that let SysV and other old variants of Unix run natively on Linux to support an SCO Unix application. Later, I ported it to 64-bit kernels, then userspace.
- Developed Pam-python and python-pcsclite, open-source Python C modules that interface to PAM and PCSClite, a smart card library. The PAM modules made implementing roving Linux logins easier, pcsclite was used to lock down mobile phone SIMs.
Technologies: Linux Administration, Networks, AngularJS, Vue.js, TypeScript 3, Android Development, SOAP, PHP, TypeScript, Bash, Python, Asterisk, HTML, CSS, IPsec, SQL, Java, IPv6, C, C++, C#, Apache, Python 2, PHP 7, PHP 5, REST APIs, HTML5, Android SDK, Android, Full-stack, Mobile Development, Front-end, Back-end, Team Leadership, JavaScript, Python 3, Linux, Embedded Linux, APIs, REST, Asyncio, Software Architecture, Debian, Debian Linux, Open Source, Architecture, PostgreSQL, Web Development, Shell Scripting, Linux Internals, JSON, Asynchronous Programming, Full-stack Development, Front-end Development, Networking, Databases, OpenWRT, Scripting, Back-end Development, ScrapingSenior Programmer
1990 - 1999SET Technologies- Wrote an x86 BIOS in assembler and C for a new board destined to become a cash register.
- Designed and wrote a protected mode multitasking operating system for x86, mostly in C, which included power on resume from SRAM, video drivers, printer drivers, and network drivers.
- Created the file system the OS used and layered an AVL tree-based database on top of it.
- Designed and wrote the networking stack from layer three up; layer four was built to produce consistent results from redundant nodes. (Think Paxos, but done very differently.) The first attempt wasn’t reliable; the second attempt implemented a mathematical model.
- Created a sharded, replicated, database on top of the AVL trees that typically spread its data across 10 to 50 nodes and moved it in real-time to ensure fast local access.
- Worked in and led the team that developed the back end for the cash registers running on Windows using Delphi (Pascal) and SQL.
- Designed and developed a time and billing system for accountants, lawyers, and similar professions built around the Psion 3 and along with some custom hardware to create a cheap RS485 network. The back end ran on a PC, developed in C.
- Implemented an EFTPOS interface for the cash registers, certified by multiple banks.
- Did all the accountancy work for the firm, including preparing balance sheets, cash flows for the banks, tax returns, designed the G/L, wrote a procedure manual for daily tasks such as invoicing and purchase orders.
Technologies: C, Assembler x86, SQL, Team Leadership, Embedded Systems, Software Architecture, Architecture, Low-level Programming, Asynchronous Programming, Databases, Scripting, Embedded Software, Firmware