Ian Foote
Overview
I am an information technology professional with more than 20 years of experience.
I have developed cutting edge technology for a variety of industries, including food services, insurance, aerospace,
telecommunications, correctional services, telemedicine, farming, entertainment, automotive, higher education, medical translation,
fishing, and promotions.
I have experience with project management, requirements gathering, software architecture, front end development, server side
development, database design, mobile application development, software testing and cloud development.
I have many years of experience as a lead developer, and I have many years of experience working with remote teams.
I am currently pursuing remote development opportunities.
Please scroll down to review my technical experience, my work experience, my volunteer history and my hobbies and interests.
I invite you to contact me at
contact@ianfoote.com
Technical Experience
2020 - Ubuntu Linux, nginx, PHP, PostgreSQL, HTML5, JavaScript, jQuery, CSS3, Bootstrap
2019 - Ruby, Rails, Node.js, React, GraphQL, Liquid, git version control
2017 - C#, .NET 4.5, ASP.NET, IIS, MS SQL Server 2016, Cassandra NoSQL database, RabbitMQ message queues, Node.js, Express web application framework, HTML5, JavaScript, TypeScript, Angular 4, jQuery, JSON, CSS3, LESS/SASS, TFS version control, git version control
2016 - MS SQL Server 2014, SQL Server Reporting Services, C#, .NET 4.5, IIS, ASP.NET, Entity Framework, HTML5, Bootstrap, CSS3, JavaScript, jQuery, AngularJS, REST, WCF Services, XML, DTD, Thunderhead, TFS version control, Git version control, SignalR
2014 - JavaScript, HTML5, CSS, WebRTC, WebSync, Android SDK 4.4, IceLink, .NET 4.5, ASP.NET, C#, IIS, Entity Framework, Mono, Ubuntu Linux, Windows Server 2012, Amazon Web Services, Java, Scala, The Play Framework, jQuery, Xamarin Forms, Bootstrap, Bootbox.js, Chrome browser extension framework, Firefox browser extension framework, ffmpeg, Linux shell scripting, Twilio telephony library, the Google App Engine, OAuth2.0, ExtJS JavaScript framework, TFS version control, Subversion version control, Git version control, Mercurial version control, FogBugz, Jira, Android Studio 2013, Eclipse with ADT
2011 - Java, JSP, XML, XSLT, XPath, XSL-FO, Web APIs, XHTML, JavaScript, CSS, Groovy on Grails, PHP5, Wordpress
2010 - Joomla 1.5, MySQL 5, XHTML, CSS, PHP5, JavaScript, WebAPIs, XML, jQuery, Superfish JavaScript library
2008 - Windows 2003 Server, CentOS, MS SQL Server 2000, MySQL 5, Oracle 10g, Subversion, Selenium browser testing framework, PHPUnit, phing, Trac, salesforce, Excel, PHP5, memcached, YUI JavaScript framework
2004 - Windows 2000 Server running ASP on IIS and T-SQL on SQL Server 2000, serving custom built web applications using HTML 4.01, JavaScript, CSS and B2B communications via XML/Web APIs
2004 - Ubuntu Linux running Apache, PHP, MySQL, serving custom built applications using HTML 4.01, JavaScript, CSS
2002 - Windows 2000 Server running .NET 1.0, ASP.NET, VB.Net on IIS and T-SQL on SQL Server 2000, serving custom built web applications using HTML 4.01, JavaScript, CSS and B2B communications via XML/Web APIs
2000 - Windows NT 4.0 Server and Windows 2000 Server running ASP on IIS and T-SQL on SQL Server 7, serving custom built internet applications using HTML 4.01, JavaScript, CSS, Visual SourceSafe version control
Work Experience
Bribe the Band Incorporated
Founder
Bribe the Band is my side hustle. It is designed to allow people all around the world to create a bid to entice their favorite entertainers to come and perform at their favorite venues. End users can create a list of entertainers. End users can create a list of venues.
End users can then create a bid, choosing a list of entertainer and a list of venues, indicating which start dates and times are acceptable, what the minimum show length must be, how much they are willing to pay for a ticket, and how many tickets they require. They then place their credit card information on file with Stripe, the world leader in secure online credit card transactions, and make a legally binding offer to purchase tickets that match the parameters established in the bid.
End users may cancel at any time up until the moment the bid is accepted and they are given a ticket. They will also be able to share their bid on social media, so their friends and followers can copy their bid, alter it if they wish, and place a bid of their own.
Musicans may then log in, see what money is being offered to them, and if they like the numbers they see, they may send a message to the venue owner, asking if they are interested in booking a show. If the venue owner agrees, all parties involved have given their consent to proceed, the credit cards are billed, and the tickets are issued.
I founded Bribe the Band Incorporated. I registered the company. I opened bank accounts, registered the domain name and set up mail servers. I set up service accounts with Spotify and Stripe. I set up servers in the cloud running on Ubuntu Linux. I designed a scalable architecture that runs on nginx, PHP/Hack and PostgreSQL. This architecture is designed to use master-slave replication together with sharding to achieve massive scalability.
It is currently incomplete.
Shopify
Senior Developer (Remote)
Worked as a senior software developer responsible for writing powerful and eloquent code that improved Shopify’s point of sale offering and helped them overcome internationalization issues relating to currency, shipping and taxation.
Technologies used include Ruby, Rails, Node.js, React, GraphQL, Liquid, HTML5, JavaScript, Typescript, JSON, CSS3.
SMITH
Senior Developer (Remote)
Worked as a remote developer maintaining and extended the functionality of the
software responsible for global order processing for a major restaurant chain.
This software used a modern, service-based architecture, with a custom services layer
that integrates information from legacy systems, enables new forms of ecommerce such as
mobile ordering and deliver without introducing cost-prohibitive changes to existing back end
infrastructure.
Used distributed computing techniques and technologies to achieve performance,
scalability and reliability, enabling dramatic gains in throughput and allowing upgrades without
interruption to current transations, mitigating cost of system downtime
Enabled 1 billion transactions per year at less than $0.005 per transaction and provided a
maximum throughput on par with Amazon’s busiest days, in excess of 350 transactions per
second
Technologies used include C#, .NET 4.5, ASP.NET, IIS, SQL Server 2016, Cassandra,
RabbitMQ, Node.js, HTML5, JavaScript, Typescript, AngularJS, jQuery, JSON, CSS3,
LESS/SASS.
Version control and project management using TFS, git
Morneau Shepell
Lead Developer
Developed peer to peer screen sharing functionality to allow members of the public to share their browser with a call center representative for technical support. This functionality requires no software to be installed, and requires no browser extensions.
Integrated functionality into Morneau Shepell"s portal software, allowing call center representatives and administrators to view connected end users, and initiate a screen sharing session with them. Users at both ends of the session may pause, resume and conclude the session. All screen sharing sessions are preserved for future reference.
Developed using C#, .NET 4.5, SignalR, Entity Framework, HTML5, CSS3, Javascript, AngularJS
Global Aerospace Inc
Senior Developer
Developed approximately 30 different reports of varying complexity using SQL Server Reporting Services, SQL Server 2014, T-SQL with views and stored procedures
Developed a reporting portal to display SSRS Reports using C#, .NET 4.5, Entity Framework, HTML5, Bootstrap, CSS3, Javascript and jQuery.
Developed a prospecting website for insurance agents using C#, .NET 4.5, Entity Framework, HTML5, Bootstrap, CSS3, Javascript, jQuery
Developed a public facing portal to allow agents, brokers and members of the public to purchase and review insurance policies. This portal was designed using AngularJS for the client, with an external facing server in the DMZ written in .NET and C# that communicates with the AngularJS client via REST, and communicates with servers in the internal network using WCF Services
Developed XML Schemas and Document Type Definitions to allow B2B communication with the Thunderhead document generation service, and created templates within Thunderhead to allow PDFs of insurance documents to be generated and returned to clients
Collaborated with software testers in the QA department, and with developers in the US and UK
Developed using Visual Studio 2015, SQL Server Enterprise Manager
All work was done using Agile development methodologies
Frozen Mountain Software Inc.
Senior Developer (Remote)
Developed a real time audio video communications system for the prison services industry. This system included a client that runs in a standard browser using Javascript, WebRTC and HTML5 for public use, a client that runs on Android devices for use by inmates developed using Android SDK 4.4 and Icelink, and a server component that acts as an intermediary between the public and the inmates, which in addition to relaying data, captures all frames, saves them to disk and routes them to prison supervisors. Included capabilities for supervisors to cut communications. The server component was developed using .NET 4.5, C#, Entity Framework, Icelink and Websync. Also designed software to stress the system by creating an arbitrary number of clients and streaming dummy data, and demonstrated that the software met the requirement to handle 200 simultaneous conferences. Tuned the software to run on Mono on Ubuntu Linux and created documentation to assist clients with server tuning. Conducted extensive testing using Amazon Web Services
Developed real time P2P audio video communications software for telemedicine. This system included a server component written with Java, Scala and the Play Framework that schedules appointments and integrates with existing record system, a client component that runs in a browser using Javascript, jQuery, WebRTC, HTML5, Icelink and Websync, and client that runs on Android and iOS devices using .NET 4.5, C#, Xamarin Forms, Icelink and Websync. Supports connecting multiple medical devices from each client.
Developed real time P2P audio video communications for a client that does 3rd party user testing. Included a client component that runs in the browser using Javascript, jQuery, WebRTC, HTML5, Icelink and Websync, Bootstrap, and Bootbox.js. Developed Chrome browser extension that allows screen sharing from the browser, developed Firefox browser extension that allows screen sharing from the browser. Developed a server component using .NET 4.5, C#, Entity Framework, Icelink and Websync that secures the services, handles scheduling appointments, and connects to the conferences as an invisible peer, saving audio and video to disk. Developed a server component that uses ffmpeg which joins the various audio and video files into a single video file.
Developed real time P2P communications software for a client that provides VOIP services. This included that included a client component that runs in the browser, supporting telephone calls using Twilio to integrate with POTS networks, real time P2P audio video using WebRTC, instant messaging and file sharing. Developed Gmail application that resides within Google servers and adds links to emails allowing users to initiate telephone calls and video conferences directly from Gmail using Javascript and OAuth2.0.
Extended existing software serving the dairy industry. This software downloaded up to date prices for various commodity including cattle feed and milk, and allowed farmers to receive text messages when targets they set are met. Updated stored procedures using T-SQL, developed technology to send text messages using Twilio, generated reports, extended user interface using ExtJS.
Conducted requirements gathering interviews with clients, participated in architecture design meetings, worked with remote developers, often worked remotely from my home office.
Managed source code using Subversion, Git and Mercurial. Managed projects using FogBugz and JIRA. Wrote code using Visual Studio 2013, Eclipse with ADT, Android Studio
Teamspace Canada Inc.
Lead Developer
Senior developer assigned to Viacom's entertainment division
Maintained legacy websites for MTV, VH1 and Country Music Television stations using Java, JSP, XML/XSLT on the server and HTML/Javascript/CSS
Senior developer on the project to replace the existing code base for MTV, VH1 and CMT websites with new technology built using Groovy on Grails
Videoconferenced daily with producers in Viacom offices in New York to plan future developments
Mentored and trained junior developers
Built websites for various Viacom events including the Do Something awards, the Critics Choice Movie Awards and other properties
Built command line tools to bulk update various smaller Viacom websites running on Wordpress
Bright Crow Media
Full Stack Developer
Created a powerful Joomla 1.5 component called "Automap"
Conducted requirements gathering and produced design specification
Designed and diagrammed the database schema using MySQL
Wrote component code using XHTML/CSS/PHP5/XML/Javascript
Delivered AJAX/Web 2.0 functionality using jQuery and Superfish libraries
Created a multi-dealer version to drive the core site, a hosted-client solution that integrates with the core sites database while using a separate database for the Joomla install, and created a single-dealership-stand-alone version for sale to third parties
Azorus Inc.
Internet Application Developer / Software Tester
Reverse engineered existing database schemas for development version (MS SQL Server 2000, MySQL 5, Oracle 10g)
Created database diagrams and documentation
Re-designed database schemas, normalized database, enforced referential integrity, reduced schema size by over 50%
Interviewed staff and created requirements documentation for the system
Created a new scope for the project
Established version control systems using Subversion and restructured development environment around it's use
Designed unit tests for the system using Selenium browser testing framework, PHPUnit unit testing software and phing
Tested the development daily, rebuilding the databases on each run
Integrated the test suite into the version control system so after each commit, the suite of tests would be run and errors sent to the development team and upper management
Established bug tracking with Trac, and administered the assignment of tasks for bug fixes and other development until the system was ready for launch
Designed and implemented custom analytic software for internal sales
Designed PHP5 scripts to import data into MySQL database using web logs, salesforce.com exports, Excel spreadsheets, flat files.
Optimized core product offering for high throughput, setting up memcached in the data abstraction layer and re-designing the system to work well on high performance clusters
Developed using CentOS and Windows Server 2003
Amplexor
Lead Developer (Remote)
Reverse engineered existing SQL Server 2000 schemas, creating diagrams and documentation
Re-designed database schemas, reducing schema size by over 30%
Normalized database and restored data integrity while migrating to new schema
Updated ASP code to interface with new schema
Front end designed in HTML 4.01, Javascript, CSS
Develop new SQL Server 2000 databases for new applications
Install MySQL and set up open source intranet applications
Monitor, test and tune database and application performance
Design and implement database replication
Develop and run DTS jobs and reports using T-SQL and VBScript
Plan, document and implement disaster recovery plans
Create safe strategies for deployments of custom system upgrades on live server
Migrate server to a virtualized environment
Apply database, application and OS patches to servers
Develop B2B integration systems using ASP, T-SQL and XML over http
Meet and collaborate with client companies and their technical reps
Collaborate with international developers remotely on development
Design and implement project management software for localization
Design and implement QA software for localization
Automate Trados translation applications via COM+
Develop live web reports deliverable in MS Word, MS Excel, MS Access, PDF
ISL Web Marketing & Development
Lead Developer
Conducted requirements gathering interviews with clients
Created use case diagrams and user stories for client approval and sign off
Designed code-generation engine to consume user stories and create code
Designed database architectures for numerous custom solutions, including Clearwater Foods website, Naturally Nova Scotia's website, etc
Implemented database design in SQL Server 2000 using T-SQL
Implemented web interfaces with .NET 1.0, ASP.NET, VB.NET on IIS, HTML 4.01, Javascript, CSS
Monitor and tune database and application performance
Troubleshoot database and application problems
Upgrade existing CMS system from NT 4 and SQL Server 7 to Windows 2000 and SQL Server 2000
Design and implement B2B integration with Purolator and UPS via XML
Management of source control with Visual SourceSafe
The Promotions Factory
Lead Developer
Conducted requirements gathering interviews with staff from each department
Created use case diagrams and designed the high level project management system
Set up web server with Windows 2000 and SQL Server 7
Migrate existing websites from Windows NT 4.0 to Windows 2000
Design database architecture based on requirements gathering interviews
Implement database design with T-SQL (writing stored procedures, triggers, views, etc)
Implement web based user interface for new system using ASP on IIS, HTML 4.01, Javascript, CSS
Designed, implemented and maintained database backups and disaster recovery strategy
Migrated data into the new system from flat files, Excel spreadsheets, Access databases
Restored servers and databases to operation after hardware failure using backups
Designed small custom web applications for client use (HP Asia, Telstra, Mazda Australia)
Designed Microsoft Access applications to interface with SQL Server database from finance department
Hobbies / Volunteer Work
While I do love technology, I try to maintain a work life balance.
I am a harmonica player. I enjoy playing blues and rock. I've played with a couple of bands over
the years, enjoy performing at open mic events, and I performed at my first street music festival in 2018 for an audience
of approximately 200 people.
I enjoy urban gardening. While I am not currently associated with any urban gardens, I helped build
Common Roots Urban Farm, and I was elected coordinator of the
Prescott Street Community Garden Society in 2014.
I also enjoy mixed martial arts. I trained in Karate in junior high school. I won four provincial gold medals as an amateur wrestler in high school. I trained
in Capoeira with
Dende do Recife in Halifax under Contra-Mestre Azeitona.
I trained in Muay Thai at
Fit Plus in Halifax, Nova Scotia.
And, finally, I trained in Muay Thai and No-Gi Brazilian Jiu-Jitsu at
Centre Evolution
in Gatineau, Quebec. I also have some training in Bataireacht.
I have always felt a connection to the outdoors. I grew up in rural Nova Scotia, Canada, surrounded by forests and lakes. I was
a member of the
Boy Scouts when I was young. I was a
Beaver
from ages 5-7, a
Cub from ages 8-10, a
Keeo from ages 8-10, and a
Scout
from ages 11-12.
I am a veteran of the Canadian Infantry, attached to the
Princess Louise Fusiliers Light Infantry Regiment
based out of Halifax, Nova Scotia. I took an honorable discharge from the military after almost dying in a car accident.
I have studied Salsa dancing with
Halifax Salseros, although I am a little rusty.
And, I love jumping into a mosh pit at a heavy metal or punk show.
I am also interested in 3D printing technology, and built my own 3D printer from scratch. I try to stay up to date on the latest
developments over at
reprap.org.
I also volunteered with the St. John Ambulance Brigade, administering first aid at music festivals, figure skating competitions,
motorcycle races and other similar events.
I also volunteered with We Bite Back providing technical support and moral support. We Bite Back was a pro-recovery community for
people with eating disorders created by my former common law wife. It is no longer in operation.
I am not a big poetry reader, but a childhood love of Iron Maiden led me to Samuel Taylor Coleridge's Rime of the Ancient Mariner,
and I love reciting
Kubla Khan aloud.
I have developed an interest in Japanese music recently, and have been teaching myself Japanese with the
expectation of taking a working vacation to Japan someday.
I am a huge fan of
Gacharic Spin and
Doll$Boxx, and I have developed a
bit of a crush on their bass player F チョッパー KOGA.
I also enjoy a good game of Settlers of Catan or Texas Hold-em when the opportunity arises.
I would like to take the opportunity to again invite you to contact me at
contact@ianfoote.com
Stay cool!