
Sam Watkins
Full-stack Developer
Sam is an expert programmer from Australia with 20 years of experience. He is a good communicator, enthusiastic, innovative, attentive to detail. Sam practices "Simplicity, Clarity, Generality" to rapidly create excellent software. His research interests include e-learning, remote collaboration, mathematics, and graphical programming. Sam programs in Python, JavaScript, Go, C, C++, Java, and Perl, and creates web apps with Python, Node.js, Django REST, PostgreSQL, HTML5, CSS, Vue.js, and Svelte.
Portfolio
Availability
Preferred Environment
Debian Linux, Vim Text Editor, Trello, Slack, Git, Go, Svelte, Bash, Python, C, DOM
The most amazing...
...project I've developed professionally is ArmVault, a web application that is used by the major banks in Australia to forecast cash levels and trade cash.
Work Experience
Back-end Developer
ServiceRocket
- Led a small development team to develop and deploy a complex and critical integration system. The product enables large groups to collaborate efficiently on major projects between several companies.
- Developed a FastAPI service to sync data between two systems using async REST and GraphQL calls.
- Built a Python API service with Starlette and GraphQL and backed it on a PostgreSQL database.
- Modified a TypeScript React user interface in a Jira plugin to enable editing fields on an object and send updates to the API service.
- Produced and edited demonstration videos of my work, including an overview and several use cases, using OBS with a face camera, OpenShot, FFmpeg, Audacity, and HandBrake on Linux.
Go Developer
Synphonyte
- Helped to develop an API proxy/gateway written in Go to present a complex upstream XML SOAP API as a JSON REST API.
- Debugged and updated the open-source tool "xml2go," written in Ruby, which helps generate properly tagged Go structs (for parsing and generation) from XML data without requiring any metadata.
- Found critical missing information via web research, e.g., discovered the necessary SOAPAction to use for the upstream API, which was presented without any WSDL metadata.
Freelance Software Developer
Tekt Industries
- Developed TypeScript cloud functions on GCP/Firebase to support an innovative IoT device, including payments with Stripe, and Twilio SMS alerts.
- Worked on a Vue.js TypeScript web dashboard for the management of IoT devices, users, and sessions.
- Worked on IoT device firmware in Python, focused on cloud connectivity.
- Assisted with debugging a mobile app which was written in Dart with Flutter.
Analyst Programmer
Linfox Armaguard
- Made ArmVault, a web application used by the major banks in Australia to forecast cash levels and trade large amounts of cash. It was developed in Python, JavaScript, and PostgreSQL and runs on Linux.
- Developed and maintained Armaguard Online, a web application used by clients to order cash collections and deliveries. It was developed in Python, JavaScript, and PostgreSQL and runs on Linux.
- Built a web application for client services to view routing information collected from a SOAP API, such as the stops and ETAs, for all of the vehicles in the company's fleet. It was developed in Python, JavaScript, and PostgreSQL and runs on Linux.
- Created a set of command-line tools and a web app, used to remotely upgrade, configure and manage more than 1,000 smart safe devices, including parallel updates. The web app was developed in Perl, JavaScript, and Firebird SQL and runs on Linux.
- Maintained and developed console applications (written in C) used for core business including cash counting.
- Performed security audits and implemented security-focused projects, including authentication, 2FA, SSO for major clients, input prevalidation, OWASP web app security, cryptosystem selection, and identifying network security vulnerabilities.
- Implemented a web app for a new TV system in head office and all the branches, to show safety statistics visually, and show internal video updates on a schedule.
Software Developer
Fastmail
- Worked on the module that strips potentially dangerous elements from HTML emails.
- Added keyboard shortcuts to the email user interface with popup help.
- Improved the user interface for the user to set their time zone.
Software Developer
SchoolsNet | MyInternet | Editure | New Era Technology
- Improved a variety of software components including Perl web apps, a statistics/analytics system, and a complex asynchronous server written in C++.
- Wrote a Perl web app, a data-driven XML editor for teachers to edit metadata describing shared e-learning resources; solved the general problem of editing any sort of XML object, which was simpler than creating an editor for a single data type.
- Wrote software tools in Perl and Shell, including a general-purpose database query tool that works with many engines including PostgreSQL and MySQL, a database schema upgrade tool, a file conversion utility, and text processing and relational tools.
- Packaged internal software components as Debian packages and used Debian GNU/Linux, which is still my preferred operating system.
Experience
Ultra Code Monkey | Web App
https://ucm.devI made this system to help me teach math and programming to my own children and to students remotely. I can edit content live on the web page, including HTML, CSS, JavaScript, drag-n-drop, Markdown, TeX for math, plots, and embedded content, and save changes to the server.
The linked page is one example. I also use it for other sites, project planning (like Trello), and individual student pages. I intend to extend this to be a full live collaborative HTML editor. The app is implemented mostly in JavaScript with some Python on the server side.
Cz | Programming Language
Cz has coroutines, hygienic macros, header generation, #! scripting and cached executables, libraries with graphics and sound, and many animated demos. Cz is developed on GNU/Linux and can also run on Windows (with MinGW), Mac OS X, FreeBSD, OpenBSD, NetBSD, Solaris, and GNU/Hurd. Cz translates (fairly) cleanly into C.
Cz is a work in progress, but I think it is already useful and fun. Cz has the full power of C, but it is easier to use, like Python. I use it for some of my programming experiments, including plotting fractals and game development. Cz is pronounced see-zee, sounds like C-easy. It's supposed to be easy to use.
The language and the translator have a few faults which need to be rectified before it might be more generally useful. I intend to continue improving it.
Rescue | Video Game
https://ucm.dev/code/rescue/rescue.htmlTo save them, you must enter the caves and face the deadly Wumpus and Grue. You have agility and rope but nothing else.
Rescue is a "homebrew" game written for the Pandora handheld. It was written for the Feb/March 2011 Pandora Homebrew competition; I've been gradually improving it since then. It also runs on PC Linux, Mac, and Windows.
It's quite hard but can be fun and a big challenge.
Skills
Languages
Python, C, Perl, JavaScript, CSS, SQL, HTML, XML, Bash, Python 3, Java, HTML5, C++, TypeScript, Go, GraphQL, Lisp, Scheme, ARM Assembler, Web Services Description Language (WSDL), PHP, Dart, Ruby, TeX, Rust, Lua, Haskell, Forth, DocBook, Hack
Frameworks
Vanilla JS, Svelte, Django REST Framework, Django, Flask, Netfilter, OAuth 2, Nuxt.js, Vuetify, Tailwind CSS, Flutter, Selenium, React Native, Accelerate
Libraries/APIs
SDL, Node.js, REST APIs, SlickGrid, Vue, jQuery, Mapbox GL, Stripe API, Python Asyncio, SQLAlchemy, FFmpeg, ImageMagick, Steam Web API, Standard Template Library (STL), HTML5 Canvas, Stripe, Fast.ai, OpenGL, Vuex, React, OpenGL ES, GeoIP, Facebook API, PyTorch, TensorFlow
Tools
Vim Text Editor, Apache, Git, Shell, Subversion (SVN), Certbot, OpenSSH, NGINX, Trello, Jira, Slack, Ansible, NPM, Amazon Simple Queue Service (SQS), Graphene, MinGW, Postfix, VirtualBox, Zoom, GDB, Valgrind, Open Broadcaster Studio (OBS), Audacity, OpenShot, Make, SendGrid, LaTeX, RabbitMQ, gnuplot, AWS CLI, Expect, GPG, Emacs, GIS, VPN, OpenVPN, Kafka Streams, Jupyter
Paradigms
DevOps, REST, Object-oriented Programming (OOP), ETL, Agile, Automation, HTML DOM, Web Architecture, Templating, Web Application Architecture, Database Design, API Architecture, Functional Programming, Portable Code, Microservices, Data Science, Penetration Testing
Platforms
Debian Linux, Linux, Unix, Docker, Google Cloud Platform (GCP), Firebase, Windows, Twilio, Quick EMUlator (QEMU), ARM Linux, Amazon Web Services (AWS), NVIDIA CUDA, KVM, Arch Linux, MacOS, Android, Jupyter Notebook, WordPress, Visual Studio Code (VS Code)
Storage
PostgreSQL, Firebird, JSON, Databases, MySQL, Cloud Firestore, Google Cloud, NoSQL, Amazon DynamoDB, MongoDB, SQLite, PostGIS
Industry Expertise
Security, IT Security
Other
Software Engineering, Coroutines, Macros, Mathematics, TCP/IP, Network Programming, Back-end, Front-end, APIs, Web App Security, Authentication, User Authentication, Full-stack, Web Applications, API Gateways, Algorithms, Optimization, Physics, BIND, X Window System, X11, CGI, SSH, CSV, Regular Expressions, RSync, Email Templates, HTML Templates, Architecture, Integration, System Design, Code Generators, Web Research, Rapid Development, Simplicity, Mutt, Open Source, Web Scraping, Software Architecture, System Architecture Design, Creative Problem Solving, DOM, Combinatorics, Geometry, Algebra, Number Theory, Analytical Geometry, Calculus, Debian Packaging, SOAP, Google Cloud Functions, Analytics, Cryptography, Progressive Web Applications (PWA), FastAPI, Message Queues, Axios, Firebase Cloud Functions, Gimp, MSYS2, Leadership, Real-time Rendering, SVG, VNC, ARM, Third-party Authentication, OAuth, Security Policies & Procedures, Data Visualization, Webhooks, Virtual DOM, QA Automation, Chrome Extensions, Deno, Mobile Apps, Game Development, 2D Games, Game AI, Animation, Level Design, Puzzle Design, Game Physics, Foley & Sound Effects, LXC, ZFS, Serverless, BitTorrent, WordNet, WebSockets, SVG Animation, Deep Learning, Artificial Intelligence (AI), Neural Networks, Xterm.js, Web-based SSH, NoMachine NX, Single Sign-on (SSO), IoT Security, Machine Learning, CI/CD Pipelines, PDF, PDF Scraping, Deployment
Education
Bachelor of Applied Science Degree (CSSE) (Incomplete) in Computer Science and Software Engineering
Swinburne University of Technology - Melbourne, Australia
Mathematical Olympiad Enrichment Program in Mathematics
Melbourne Grammar School - Melbourne, Australia
Certifications
Walk With Fast.ai Revisited | Artificial Intelligence
Zachary Mueller | Online
Practical Deep Learning for Coders Parts 1 & 2 | Artificial Intelligence
Fast.ai | Online