
Dan MacDonald
Verified Expert in Engineering
RDMS SQL Developer
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
Experience
Availability
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
Systems Analyst
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.
- Worked on Java/Oracle ADF issues, PL/SQL, and Oracle Reports components.
- Assisted other team members and performed code reviews.
Database Administrator
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.
Freelance Senior Developer
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.
Senior Systems Analyst
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.
IoT Programmer
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.
Software Developer
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.
Oracle Specialist
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.
Website and Application Support Specialist
Peninsula Yoga Society
- Provided support and enhancements to a nonprofit website.
- Developed reports and provided data analysis using SQL directly against their MySQL database.
Oracle Specialist
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.
Lead Designer and Developer
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.
Application Development and Support
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.
Data Modeler (Contract)
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.
Corporate DBA and Oracle Support (Contract)
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.
Experience
DAISJamaica
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 hand held 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.caAlberta Blue Cross
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 the 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 complete 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
Introductory Programming Course with Arduino
Arduino/Jetson Tx2 Project
Skills
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
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)
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, 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
Frameworks
Spring Boot, JUnit, Spring, Hibernate, Jakarta Server Pages (JSP), Oracle ADF
Libraries/APIs
REST APIs, jQuery, API Development
Education
Bachelor of Science Degree in Computer Science
University of Victoria - Victoria, BC, Canada