Tom Hastings Programming Resume
Are you looking for someone with varied programming related skills and a passion for IOT and learning. Perhaps a highly self motivated and creative person to join your team? I am looking for a challenge, to be involved in building something, learning new technology and sharing the knowledge I have gained from my own projects.
PROGRAMMING – languages and frameworks:
I have extensive knowledge of this Java-based programming language. The great thing about Processing is the way you can deploy to Desktop, Mobile, and Cloud with only a few modifications to the same code base.
- Android (Java)
I have three Android apps published to the Google Play Store, two of which are written in Java. I have developed many more for personal use only, including the most recent one, coronaVirusSA, an app which parses reliable stats on the CORVID-19 outbreak in South Africa.
SmartPoi is a project I have worked on for over 6 years. The process has taught me many useful things about networking, embedded programming and IOT especially, since it is a connected “thing” project.
I have been using Ubuntu as my main computing system for over 10 years, both in the cloud (DigitalOcean) and on my Laptop. As a touch typist I am extremely comfortable on the command line.
While I am not an expert, over the years I have built up a library of useful scripts to solve problems such as bulk editing pictures or video, watching a directory for changes, auto backups, compiling, and much more – on the desktop or Ubuntu based virtual server.
Anyone making apps for Android knows about Kotlin. While I only picked this up a few months ago, I published a Kotlin based app (using Machine Learning) to the Google Play Store, and my knowledge improves every time I add a feature to this app. Here is the write-up on how and why I made this app. Another IOT project.
I became interested in looking at Machine Learning, and Python is the language to use for this. Here is my first project. Although Processing is still my first choice for quick and easy general programming, Python is something I am looking at learning more of, especially in an ML context.
AutoHotkey – when I was using Windows I used this to automate so many GUI processes
Microsoft VBScript – I made a front end for our business Excel Spreadsheets (to easily search for customers, add orders, automate mail merges and so on) My wife still uses this seven years later!
C – after using Arduino for so long, I have started using c for some things, particularly looking at networking, since it is so much faster. My ultimate goal is to become proficient in using the NDK for Android, although this is a work in progress.
- Visual Programming Tools:
Scratch – I taught myself this so I could show my son
App Inventor from MIT – after learning Scratch I tried this out, and made a few apps with it. A great tool for learning.
I have made several websites, including this one. Here is one for party venues in Durban, and this one is to showcase my downloadable video show. I used DIVI theme for this one.
- Google Adwords and Analytics
I am very familiar with this tool for tracking customer engagement online, and reaching new audiences.
I am familiar with Spreadsheets, a useful tool. A few years ago I developed a front end for our spreadsheet based booking system (using VBScript), which my wife is still using today.
I read a couple of books on this subject, and even began work on a replacement for our spreadsheet based booking system using databases, but the client (my wife and business partner) ultimately opted to stick with the old, familiar system. I can JOIN a few tables together as a result of the exercise, however.
Desk Top Publishing is a valuable tool for creation of content. I have used Scribus to make pamphlets and posters, and more recently a PDF manual for the SmartPoi product.
Video editing is part of my job at Big Top Entertainment. There are some old and some new examples of my work on the Big Top YouTube channel.
Picture editing is something I have to do often, whether for a new app icon, or promotional photo. When it comes to bulk editing, nothing can beat command line tools like ImageMagick, though. My favorite is computer generated art, though.
A friend has a 3D printer and I have designed a few models for it. Here is one version of SmartPoi visualised.
Circuit design is an advanced topic, however Fritzing makes it easy to do. From breadboard to circuit, the SmartPoi circuit was designed using this tool.
Version control is a game changer for programming. I maintain a public repo at Github, a private one with BitBucket, and every software project I start has it’s own commit history by version two.
- Systems administration
Been using Ubuntu Server since 2014, most recently hosted on Digital Ocean. LAMP stack, LetsEncrypt, ssh.
- Music production
A long time ago I was a working musician and part of my job was sound. I did a lot of editing with software such as Sonar Music Creator, Reason and Ableton Live. I am very familiar with music production as a result – more recently I implemented FFT sound reactivity for my SmartPoi Android app.
- Google Cloud platform
This is a large resource I have looked at and tested various parts of for personal and work projects – the mapping, image recognition, and speech to text in particular.
- Team Player. At Big Top Entertainment every day is a new challenge. From 5* Hotels to Cruise Ships and Shopping Malls, we have to be ready to perform. In my nearly twenty years in the entertainment industry I have learned to manage customer expectations, sell myself and my company’s products; how to manage a team, and be managed as part of a team. Most of all I can say that I am a team player.
- Self Management. As an entrepreneur who works from home I have learned valuable time management skills over the years. I use Trello, a kanban style to-do list tool to keep on top of my progress in projects. Every spare moment is an opportunity to complete a task. Social time is another, completely separate, thing.
- Persistence. If you don’t succeed, and Stack Overflow doesn’t have the answers, come back to it later. I love tackling problems from multiple angles at once, and recognizing when I may have a knowledge gap which may need to be filled before proceeding.
- Reliability. My reputation stands for its-self. Reliability means not only being on time, but being early. This is not just something I believe, it’s something I live by.
- Friendliness and courtesy. I meet new people every week as part of my entertainment job. I am fascinated by different cultures and enjoy interacting with fellow team members, especially where there is a common goal.
This website, circusscientist.com is a kind of showcase in its-self, so please browse around and have a look at some of the projects.
My Github is here: https://tomjuggler.github.com
Also you can check out the fun POV poi demo (turning a square into a circle, kind of magical) – just click on the image to change it.
As mentioned previously I have three apps published to the Google Play Store. In addition I have made the Teddy_Bear_Detector, and CoronavirusSA apps available to download and evaluate. Source code is also available on my github.