Dan MacDonald, Developer in Victoria, BC, Canada
Dan is available for hire
Hire Dan

Dan MacDonald

Verified Expert  in Engineering

RDMS SQL Developer

Location
Victoria, BC, Canada
Toptal Member Since
June 18, 2020

Dan is a highly skilled and self-motivated consultant who loves to learn new technologies, programming languages, and approaches. He enjoys challenges and solving problems and works well alone or as part of a team. Dan communicates well and writes clear documentation. His focus is getting the job done carefully, efficiently, and cost-effectively. He has extensive experience with SQL, database design, data modeling, and IoT projects.

Portfolio

Dept. of Fisheries and Oceans, Canada
SQL, Oracle, .NET, Scripting, PL/SQL, Azure, Data Modeling, Documentation
Alberta Blue Cross
Java, PL/SQL, Oracle, Oracle ADF, Oracle Reports
Scouts Ireland
PostgreSQL, Scripting, Data Validation, Entity Relationships

Experience

Availability

Full-time

Preferred Environment

MySQL, Oracle, Linux, Unix, PostgreSQL, Databases

The most amazing...

...project or defect is the last one I've done. I've done all sorts of fun stuff over the years, but it always comes down to the last thing I've built.

Work Experience

Senior Systems Analyst

2024 - PRESENT
Dept. of Fisheries and Oceans, Canada
  • Worked on defects, developed solutions, and tested and verified them.
  • Assisted the client and other developers in system testing and validations.
  • Suggested new enhancements based on industry best practices, application testing experience, etc.
  • Created system documentation and created ERD diagrams.
Technologies: SQL, Oracle, .NET, Scripting, PL/SQL, Azure, Data Modeling, Documentation

Systems Analyst

2020 - 2023
Alberta Blue Cross
  • Investigated and diagnosed incidents related to production systems and databases for sales, medical underwriting, and benefit plan components.
  • Investigated, resolved, and tested defects; oversaw the promotion of those defects through testing environments to production.
  • Handled Java/Oracle ADF issues, PL/SQL, and Oracle Reports components.
  • Assisted other team members and performed code reviews.
Technologies: Java, PL/SQL, Oracle, Oracle ADF, Oracle Reports

Database Administrator

2021 - 2022
Scouts Ireland
  • Helped flesh out requirements for a registration and activity system.
  • Designed and modeled the database. Generated build scripts and created the database components.
  • Massaged input data and loaded it into the database.
  • Created views to simplify data retrieval for dashboard components.
Technologies: PostgreSQL, Scripting, Data Validation, Entity Relationships

Freelance Senior Developer

2020 - 2020
Aoxoa Computing Services
  • Developed a smart IoT application to control LED light strings.
  • Developed an Adafruit Huzzah-based hardware component to control and power a 5-meter LED light string, with photoresistor light-sensing capabilities and passive IR motion detection. I also developed hardware for power management.
  • Designed and developed an iPhone application with Swift to remotely control the light system. All messaging and commands are routed through an MQTT server, currently on an Onion Omega2.
Technologies: Architecture, Hardware, Internet of Things (IoT), Scripting, Shell Scripting, Enterprise Architecture, MacOS, Sensors & Actuators, IoT Protocols, Code Generators, Documentation, Eclipse IDE, Object-oriented Programming (OOP), ESP8266, Data, Xcode, SQLite, Git, Unix, MQTT, iOS, C, Swift, Swift 5, Arduino, C++

Senior Systems Analyst

2019 - 2020
T4BI, Inc.
  • Provided support and fixed bug for a large health insurance system that was recently developed. This is a very large and complex system with business rules and logic in the database.
  • Supported teams which are currently part of the overall business process (including sales, finance, and enrollment). I am part of the sales support team. All code goes through rigorous code reviews and follows a careful deployment and promotion plan.
  • Worked on the system that uses a series of Java front-end subsystems corresponding to business areas. All database logic is coded in PL/SQL packages within an Oracle database.
Technologies: ETL, Data Engineering, Unit Testing, Jakarta Server Pages (JSP), Scripting, Code Generators, Documentation, Oracle 12c, Object-oriented Programming (OOP), Oracle Database, Data Modeling, Data Analysis, Query Optimization, Data, Use Cases, Oracle ADF, JavaScript, NetBeans, jQuery, XML, Database Design, SQL, Unix, Oracle PL/SQL, Oracle SQL, Databases, Java EE, Java, PL/SQL, Oracle

IoT Programmer

2019 - 2019
Toptal Clients
  • Developed programs for an Arduino Mega and an Nvidia Jetson Tx2 to communicate back and forth. The Arduino program read buttons and limit switches as well as controlled LEDs and stepper motors. The Jetson Tx2 captured and analyzed camera images and sent information to the Arduino. The Arduino sent "process state" information back to the Jetson Tx2, which then displayed images on an attached HDMI screen.
  • Collaborated with the client to flesh out requirements, determine optimal processing paths, and debug issues on the actual hardware installation.
Technologies: Scripting, Shell Scripting, Enterprise Architecture, Sensors & Actuators, Microcontroller Programming, IoT Protocols, Embedded Systems, Code Generators, Documentation, Eclipse IDE, Object-oriented Programming (OOP), Data, Agile, Python, C++, Git, Embedded Hardware, C, Unix, Hardware, Internet of Things (IoT), NVIDIA Grid SDK, Jetson TX2, Arduino

Software Developer

2017 - 2019
T4BI, Inc.
  • Worked on a team developing RESTful web services in Java to support a client's new redevelopment effort, with a very large Oracle 12c database back end.
  • Enhanced and maintained two legacy applications (one with JSP code, and the other using Oracle Forms and Reports). There was some design work and requirements gathering involved, as well as some data modeling and PL/SQL work. All of these projects used an agile scrum-based approach.
  • Developed Java web services with Java 8 and Spring, using Lombok automation to provide getters and setters and deployed on Kubernetes.
  • Maintained web service documentation in Apiary and Confluence. Task scheduling was done in Jira.
Technologies: ETL, API Development, Data Engineering, Unit Testing, JUnit, Scripting, Shell Scripting, Microservices Architecture, Enterprise Architecture, Oracle Application Server, Data Integration, RESTful Microservices, Code Generators, Documentation, Data Quality Analysis, Oracle 12c, Eclipse IDE, Object-oriented Programming (OOP), Oracle Database, Data Cleaning, Data Modeling, Data Analysis, Query Optimization, Data, Use Cases, Agile, JavaScript, Spring, Microservices, Jira, REST APIs, Spring Boot, jQuery, XML, Git, Java EE, Database Design, SQL, Unix, Oracle PL/SQL, Oracle SQL, Databases, PL/SQL, Oracle Reports, Oracle Forms, Jakarta Server Pages (JSP), Java, RESTful Web Services

Oracle Specialist

2016 - 2016
ITI Technologies
  • Configured, troubleshot, and tested an Oracle Fusion Middleware setup.
  • Ported a custom-built reporting solution from 10g to 12.2 with Oracle Reports, mod_plsql, and Pro*C components.
  • Investigated and ensured consistency in database objects and grants across development, testing, and production environments.
  • Assisted in recompiling and troubleshooting Oracle Forms and Reports modules.
  • Investigated and developed documentation on configuration steps. Documented troubleshooting steps to assist support personnel.
Technologies: Scripting, Shell Scripting, Oracle Application Server, Documentation, Oracle Database, Data Migration, Oracle WebLogic Application Server, Oracle 11g, Unix, Oracle PL/SQL, Oracle SQL, Databases, Pro*C, Oracle, Linux, Oracle Fusion Middleware, Oracle Reports, Oracle Forms, PL/SQL, SQL

Website and Application Support Specialist

2015 - 2016
Peninsula Yoga Society
  • Provided support and enhancements to a nonprofit website.
  • Developed reports and provided data analysis using SQL directly against their MySQL database.
Technologies: Scripting, Shell Scripting, MySQL/MariaDB, HTML, Documentation, Database Administration (DBA), Data Analysis, JavaScript, HTML5, CSS, MySQL Workbench, Database Design, Unix, Databases, SQL, MySQL, Drupal

Oracle Specialist

2012 - 2015
T4BI, Inc.
  • Developed PL/SQL packages for member and dependent reinstatement processing in a large medical insurance system, based on use case requirements.
  • Developed Oracle Reports as per-use case requirements.
  • Coded PL/SQL packages for data validation/verification for a custom-built rules engine.
  • Developed PL/SQL packages to convert six million data records into new data structures (to ultimately run within a two-hour window) according to use case requirements.
  • Investigated and documented inconsistencies in data conversion input data to be corrected by another team.
  • Attended weekly status meetings via phone and/or online meeting software.
  • Participated and worked effectively and reliably as part of a large remote team, with great communication, and ensuring availability during core hours.
Technologies: ETL, Data Engineering, Unit Testing, Scripting, Shell Scripting, Enterprise Architecture, Data Integration, Code Generators, Documentation, Data Quality Analysis, Oracle 12c, Oracle Database, Data Cleaning, Data Migration, Data Modeling, Data Analysis, Query Optimization, Data, Jenkins, Hibernate, JavaScript, XML, Oracle 11g, Java, Database Design, Unix, Oracle PL/SQL, Oracle SQL, Databases, Java EE, Use Cases, Linux, PL/SQL, SQL

Lead Designer and Developer

2011 - 2015
EMGI Systems, Inc.
  • Developed a PC-based system with Filemaker Pro for Windows and Mac, for a situational awareness system for major/catastrophic events.
  • Designed and developed handheld "reporter" applications with a SQLite data store, in Java and Objective C, for iOS, Blackberry and Android devices to collect and send data to a PC-based analysis system.
Technologies: ETL, Data Engineering, Scripting, Shell Scripting, Spatial Databases, Enterprise Architecture, MacOS, Data Integration, Documentation, Data Quality Analysis, Object-oriented Programming (OOP), Database Administration (DBA), Data Cleaning, Data Modeling, Data Analysis, Data, Xcode, iOS, Git, MySQL Workbench, Database Design, Databases, Objective-C, Java, SQLite, FileMaker Pro, Entity Relationships

Application Development and Support

2007 - 2012
BC Ministry of the Environment (Provincial Government)
  • Developed enhancements and bug fixes for a number of corporate and/or business-area applications.
  • Led JAD sessions with end users to define requirements for system enhancements. Translated requirements into designs and develop enhancements and patches.
  • Investigated bugs, diagnosed issues, and developed solutions.
  • Ensured that all work and processes adhered to government and ministry standards and guidelines.
Technologies: ETL, Data Engineering, Distributed Systems, Data Warehouse Design, Data Warehousing, Architecture, Oracle Designer, Scripting, Spatial Databases, Enterprise Architecture, Oracle Application Server, Data Integration, HTML, RESTful Microservices, Oracle Spatial, Code Generators, Documentation, Data Quality Analysis, Object-oriented Programming (OOP), Pro*C, Database Administration (DBA), Database Modeling, Oracle Database, Data Cleaning, Data Migration, Data Modeling, Data Analysis, Query Optimization, Data, Apex, Oracle Fusion Middleware, Use Cases, Oracle ADF, PostgreSQL, Python, UML, JavaScript, Spring, REST APIs, NetBeans, XML, HTML5, CSS, Oracle WebLogic Application Server, Oracle 11g, MySQL Workbench, Java EE, Linux, Database Design, C, Oracle PL/SQL, Oracle SQL, Databases, Oracle Application Express (APEX), Shell Scripting, Unix, Oracle Reports, Oracle Forms, Java, PL/SQL, SQL, Entity Relationships

Data Modeler (Contract)

2006 - 2009
Integrated Land Management Bureau (ILMB; Provincial Government)
  • Developed data models for business areas.
  • Created/generated scripts for object creation and data loading.
  • Worked with business areas to model their data sets for including into the corporate spatial warehouse.
Technologies: ETL, Data Engineering, Data Warehousing, Data Warehouse Design, Scripting, Shell Scripting, Spatial Databases, Enterprise Architecture, Code Generators, Documentation, Data Quality Analysis, Database Modeling, Oracle Database, Data Modeling, Data Analysis, Data, UML, Oracle 11g, Database Design, Unix, Oracle PL/SQL, Oracle SQL, Databases, Oracle Spatial, Oracle SQL Data Modeler, Esri, SQL, Oracle Designer, Oracle, Entity Relationships

Corporate DBA and Oracle Support (Contract)

1996 - 2006
BC Ministry of the Environment (Provincial Government)
  • Provided corporate database administration support across the Ministry for all their database instances, including troubleshooting, upgrades, and planning.
  • Supported application deliveries by vendors to the Ministry infrastructure. Developed guidelines and standards for application delivery.
  • Assisted and guided vendors and business areas in SQL queries, tuning, etc.
  • Participated in JADs and vendor client meetings to ensure that all solutions are reasonable and follow all standards and guidelines.
  • Troubleshot database and application issues.
  • Provided ad-hoc queries for business areas.
Technologies: ETL, Data Engineering, Distributed Systems, Data Warehouse Design, Data Warehousing, Architecture, Oracle Designer, Shell Scripting, MySQL/MariaDB, Oracle Application Server, Data Integration, Code Generators, Documentation, Data Quality Analysis, Pro*C, Database Administration (DBA), Database Modeling, Oracle Database, Data Cleaning, Data Migration, Data Modeling, Data Analysis, Query Optimization, Data, Oracle Reports, Oracle Forms, Oracle Spatial, PL/SQL, SQL, Apex, Oracle, Scripting, Esri, Unix, Java, Entity Relationships

DAISJamaica

We developed a prototype system on a very limited budget for early situational awareness during a major regional disaster. The prototype was successfully deployed in Jamaica in 2013, but further development has stalled due to a lack of funding.

Early situational awareness immediately following a catastrophic event such as a hurricane or an earthquake has been demonstrated to reduce casualties enormously through the correct deployment of (limited) resources in the hours immediately following an event. Our system replied on a low-technology limited infrastructure analysis tool that could be started immediately (without the need to mobilize a coordinated response center) and is fed point data reports from "community reporters" using handheld devices. This system allowed planners to develop an understanding of the scope and scale of damage within 15-30 minutes after an event.

Peninsula Yoga Society Website

http://www.penyoga.ca
The Peninsula Yoga Society is a nonprofit organization dedicated to teaching Iyengar Yoga in the Saanich Peninsula area. I was brought on board to assist with their website and mine their registration and member data from a MySQL database to assist them in their daily operations and planning.

Alberta Blue Cross

I was part of a large team, mostly working remotely, to redevelop a large medical insurance database and move them from a series of disparate data sources (including COBOL and Excel spreadsheets) into a single integrated system based around Oracle 12c. I worked on a number of different components, including PL/SQL packages for member and dependent reinstatement, various reports, and PL/SQL packages for data validation and verification in a rules engine.

I also worked extensively as part of the data conversion team and was tasked to write, test, and optimize PL/SQL packages that would convert source data into new structures. I was responsible for about 6,000,000 records. I was only one of about eight enrollment streams. Once the conversion process was tested for data correctness, we had to optimize the code so that when we did our data loading during the "Go Live" event, my part of the conversion had to be completed within two hours (I got it to one and a half).

It was immensely satisfying to have participated in the Go Live event that went off without any major hitches.

Customer-facing System

I was part of an agile team of developers and QA people involved in the redevelopment of a series of Jakarta EE Spring web services to support a large automobile warranty supplier. We took a microservices approach and developed about 20 services, each with 5-10 endpoints. The data was all stored in an Oracle 12c database. We had daily scrums and two-week sprints coordinated through Jira. All documentation was maintained in Confluence and Apiary.

Introductory Programming Course with Arduino

I developed an 8-lesson course for 11-13-year-old scouts to introduce them to programming Arduino-based microprocessors. I wrote entire lessons, put together the kits, and led the youth through the lessons. We used Adafruit Feather Huzzah (ESP8266) microprocessors and programmed them in C. I wanted to introduce the kids to lower-level programming than they commonly got in their traditional school courses. The material was pretty simple, but we covered LEDs, buttons, reading and writing data to the cloud (MTQQ), temperature sensors, and analog input (photoresistor).

Arduino and Jetson Tx2 Project

The details of this project are covered by an NDA, but in general, the system was developed to allow two-way communications between an Nvidia Jetson TX2 and an Arduino Mega Uno, to read multiple buttons and switches, and to control LEDs and stepper motors in pre-defined patterns. The Jetson Tx2 captured and processed images through a camera, and that information was sent to the Arduino to incorporate into its sequencing.

Languages

Fortran, Java, Pro*C, SQL, C, HTML5, HTML, CSS, Python, Swift, XML, Apex, Swift 5, C++, JavaScript, Objective-C, UML

Tools

Oracle SQL Data Modeler, MySQL Workbench, Eclipse IDE, Oracle Reports, Oracle Forms, Git, Jira, MQTT, Oracle Designer, Oracle Application Express (APEX), Xcode, Jenkins, Esri, FileMaker Pro, Jetson TX2, NVIDIA Grid SDK, Tableau, GIS

Paradigms

Object-oriented Programming (OOP), ETL, Database Design, Microservices, Microservices Architecture, Unit Testing, Spatial Databases, Agile

Platforms

Java EE, Oracle, Oracle Database, Linux, Unix, Arduino, Raspberry Pi, NetBeans, iOS, Oracle Application Server, MacOS, Drupal, Amazon Web Services (AWS), Azure, Kubernetes, NVIDIA CUDA

Storage

PL/SQL, Databases, Database Modeling, Database Administration (DBA), MySQL, Oracle SQL, Oracle PL/SQL, Oracle 12c, Oracle 11g, MySQL/MariaDB, Data Integration, SQLite, Database Migration, Oracle DBA, PostgreSQL, Data Validation

Other

ESP8266, Shell Scripting, Data Warehousing, Data Engineering, Data Warehouse Design, Query Optimization, Data Migration, Data Cleaning, Data Analysis, Data Modeling, Data, Entity Relationships, English, RESTful Microservices, Embedded Hardware, Embedded Systems, Internet of Things (IoT), Hardware, Architecture, Distributed Systems, Oracle Spatial, Data Quality Analysis, Documentation, Oracle WebLogic Application Server, Code Generators, Enterprise Architecture, IoT Protocols, Sensors & Actuators, Microcontroller Programming, Use Cases, Scripting, Oracle Fusion Middleware, RESTful Web Services, ESP32, Web Services, Numerical Analysis, Graphics, Mathematics

Frameworks

Spring Boot, JUnit, Spring, Hibernate, Jakarta Server Pages (JSP), Oracle ADF, .NET

Libraries/APIs

REST APIs, jQuery, API Development

1980 - 1983

Bachelor of Science Degree in Computer Science

University of Victoria - Victoria, BC, Canada

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring