Rob Wray, Developer in Edmonton, AB, Canada
Rob is available for hire
Hire Rob

Rob Wray

Verified Expert  in Engineering

Java Developer

Location
Edmonton, AB, Canada
Toptal Member Since
March 26, 2021

Robert has over 30 years of experience programming, with 25 years developing object-oriented Java programs. As a professional mechanical engineer specializing in fluid dynamics, finite element analysis, and mathematics, he has developed simulations and used computer-aided design principles to improve industrial and lab-scale manufacturing processes. Robert has developed software to interact with novel sensor technologies, including X-ray machines, colorimeters, PLCs, and laser-based sensors.

Portfolio

InnoTech Alberta
Java, .NET, MATLAB, LabVIEW, Mechanical Design, Simulations, Modbus Protocol...
National Research Council Canada
Crypto, Excel VBA, Java, Computational Fluid Dynamics (CFD), Data Analysis...

Experience

Availability

Part-time

Preferred Environment

Java, MATLAB, LabVIEW, SOLIDWORKS, R, Excel VBA, Modbus Protocol, Mechanical Engineering, Computational Fluid Dynamics (CFD), .NET

The most amazing...

...Java calculation I've written is a 2D FFT with a selectable domain that allowed me to speed up the calculation hundredfold.

Work Experience

Control Engineer

2021 - PRESENT
Silent-Aire
  • Conducted HVAC factory witness tests with clients.
  • Wrote programs and developed graphics for Distech PLCs.
  • Troubleshot issues and developed fixes for programs in the field involving industrial heating and cooling.
Technologies: Distech

Research Engineer

2002 - 2019
InnoTech Alberta
  • Created a Java program that uses a 2D Fast Fourier Transform (FFT) key performance indicator (KPI) on mill panels before pressing to reduce sanding and raw materials used.
  • Created 4D Monte Carlo simulations of material flow through mill processes allowing estimation of production given processing, equipment, and downtime changes using Delmia Quest framework.
  • Developed PLC ladder logic, visual programming, and other software to control lab and industrial-scale manufacturing equipment for testing, prototyping, and production purposes resulting in the proving and certification of equipment.
  • Analyzed and reported on roughly 100 projects. Acted as quality manager for ISO 17025 accredited lab for destructive testing of mechanical properties. Evaluated precision and accuracy by leading inter-lab testing of multiple international labs.
  • Developed MATLAB software to analyze density information from 3D CAT scan voxels and 2D X-ray pixels.
  • Fixed the LabView program for automation of pyrolysis testing at the University of Alberta. Allowed researchers to continue with experiments without software freezes or incorrect operation of the schedule.
  • Created an online calibration using C# .NET for an X-ray system, which reduced downtime for calibrations by over 90%.
  • Developed data mining framework using VB.NET, Crystal Reports, and MS SQL Server for an OSB plant.
Technologies: Java, .NET, MATLAB, LabVIEW, Mechanical Design, Simulations, Modbus Protocol, PLC, Data Analysis, ISO 17025, Delmia Quest, Test-driven Development (TDD), MySQL, IIS SQL Server

Research Assistant

1999 - 2000
National Research Council Canada
  • Simulated airflow and air stagnation for indoor environments, including portable classrooms, offices, and housing meeting the R-2000 housing standard.
  • Developed an MS Excel program to solve networked airflow for HVAC systems for R-2000 housing standard.
  • Obtained the Award of Excellence for participation in the COPE project. Served as a research assistant during two four-month co-op work terms.
Technologies: Crypto, Excel VBA, Java, Computational Fluid Dynamics (CFD), Data Analysis, Data Visualization, Sensor Data

Java Programmer

1999 - 1999
Government of Canada
  • Updated Fortran code using object-oriented Java. Estimated the amount of water flowing in and around the Milk river that crosses the Canada-United States border, which determined the US financial obligations to Canada under NAFTA.
  • Constructed and imaged Windows XP and standard software on roughly 90 computers in one week.
  • Acted as a helpdesk for a team of 90 people for PC software and hardware issues.
  • Acted as temporary email administrator during the administrator's two-week vacation. Solved mail issues and troubleshot and fixed lost connectivity issue due to overheated router.
  • Served as a Java programmer during a four-month co-op work term.
Technologies: Java, Mechanical Engineering, Fortran, Windows

Mechanical Engineering Technician

1997 - 1997
CoorsTek
  • Optimized oven temperature versus glass to metal seal quality.
  • Created a 3D model and prototype for jig holding glass and metal during heating.
  • Assisted with quality assurance of Six Sigma process for manufacturing airbag glass to metal seals.
  • Served as a mechanical engineering technician during a four-month co-op work term.
Technologies: Mechanical Engineering

Mat Height Profiling of Strand-based Panel Manufacturing

Java software was developed to read laser-based distance information that measures pre-pressed mats' height before being compressed into panels. The software identified the boundaries of mats and determined how consistently material is distributed. Roughly 100,000 measurements are taken per mat in the mat-forming line before pressing into 4x8 foot panels.

A 2D FFT is used in real-time to determine the macroscopic waves and create a key performance index (KPI) for waviness. Images and statistical information are created and display to control room staff so that changes to forming can be adjusted as part of the 24 hours, seven days a week manufacturing process.

Statistical information for each panel is then sent to MS SQL Server or MySQL, where it can be accessed by other mill staff using other software. The software allows continual feedback on impacts of actions mill staff take to improve panel consistency and reduce waste by reducing the sanding needed per panel. Significant shifts in panel statistics can set off alarms to control room staff to alert them to unexpected changes such as material bridging or equipment failure.

Press Monitoring Application

https://1drv.ms/u/s!AlX374sf_hzWhOR81sf6SGIIemBadA?e=Td4yI5
Developed a roughly 30,000-line .NET 4.0 program with real-time graphing, monitoring, dashboard, internationalization, and archival solution for data collected by pressure, temperature, and distance sensors. Created native connections to Alley-Bradley and Siemens PLC as well as any Modbus capable PLC. A task manager was developed to help ensure responsiveness when polling. Unit conversions were handled as a part of all in-program specified calculations. Microsoft Prism 4 was used with WPF to separate model, view, and view model program aspects. Unity was used for the dependency injection container. Adding and removing modules with different functionality could be done with few code changes and little impact on other modules' functionality. All data could be exported to MS Excel or image format. Previously defined settings and data could be read and written in a forward and backward compatible manner. Internationalization was completed for English, French, and German by using an XML translation file for each module and language combination. In this way, future translators only need one XML file to create further translations that could be done in a regular text editor. All session state was saved to XML.

Colorimeter Data Acquisition

https://1drv.ms/u/s!AlX374sf_hzWhOR7BDrMl2fs2sh52Q?e=N3lwZD
Developed a small Java program to read serial information from an undocumented BK H500-ND RGB Analyzer. Information was read using RS-232 through a serial connection on the handheld colorimeter. We used JUnit 4 and code from the Hamcrest website (www.hamcrest.org) to test and simplify the application. Running averages and standard deviations were calculated for the RGB samples and HSL values. Values could be saved to a file for later analyses. A GUI was developed for user interaction.

Image Segmentation for Visual Identification

Developed a Java program that took images from a video feed and then segmented the images based on the ideas presented in the paper Image Segmentation Using Local Variation by P. Felzenszwalb and D. Huttenlocher (1998). Recognizable shapes were then determined for use in tracking object movement or assisting with the motion of the vehicle to which the video camera was attached.

NAFTA Calculation of Hydrological Cycle

Developed Java code using existing Fortran code and NAFTA requirements to update water flow calculation and use between Canada and the United States. Hydrological measurements and human water use were utilized to calculate the net amount of water transferred to the United States.

Finite Differences Simulation for Lyocell Process

Developed a Java application to simulate the Lyocell manufacturing process for pulling a wood cellulose mixture into solid fibers. The temperature, density, thread tension, thread speed, heat conductivity, drag coefficient, drag force, kinematic viscosity, shear viscosity, elongation viscosity, NMMO concentration, aperture diameter, and filament phase were varied to help determine if filaments would form without breaking and if so, what the expected filament diameter would be.

Languages

Java, Excel VBA, VB.NET, C#.NET, XML/XSLT, XSLT, SQL, XML, HTML, JavaScript, Bash Script, Bash, R, Fortran, CSS

Frameworks

.NET, NUnit, JUnit, Classic ASP, ASP.NET

Libraries/APIs

API Development, REST APIs

Tools

SOLIDWORKS, MATLAB, LabVIEW, Microsoft Unity, Git, Mercurial, Subversion (SVN), Prism, GitLab, Google Analytics

Paradigms

Mechanical Design, Model View ViewModel (MVVM), RESTful Development, Test-driven Development (TDD)

Platforms

Windows, Linux, Windows XP, Drupal 8, Linux Mint, Unix, Amazon Web Services (AWS)

Storage

XML Parsing, SQL Server 2000, Google Cloud, MySQL, IIS SQL Server

Other

Modbus Protocol, Mechanical Engineering, Computational Fluid Dynamics (CFD), Applied Mathematics, Simulations, PLC, ISO 17025, FFT, Sensor Data, Continuous Monitoring, Audio, Sampling, Material Handling, APIs, Technical Research, Digital Signal Processing, DSP, Industrial & Manufacturing, Machinery, Industrial Equipment, Finite Element Analysis (FEA), Data Analysis, Statistics, Manufacturing, Data Visualization, Internal Audits, Siemens PLC, Allen-Bradley PLCs, Graphing, Internationalization, Image Segmentation, Object Recognition, Color Grading, Risk, Delmia Quest, Command-line Interface (CLI), Windows 10, Technical Reports, Writing & Editing, Libraries, ANSYS, Crypto, Security Clearance, Government Contracting, Electrical Design, Electrical Engineering, Safety, Artificial Intelligence (AI), Water Resources, Materials Science, RS-232, Serial Port, Circuit Design, Gentoo, Unix Shell Scripting, Distech, Chemicals

2001 - 2002

Specialization Degree in Mathematics

University of Alberta - Edmonton, Alberta, Canada

1996 - 2001

Bachelor's Degree in Mechanical Engineering

University of Alberta - Edmonton, Alberta, Canada

NOVEMBER 2020 - PRESENT

Dante Level 3 Certification

Audinate

OCTOBER 2020 - DECEMBER 2026

Level II (Secret) Security Clearance

Government of Canada

MARCH 2019 - PRESENT

ISO 17025:2017 What's New or Different

CALA Training

NOVEMBER 2016 - PRESENT

Electrical Work Practice

Cenovus Energy, Inc.

FEBRUARY 2015 - PRESENT

WHMIS After GHS for Workers

Canadian Centre for Occupational Health and Safety

JULY 2014 - PRESENT

Workplace Hazardous Materials Information System (WHMIS)

Danatec Educational Services, Ltd.

NOVEMBER 2013 - PRESENT

T57-13 CALA Internal Auditor

CALA Training

SEPTEMBER 2013 - PRESENT

ISO/IEC 17025:2017 Foundation Training Course

Ashbrooke Quality Assurance

NOVEMBER 2012 - PRESENT

BerkeleyX: CS188.1x Artificial Intelligence

edX, Inc.

JUNE 2012 - PRESENT

Circuits and Electronics 6.002x

Massachusetts Institute of Technology (MITx) | via edX

DECEMBER 2010 - PRESENT

Professional Mechanical Engineer

APEGA

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