Technical Experience

I have developed and maintained applications written in Basic, Haskell, C, C++, Prolog, Java, C#, VBA, PHP/SQL, Python and Perl. I have designed user interfaces using tools such as Visual Studio, HTML and CSS, Lightwave 3D.

PHP/SQL

I have written web applications in PHP that were instrumental in providing customer support for the students that lived at the residential college of International House. During my final year University project, I was the primary programmer that wrote a multi-user tool that helped track build and release progress using the Feature Driven Development methodology of Software development.

C#

I have written various web applications, web services and windows applications with C# on the .Net framework when I was working at Nexus Business Systems (see https://www.nowlabs.net/nbs). I have attached documents that include short descriptions/screenshots to convey the features/look and feel of a few of the C# programs/frameworks that I have coded. All sensitive information has been blurred out.

Java

I have coded miscellaneous projects in Java. I have attached a document that includes a short description of a modeling/ animation project that I developed using Lightwave and Java 3D. I was responsible for the modeling and the Java 3D animation code for the players. https://www.nowlabs.net/files/resume/Modeling_Animation.pdf

Networking

I have worked with many aspects of TCP/IP including configuration of clustered/load balanced web applications/services. My website https://www.nowlabs.net/ has a distributed setup for a more fault tolerant operation, allowing easier migrations if necessary. Domain zone file management is kept separate from domain website hosting. Email, collaboration tools and analytics are handled by separate service providers. This separation of essential services for the domain allows for a more reliable setup

LaTeX

I have written plenty of documentation in Latex using many packages such as:

  • tikz, fontenc, bold-extra, url, hyperref, lastpage, longtable, graphicx
  • wrapfig, xcolor, mathtools, fancyhdr, float

I strongly believe in thorough and highly detailed documentation of the projects that I work on including the process of working through these projects. This aspect of keeping a log and journal allows me to step back from the work and gain insight and a bigger picture into how different pieces fit together.

Visual Basic for Applications

I have worked extensively in VBA and written complex programs that generate insights from multiple sources of data. The projects below are those in which VBA was used.

DD-WRT, Tomato Router Firmware Management

I have worked with configuring The Tomato and DD-WRT firmware for Routers including:

  • Setting up an OpenVPN connection to create an encrypted tunnel
  • Creating multiple bridges for VLANs to use to create isolated networks
  • Using virtual wireless interfaces and tagged ports for Guest Networks and Networks for untrusted devices
  • Disable access to the router configuration interface from untrusted VLAN segments
  • Create a split network where certain interfaces go out into the public internet whereas some interfaces are forced to go only through the encrypted OpenVPN tunnel along with using the iptables firewall to disable internet access if the OpenVPN tunnel goes down.
  • QoS rules with the FQ_CODEL queueing discipline to reduce bufferbloat

WordPress CMS

I use the excellent WordPress system and a set of very useful plugins to manage the content on this website (https://www.nowlabs.net). I use Lets Encrypt to generate SSL certificates for this domain. I follow a regiment of backing up the database and wordpress files on a regular basis and have set up 2 factor authentication with the excellent Google Authenticator plugin for an extra layer of security.

Python, Pandas, NumPy

While Excel/VBA can work with small to medium data sets, I find that dealing with large datasets can be painfully slow.

I moved to using the Anaconda Distribution (http://www.anaconda.org) to do Python data analytics using the Pandas and NumPy libraries. See below for examples of scripts that I have written in the Jupyter Notebook environment.

In 2018/2019, Tangerine migrated their payroll systems and I was tasked with building a program to audit payroll entries to the data in the Workforce Management System. This system was built using a combination of Python/Pandas/NumPy/Reportlab/T-SQL to build a data pipeline from our Workforce Management System to our SQL database to PDF based reports for Managers to audit Associates in their Team. A screenshot (redacted) of the payroll audit report is available at https://www.nowlabs.net/files/resume/pa_design_redacted.pdf

Database Programming: SQL Server (T-SQL)

  • Complex T-SQL code using cursors, joins, merges, using variable types to hold state for converting structured and semi-structured data to actionable metrics.
  • Wrote multiple stored procedures and inserted these procedures into the data execution pipeline to automate the task of daily reports generation.
  • Re-wrote long running data processing tasks that were written at the Excel/Access/VBA and Python/Pandas layer to the SQL server level