Back-end Developer2022 - 2022Aliyoop
Technologies: Python, Django, Django ORM, Django REST Framework, Celery, Elasticsearch, AWS, AWS STS, AWS IAM, AWS SES, AWS Push Notification Service (AWS SNS), Amazon SQS, Pytest, Amazon EC2 (Amazon Elastic Compute Cloud), Boto 3, Cloud, Back-end Development, CI/CD Pipelines, GitLab CI/CD, System Architecture Design, OpenAPI, Technical Documentation, REST API Architecture, System Architecture, Data
- 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.
Technical Lead2001 - 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.
Senior Programmer1990 - 1999SET Technologies
Technologies: C, Assembler x86, SQL, Team Leadership, Embedded Systems, Software Architecture, Architecture, Low-level Programming, Asynchronous Programming, Databases, Scripting, Embedded Software, Firmware, System Architecture Design, Distributed Systems, Technical Documentation, System Architecture, Data
- 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.