Resumé
Toby Kurien
Electronics Engineer, Full-stack Web and Mobile application developer, System administrator
Where: Midrand, South Africa
Current job: Independent contractor; Freelance software engineer
Education: BSc. Electronics Engineering from University of KwaZulu-Natal
Skills: Full-stack developer skilled in Java/C, Web technologies, Electronics and Android, Linux sysadmin.
Status: Available for part-time contract work, please get in touch
Contact: https://tobykurien.com/contact
Looking for my Linked-In profile? I deleted it! This page is my up-to-date CV.
Summary
I am an electronics engineer who specialises in software engineering. I started programming in BASIC on an 8086 PC, then assembly language on PC and PIC microcontroller, wrote an IDE in Turbo Pascal, an IRC client in C++, real-time digital audio processing software for a 486SX33, Windows miniport drivers and embedded firmware for PCI satellite receivers and set-top box satellite decoders, a real-time web-based steel plant monitoring system utilizing Java applets (back in 1998), a content management system in Cold Fusion, an even more advanced one in Java, social-networking applications in Ruby On Rails, mobile websites in Python using Django, native Android and BlackBerry 10 apps, machine learning solutions in Python, geospatial web applications, e-commerce app with Scala backend, and running SaaS solutions in VMs and bare metal servers.
I co-founded a successful software development company, created multiple startups, and spent 5 years freelancing as an Android developer as a way to help build solutions for other startups as well as NGO's. I have run training workshops at universities across South Africa, presented several times at high-profile conferences as well as user groups, participated in and mentored at hackathons, mentored startups, co-founded a maker space, and have created and contributed to several open source projects.
My goal is to use first-world technology to help solve third-world problems.
Skills and technologies
- I am a senior software engineer and also a hardware engineer mostly working with digital circuits.
- I have a wide range of knowledge of most technology stacks (all the way up from the hardware level). I've been building electronic circuits and coding since the early 90's.
- My favourite things to build: Web apps, IoT devices, and gadgets using Arduino, ESP32, and Raspberry Pi.
- My go-to tech stacks: C/C++ for IoT, Java or Python for backend, plain JavaScript with web components for web app development, Bash scripting for automation and devops.
- My coding style is to favour simplicity and readability (code reads like English), and avoid boilerplate code and dependencies as much as possible. As an example, I wrote Xtendroid which is a domain-specific language for Android, and I gave a talk on writing web apps without using a framework.
- I am a tech enthusiast and build my own gadgets, self-host my own servers, write my own apps, etc. I am privacy-conscious and avoid Big Tech as much as possible.
- Some projects I've worked on can be seen on my GitHub profile, but since 2018 I've moved most of my personal code and projects into self-hosted Fossil repositories.
Education
Coursera
Machine Learning, 2015
Completed the "Machine Learning" online course with a 96,5% final grade.
Henley Management College
Supervisory Management, 1999
University of KwaZulu-Natal
BSc Eng Electronic, 1993 - 1996
East London High School
Matric with distinction: Physics, Maths, Geography, Biology, 1986 - 1992
Honors and Awards
- Awarded IBM Top Performers 2020
- Winner of IBM Bluemix Build competition, 2016
- Winner of Mobile Web Africa app contest, December 2012
- Winner of Momo "Changing the world through innovation" competition, 2012
- My team was 2nd runner-up (June) and winner (December) in Random Hacks of Kindness, Pretoria 2012
- Completed "Tomorrow's leader" programme at Columbus Stainless, 1999
- Best Applications Development at Columbus Stainless, 1998
- Certificate of Merit from Univerisy Of Natal for "Data communications and telematics"
- Dux award from East London High School (1992). I was the top matric student at the school, only 16 years old.
- Commendation award from East London High School for "A" aggregate (1992)
- Awards from East London High School for outstanding student in: Science, Maths, Biology, and Geography (1992)
- Award for outstanding achievement in National Science Olympiad, 1991
- Merit award for outstanding performance in "Science 8 contest", 1990
Experience
Independent contractor and Freelance software engineer
September 2023 - Present
- Built an e-commerce application:
- using HTML, plain CSS, and JavaScript web components
- UI built with Ionic web components
- Play Scala backend
- Payment gateway integration
- Implemented Single Sign On (SSO) for legacy web applications
- FreeBSD development:
- Porting FreeBSD to run on arm64 mobile device (PinePhone Pro)
- Kernel driver and device tree development
Founder at Nextcloud Hosting
September 2023 - Present
- Secure hosting of Nextcloud and related services on shared infrastructure
- Tech stack: Linux, OpenZFS, bubblewrap, Docker, Nix package manager, haproxy, PHP, MySQL
- Managing of virtual machines and bare metal servers:
- Domain management and routing
- Reverse proxies and load balancing
- Isolated workloads on shared infrastructure with containers and sandboxes
- Backups and disaster recovery
- RAID, LVM, and ZFS-based storage management
- Rate limiting and firewall (bare iptables) setup for security
- SSH hardening and country-blocking
- Traffic shaping
- Automated SSL certificate management
- PHP-FPM configuration and optimization
- Automation mostly via Bash scripting and Linux CLI tools
Research Engineer at IBM Research Lab
May 2016 - August 2023
- Software and hardware development on various research projects, such as:
- TB-tracking bracelet, using wireless wearables for contact tracing (C++, low-power IoT device using MSP430 microcontroller, Android app)
- Empower Solar app that designs solar solutions for household and small businesses, written using Polymer 2 and Python Flask backend
- Structured Reporting open source tool for distributed capturing of data (e.g. pathology reports) in an occasionally-connected environment, built with React, JSON Schema, PouchDb and CouchDb.
- Designing Digital Peer Assessment for Second Language Learning in Low Resource Learning Settings, including a Peer learning web application written in Java and PostgreSQL, and an offline-capable, installable, progressive web application using service worker and Polymer 2.
- Browser functions serverless platform which uses browsers on the server side to execute JavaScript functions, written in ExpressJS.
- Covid-19 dashboard web interface used by Gauteng Premier's Office during the pandemic, written with WebComponents, Leaflet, D3/DC js, Cloudant DB, S3-compatible Object Storage
- Geo-spatial web applications built with Mapbox, using GeoServer as a backend. Advanced capabilities included the ability to merge geospatial data layers into map visualizations, using javascript functions in the browser, in real-time.
- Papers co-authored:
- Public talks:
- Building web apps with Polymer talk at the Developer User Group in both Johannesburg and Pretoria (2018).
- Building web apps in plain JavaScript talk at Jozi.js (2020)
- Several patents filed
- Setting up and running the maker lab (electronics prototyping, 3d-printing)
- Mentoring students
- Assisting startups and beneficiaries with prototyping and licensing of research assets
- Mentor for MIT GSL Hackathon (2016 and 2017), Fishackathon 2018
Jedi Council (founding member) at House4Hack
August 2011 - March 2020
- Open hardware and open software tinkering/making
- Electronics prototyping: Arduino, Raspberry Pi
- Research and development of open hardware and open software based solutions for commercialization or philanthropy.
- Presented the PiScope project at ScopeX 2015, Pretoria Astronomy society, and the Joburg Astronomy society (2015).
Some projects worked on
- RPi LCARS - Star Trek style interface for Raspberry Pi using Python and Pygame
- openSHAC - Smart house access control with Android (Java) and Blackberry (Qt5 + QML) apps, as well as a smart watch app
- NRF Glider - flight electronics and firmware for our own DIY slope soaring glider
- Aquaponics - a self-sustaining mini-ecosystem of fish and plants. I build a small desktop system as well as a 500 litre IBC-based system with Koi fish that has been running for many years
- PiScope - a 3d-printed, arduino-controlled, Raspberry Pi-powered optical tracking telescope
- House4Hack smart watch - our very own bluetooth smart watch!
- BluMote app and bluetooth remote control for smartphones. Panic button and other programmable features. This project won both app competitions it was entered into.
- MakerDroid app for Samsung Galaxy Note allows user to draw out shapes and have them converted to 3D, for printing on a 3D printer. My pitch video featured on Engadget!
- DroidOrb android docking station
Freelance Android development and training
May 2010 - May 2016 (6 years)
- Created several open source projects, such as the Xtendroid library for Android development, and the Sparkler web framework for backend development
- Android apps: the initial apps for Fancy, app for a large local ticketing company, Robert's Multimedia Birds of SA app, apps used by Sangonet (an NGO) in Kenya and Zambia for data collection, Zulu educational flash-card app, and many startup and SME apps
- DSL-driven Android development talk at the Johannesburg Android User Group.
- Successfully completed the Coursera machine learning online course.
- Judging for the SAB KickStart Ignite programme (2015)
- Mentor for the Geekulcha Hackathon in Midrand (2015)
- Mentor for the MIT Global Startup programme at Wits (2013, 2014, 2016)
- Ran the Android Vodacom Developer Programme workshops at Central University of Technology (Bloemfontein), Durban University of Technology (Durban), Stellenbosch University (Cape Town), North-West University (Potchefstroom), and Nelson Mandela Metropolitan University (Port Elizabeth) between 2012 and 2013. Also presented at the roadshows in Durban, Bloemfontein, Port Elizabeth and Polokwane in 2011.
- Several appearances at MOMO Joburg: presentation on Android, a live Android app development demo, a panellist and judge for an app competition, and winner of the innovation competition in May 2012
- Winner of the Mobile Web Africa 2012 app challenge (November 2012)
- Participant in many hackathons, e.g. Random Hacks Of Kindness, Global Game Jam
- Several Android presentations at Tech4Africa (November 2012, October 2014)
- Android advocacy and Java course Advisory Board Member (2013, 2014) for CTI training institution
- Panellist at VAS Africa and Endeavor SA events
- Presentations at JoziJUG: The Android Difference (April 2012), Xtend (August 2012), Sparkler (December 2013)
- Android workshops at House4Hack, UNISA, Wits, and others
Part-time Volunteer at African School for Excellence
June 2012 - January 2016
- Volunteer at the outstanding African School For Excellence
- Set up the technology for running the classrooms, which uses: Moodle, Khan Academy, Google Chromebooks
- Set up the wifi and local networks
- Set up offsite backups and remote access for sponsors
- Created peer marking software for grading english essays
- Created quiz-taking software
Developer and mentor at Pledger
June 2014 - May 2016
- Built the prototype Android app and backend for Pledger
- Integrated with 3rd party data providers
- Built a data capturing tool using HTML5 and Web components
- Mentoring and helping to define and build the MVP for launch
Programmer and Founder at JTS Technology Concepts
March 2010 - March 2011 (1 year 1 month)
- Created the Cred startup, a micro-payment gateway with Wordpress integration and a REST API for third-party integration, allowing authors to monetize their content.
- Created the eFlatz social networking site for gated communities, allowing inter-unit and body corporate communications, amenities bookings, social clubs, classifieds, as well as contacting 3rd party suppliers/contractors.
Contractor at MarkeTech
September 2009 - February 2010 (6 months)
- Implemented frameworks that integrate Java technologies (such as Spring, iBatis, Struts, BIRT) for commercial retail software to enable rapid application development by junior developers. The framework is integrated into an existing international retail software package to allow changes and customisations to be made in orders of magnitude faster than was previously possible.
Senior Software Engineer, Co-founder at Cambrient
September 2001 - September 2009 (8 years 1 month)
- Designed and built a Java based content management system for large internet sites, such as Moneyweb, South African Tourism, etc.
- Built several frameworks for front-end development, one being a javascript library that was used to build dynamic websites such as Automark
Contractor at Online liquidity
2004 - 2004 (less than a year)
- Implemented a framework to allow multiple sites to run off a single CMS with the ability to create a new site in seconds.
Contractor at Investec
January 2001 - August 2001 (8 months)
- Implemented a content management system using Allaire/Macromedia Spectra that ran on ColdFusion. This CMS was implemented in Private Bank, Asset Management, and Securities for internal use.
Senior Software Developer at VWV Interactive
2000 - 2001 (1 year)
- Built client websites (both front-end and back-end) using ColdFusion and Java.
Software Engineer at Altech UEC Technologies (Pty) Ltd
1999 - 2000 (1 year)
- Wrote software for a new PCI-based satellite internet card developed by UEC. Wrote the firmware to strip IP packets from the MPEG stream, wrote the Windows miniport driver to pipe the IP data from the PCI card into the Windows PC by DMA'ing the data to the PC's RAM, and then re-constructing the IP packets and sending it up the network stack.
- Wrote a Visual Basic app to monitor and control the signal and tuning of the PCI card from the user's system tray.
- Wrote subtitling software for DSTV decoders, as well as smart card drivers.
- Designed the hardware for an improved, low-cost version of the PCI card.
Systems Engineer at Columbus Stainless
1997 - 1998 (1 year)
- Built the Columbus Stainless Intranet from scratch.
- Built a real-time plant monitoring web application. I wrote a server in Visual C++ to gather data from the steel plant and render it into HTML. I wrote a java applet that connected to the server from the client PC's, and refreshed the browser as soon as data was available. This was web-based real-time push with a graphical visualisation of the steel plant caster, done in 1998.
Recommendations
"Working with Toby is an absolute pleasure. Not only is he one of the most detail oriented people I've worked with but he's efficient and always finishes his projects before time. Whether it's Web or Android development Toby is on-top of the latest trends and with his wealth of experience he can set you straight on what is possible out of the platforms he builds on. I could not recommend Toby more."
-- Saul Kropman, Founder, Cred Paywalls, worked directly with Toby at JTS Technology Concepts
"Toby is a highly skilled technology expert / architect. He works very fast and efficiently. Toby has his finger on the IT industry's pulse, and has a particular interest in mobile (Android / iOS) development. I found it very motivating working alongside Toby. He has a great personality, and with his engineering background, is always busy with an amazing technology project. I recommend Toby, and I hope we can work together again in the future."
-- Martin Coetzee, Technical Director, MarkeTech Technology Solutions, worked directly with Toby at Marketech
"I had the pleasure of first meeting Toby when we both completed the B.Sc degree in Electronic Engineering at the University of Natal. He immediately struck me as a highly motivated person with a flair for software engineering. Our paths crossed again when Toby joined Altech UEC's DVB-Satellite PC card project, where he added tremendous value in the embedded firmware, and network interfacing of the satellite modem. More recently, I had the privilege of receiving a crash course/demonstration from Toby on the Android system and its potential for use in other consumer electronic devices. Toby's passion for technology and its application comes through in leaps and bounds, and makes him a real asset in this environment."
-- Rajesh Madhanlala, Systems Engineer, Altech UEC Technologies (Pty) Ltd, worked with Toby at UEC
Toby, as the maintainer of the Android IMSI-Catcher Detector Project on GitHub, I cannot thank you enough for your awesome contributions to our open source App! We, the whole AIMSICD team and I, have been crawling the web for weeks, introduced our project in multiple forums - but finding a privacy-minded Android Developer like you, who is also willing to contribute for free to an open source project on GitHub is extremely hard these days. No joke, nearly impossible!
Then, I found your wonderful website, read about the stunning work that you've accomplished so far and instantly noticed that I like the way you talk about your goals in life. Because, is it not what everyone should be dreaming of? Getting in touch with you was just a pleasure! You not only refreshed our team by joining us, but also commited high-quality code and many very important bug fixes on GitHub. If anyone would ask me which developer to recommend for their next funky Android project, I now have an answer which I am proud of: Toby Kurien! THANK YOU.
-- SecUpwn, maintainer of the Android IMSI-Catcher Detector project, worked with Toby on GitHub
Publications
- My apps in Google Play Store
- My apps in Blackberry World
- My open source projects on GitHub
- Toby's Corner on AndroidZA fan site 2011
- Techleader blog 2008
- ITWeb column 2007