CV

Tom Hastings Programming Resume

JavaScript is required to view the contents of this page.

Introduction:

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.

Check out my Website and App portfolio here

PROGRAMMING – languages and frameworks:

Actual Footage of me working on part of the SmartPoi project
  1. Processing
    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.
  2. Android (Java)
    I have six Android apps published to the Google Play Store, four of which are written in Java. I have developed many more for personal use only, including the most recent, coronaVirusSA, an open source app which parses reliable stats on the COVID-19 outbreak in South Africa.
  3. Arduino
    SmartPoi is a project I worked on for over 6 years. The process taught me many useful things about networking, embedded programming and IOT especially, since it is a connected “thing” project.
  4. Linux
    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.
  5. Bash
    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.
  6. Kotlin
    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 more recently published another based on the same code. My knowledge improves every time I add a feature to these apps. Here is the write-up on how and why I made the original Monkey Detector app. Another IOT project.
  7. Python
    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 M.L context.
  8. Others:
    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.
  9. 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.

Digital skills

  1. Wordpress
    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.
  2. Google Adwords and Analytics
    I am very familiar with this tool for tracking customer engagement online, and reaching new audiences.
  3. Excel
    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.
  4. MySql
    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.
  5. Scribus
    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.
  6. Kdenlive
    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.
  7. Krita
    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 favourite is computer generated art, though.
  8. FreeCad
    A friend has a 3D printer and I have designed a few models for it. Here is one version of SmartPoi visualised.
  9. Fritzing
    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.
  10. Git
    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.
  11. Systems administration
    Been using Ubuntu Server since 2014, most recently hosted on Digital Ocean. LAMP stack, LetsEncrypt, ssh.
  12. 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.
  13. 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.

Personal Skills:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

showcase

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.

The K8 juggling ball colour change demo is also kind of fun (instructions are here)

As mentioned previously I have six 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.

Finally, here is a site I made to showcase my Web Development and Android app Development services.