Dan MacDonald, Java Developer in Victoria, BC, Canada
Dan MacDonald

Java Developer in Victoria, BC, Canada

Member since June 18, 2020
Dan is a highly skilled and self-motivated consultant. He 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. He can communicate 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.
Dan is now available for hire

Portfolio

  • Aoxoa Computing Services
    Architecture, Hardware, Internet of Things (IoT), Scripting, Shell Scripting...
  • T4BI, Inc.
    ETL, Data Engineering, Unit Testing, JSP, Scripting, Code Generators...
  • Toptal Clients
    Scripting, Shell Scripting, Enterprise Architecture, Sensors & Actuators...

Experience

Location

Victoria, BC, Canada

Availability

Part-time

Preferred Environment

MySQL, Oracle, Linux, Unix

The most amazing...

...project I've contributed to is a prototype system on a very limited budget for early situational awareness during a major regional disaster.

Employment

  • 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, 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, 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
  • 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
  • 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 Warehouse Design, Data Warehousing, 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
  • 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

Experience

  • 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 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.ca

    The Peninsula Yoga Society is a nonprofit organization dedicated to teaching Iyengar Yoga in the Saanich Peninsula area. I have been brought on board to assist with their website, and to 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 re-instatement, 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 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

    I was part of an agile team of developers and QA people involved in the redevelopment of a series of J2EE 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 eight-lesson course for 11-13 year old Scouts to introduce them to programming Arduino-based microprocessors. I wrote the entire lessons, put together the kits, and led the youth through the lessons. We used Adafruit Feather Huzzah (ESP8266) microprocessors and programmed 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/Jetson Tx2 Project

    The details of this project are covered by a 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 send to the Arduino to incorporate into its sequencing.

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, PostgreSQL
  • Other

    ESP8266, Shell Scripting, Data Warehousing, Data Engineering, Data Warehouse Design, Query Optimization, Data Migration, Data Cleaning, Data Analysis, Data Modeling, Data, 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
  • Frameworks

    Spring Boot, JUnit, Spring, Hibernate, JSP, Oracle ADF
  • Libraries/APIs

    REST APIs, jQuery, API Development

Education

  • Bachelor of Science Degree in Computer Science
    1980 - 1983
    University of Victoria - Victoria, BC, Canada

To view more profiles

Join Toptal
Share it with others