Don Grout

Don
Grout


Unity and AutoCAD Software Developer

Montreal, QC, Canada


403-660-5542


dongrout@yahoo.com


www.linkedin.com/in/dongrout


dgsoftware.itch.io

Technologies

  • Unity
  • AutoCAD
  • Visual Studio
  • C#.NET & WPF
  • AutoLISP
  • Android
  • Java
  • HTML & CSS
  • Bootstrap & Joomla

Skills

  • Attention to detail
  • Problem-solving & critical thinking
  • Adaptable & flexible with a readiness to learn
  • Work in a team or independently

Availability

  • Full-time / Part-time
  • Employee / Contractor

Experience

Unity VR Developer

Developing a virtual training platform for nursing.

Developed software to train personnel in VR on how to inspect and use large mining equipment. The levels of difficulty ranged from completely guided, to varying visual prompts, to open world with no help. Metrics were tracked to provide a report upon completion or failure. Created a system to help design the experience right in VR. Also placed Easter eggs to add a little extra fun that the client enjoyed.

Unity Apps Developer

Worked on software in which users could design their house and decorate with furniture from manufacturers. Was tasked with simplifying creating rooms with doors, windows, along with peaked and curved walls. Also updated the UX for placing furniture and the redesigning UI menu system.

Unity Games Developer

In my free time, I enjoy creating games. Usually they are recreations of classic or mobile games with some originals. The games are made to play on WebGL, Android and VR platforms.

AutoCAD Software Developer

Was the sole developer on 2D software for piping drafting, creating new features and providing user support. Also developed a viewer on the 3D software for plant modeling. Went on to providing customization services for companies to streamline their drafting process.

The Most Amazing...

... software I develop involves graphical elements that the user can interact with.

Professional Roles

  • Microsoft Windows Developer

    • Using either WPF or Winforms framework, writing applications ranging from simple quick utilities to full stand-a-lone programs utilizing object-oriented methods
    • Providing user interfaces that are easy for the user to understand and simple to use
    • Develop applications to extract & compare data between different formated types of spreadsheets as well as SQL databases and produce reports
    • Comparison of data provided in easy to read formats with colour coded highlighting and displayed as either graphs, tables or exported to Excel spreadsheets
    • Developed applications to backup files into folders based on the current month. After files were burnt to a disc, another application would let you search and browse an archive of disc contents allowing you to quickly locate which disc a file was located on.
    • Created utilities for system maintenance that would transfer files via FTP, monitor the number of licenses in use, watch for files being left open after work hours, track the hardware and specific software versions installed on machines and email out reports
    • Music player that you select a folder on your computer to play all the music from
    • Developed a user interface to make it easy to edit videos using FFMPEG
    • Created an application to rename digital photos according to the date & time that the picture was taken instead of having them sequentially numbered
    • My very first work related program was written in C for the DOS system. It was a mining simulator to find the optimum operation under capacity and power restrictions.
  • AutoCAD Software Developer

    • Worked on the PROCAD 2D software as the sole developer and was responsible for developing new features, maintaining existing code and providing user support.
    • Customization was also done to suit the specific needs of clients. The customization code was placed along side of the normal code and was unlocked with a unique client key code.
    • Controlled licensing of the software with CrypKey and the software installation using InstallShield. Automated the process of getting the latest source file versions from SourceSafe, compiling the programs, building the installation, and having a folder ready to burn to CD for distribution.
    • Worked with the 3D piping software team to develop the metadata code to model components from the SQL database into AutoCAD.
    • Developed a 3D viewer using OpenGL to view the model components in both Windows stand-a-lone programs and AutoCAD-based programs.
    • Developed custom open drawing dialog which shows drawings organized according to project along with a preview of the drawing. This makes it easy for users to quickly find drawings without having to navigate a complex network path.
    • Templating models where a model from a previous project is copied, moved to new coordinates, labeling and tags updated to quickly create a model in a new project
    • Create reporting tools that can quickly scan hundreds of drawings and generate reports on the data
    • Automating the plotting procedure to determine the client, drawing type, drawing size and output printer to automatically set the correct pen settings and page setup required. Inserting any engineering stamps or date stamps required before printing and removing them after the drawing has been printed. Also providing the ability to batch plot a number of drawings.
    • Developed a system that ran overnight where models that were modified during the day are cleaned up with unused layers purged and settings reset to default. AutoCAD models would be incorporated into a Navisworks 3D model for walk-through viewing and uploaded to a client's FTP site so they can see the progress being made.
    • Develop commands that take a number of tasks and incorporate them into a single command
    • Develop and maintain a library of blocks and the commands to place them to ensure that they go on the correct layer and orientation according to the corporate drafting standards
    • Custom commands are created in AutoLISP if possible. This keeps the code in an easy to edit format by any developer and also provides the most compatibility for the commands to work on all future versions of AutoCAD.
  • AutoCAD Systems Management & Support

    • Providing AutoCAD and related 3rd party CAD applications support. 3rd party apps like PROCAD, Bentley AutoPlant and ProStructures.
    • Customization, setup and configuring of the CAD systems to maintain standard settings
    • Organize the CAD environment and network folder structure of project folders
    • Standardize company custom menus, layering system, blocks and plotting procedures
    • Develop and maintain custom commands to enhance and simplify the drafting process
    • Set in place a system for templating models to reduce time on similar projects
    • Developed a system for automatically cleaning AutoCAD models and generating a Navisworks plant model on a nightly basis
    • Develop and run AutoCAD related training sessions
    • Write documentation and work instructions on the use of custom AutoCAD tools
    • Install CAD software and their latest updates on drafting computers
  • AutoCAD Drafter

    • While employed in the Electrical Department, drafting experience included CAD drafting of cable tray, lighting, power, grounding and MCC layouts in plan view, elevations and details
    • Worked in the mechanical, piping, structural and geotechnical departments as required.
    • Following standard layering conventions and using externally referenced drawings
    • Some interesting projects included hotel floor plans, dam cut & fill calculations and determining the optimal cutting layout for a faceted diamond roof.
    • Also finding a container's center of gravity for a drop test onto its corner was a unique task. The calculation was precise enough that the container balanced on it's corner for a moment before tipping over during the test.
  • Unity Apps & VR Developer

    Training & Inspection Software

    • Developed a VR training simulation for switching out an electrical circuit breaker rack. Users have to select the correct PPE, check area for hazards, communicate with a switchman for orders and finally perform the racking out. The system had 3 levels of training from being fully guided, to partially guided, and finally to an open world. The open world let users perform tasks in any order but they failed if performed out of order. The racking was performed with real physical equipment and a sensor attached so they would see it moving in the virtual world.
    • Creating a virtual reality experience for inspecting large mining equipment. Made the controls for users to teleport around the equipment, inspecting parts, identifying hazards and interacting by opening doors. To aid the users, arrows were placed on the ground to guide them to the next inspection location. Also a robot was animated to demonstrate the controls and inspection procedure. This was with the Oculus Rift system while a stripped down version was created for the Oculus Go.

    Home Decorating Software

    • Creating software to easily model houses in 3D. Implemented the method that each room was standalone, created on it's own and then all rooms put together like a puzzle to form the house. Focused on generating walls with commands to easily place and modify them. Implemented wall dragging to move and stretch them into position along with real-time dimensions displayed. Corners were drawn to automatically match up walls at different angles and with different thicknesses. Walls could have a sloping top line and could curve inwards or outwards. Window and door openings were improved for placement and duplication, again using dragging techniques.
    • The detailed manipulation of the walls required lots of triangulation calculations. A generic library was used for the creating the openings on a flat 2D surface but then faceting and extra triangulation was required to curve the surface. Also the wall needed to be made from 2 pieces for the inside and outside, end lengths extended so nice corners were created, and thicknesses shaved off to prevent interference from overlapping walls.
  • Unity Games Developer

    When I have some spare time, I enjoy creating small games and posting them on https://dgsoftware.itch.io for people to play. Mostly I've recreated classic games like Pong, Breakout, Asteroids, Space Invaders, Diamond Mine and Tetris. The Asteroids and Space Invaders games are interesting as they are created from vector lines and voxel cubes which break apart differently when destroyed.

    I have also recreated some mobile games like Unblockable and Ballz-alike. They are relatively easy games to make but with different game mechanics. My Versus 2D2PG is a collection of 2D games for 2 players to be played with gamepad controllers.

    I also enjoy taking computer games and putting them into VR. The Unity Tower Defense Template is a really immersive experience when played in VR. You can play with a view of the entire map or put yourself right down in the action with the battle all around you. My Shooting Gallery is fun to play on the computer but better played in VR. I'm hoping to one day bring it to Android with lots of new features and gameplay.

  • Android App Developer

    • Aurora alarm clock that goes off when the Aurora Borealis reaches high levels
    • Automatically enable mobile data when WIFI is present
    • Beats per minute calculator where you tap the screen to do the calculation
    • Book reader lets you read text files and keeps track of where you are in the file
    • Calculator that converts between many units including currency exchange rates
    • Clock app that displays a clock using rotating bitmaps
    • DG Software app that is a conversion of a website into app form
    • Games development using OpenGL code that is the same as the Windows version
    • Mobile data toggle to quickly toggle your data on or off
    • Music player that you select a folder on your phone to play all the music from
    • PC to clipboard apps that let you transfer data between the PC and the Android
    • Recent apps widget that displays all your app icons sorted by the most recent used
  • Website Developer

    • Designed and developed the internal company intranet on the Joomla website system and editing PHP code, CSS styles and the MySQL database
    • Automated the process of updating many parts of it by linking to company Excel spreadsheets and AutoCAD drawings. This allowed employees to continue their normal work flow while the website updated itself from their data.
    • Added features to display user classified ads, calendars, event & staff photos, contests & polls
    • Contests like a reverse wine draw where employees could see in real time the results of the draw taking place
    • Reading external websites to bring in data like the latest medal standings from the Olympics sporting event
    • Updated & customized the site as per user ideas and suggestions
    • Provide overall maintenance on an ongoing basis
    • Setting up simple web sites for company and personal use either from scratch or by using a template and supplied graphics
    • Written using HTML, CSS and JavaScript and organized to allow easy updating by the owner using Notepad instead of relying on outside support
  • Graphical Interface Developer

    • Convert graphical user displays from older SCADA systems to newer versions. The process involved importing the old screens into Catalyst's Myriad application. Then dynamic elements were tagged and the screen exported to AutoCAD. Once in AutoCAD, cleanup was performed and then the final screen is translated to the OASyS DNA system.
    • Programmed a tool to scan the screens and generate reports of required information. Created AutoCAD commands to make the cleanup process a lot easier and quicker. Batch processing was done on the screens to automate many of the changes.

Employment History

UbiSim
Unity VR Developer

Dec 2020 to Present

Montreal, QC (remote)

Roles: Unity VR Developer

Responsibilities included:

  • Developing virtual training platform for nursing.

Tools and technologies used: Unity 3D, C# and Oculus Quest & Rift.

ICOM Productions
Unity & Unreal VR Developer

Nov 2018 to Apr 2020

Calgary, AB

Roles: Unity & Unreal VR Developer

Responsibilities included:

  • Developing virtual training for switching out an electrical circuit breaker rack.
  • Developing virtual inspection of large mining equipment.
  • VR controls for inspecting, teleporting & interacting with objects.

Tools and technologies used: Unity 3D, C#, Unreal, HTC Vive and Oculus Rift.

Picture This Today
Unity Developer

May 2018 to Aug 2019

Apr 2017 to Sept 2017

Victoria, BC (remote)

Roles: Unity 3D Developer

Responsibilities included:

  • Creating software to easily model houses in 3D.
  • Focused on generating walls with commands to easily place and modify them.

Tools and technologies used: Unity 3D, C# and WebGL.

ICOM Productions
Unity VR Developer

May 2018 to Jun 2018

Calgary, AB

Roles: Unity VR Developer

Responsibilities included:

  • Developing virtual inspection of large mining shovel.
  • VR controls for inspecting, teleporting & interacting with objects.
  • Animated robot demoing the process.

Tools and technologies used: Unity 3D, C#, Android, Oculus Rift and Oculus Go.

Integrated Geomatics
AutoCAD Software Developer

Jan 2017 to Jun 2018

Calgary, AB

Roles: AutoCAD Software Developer

Responsibilities included:

  • Automating the workflow through development of custom software solutions.

Tools and technologies used: AutoCAD, AutoLISP, Visual C#, HTML, CSS, Python and ArcGIS.

University of Calgary Ballroom Dance Club
Website Developer

Oct 2016 to May 2018

Calgary, AB

Roles: Website Developer

Responsibilities included:

  • Backing up the website.

Tools and technologies used: cPanel, WordPress, phpMyAdmin, MySQL, HTML and CSS.

Accalia Accounting Ltd.
Microsoft Windows Developer

Jun 2016 to Aug 2016

Calgary, AB

Roles: Microsoft Windows Developer

Responsibilities included:

  • Developing a payroll calculator application.

Tools and technologies used: Visual C#, HTML, CSS.

Vista-Mustang JV Corporation
Website Developer

Nov 2015 to Feb 2018

Calgary, AB

Roles: Website Developer

Responsibilities included:

  • Maintaining their intranet website.
  • Posting articles, updating pages, ensuring automated updates are running.

Tools and technologies used: Joomla, HTML, CSS, JavaScript, PHP, MySQL, Visual C#, and Microsoft Office Excel.

Longhorn Geomatics Limited
AutoCAD Software Developer

Nov 2015

Calgary, AB

Roles: AutoCAD Software Developer

Responsibilities included:

  • Meeting with a client and developing custom drafting tools.

Tools and technologies used: AutoCAD and AutoLISP.

Vista-Mustang JV Corporation
Engineering Applications Specialist

Nov 2009 to Nov 2015

Calgary, AB

Roles: AutoCAD Systems Management & Support, AutoCAD & Windows Software Developer, and Website Developer

Responsibilities included:

  • Providing AutoCAD, ProStructures and IMV PID support.
  • Customizing said systems to meet ongoing users requirements.
  • Develop and maintain custom commands for controlling layers, inserting blocks, initializing drawings, templating models, and other miscellaneous functions.
  • Develop programs for users to simplify batch plotting, accessing Navisworks plant models, extracting line list information and editing isometric revisions.
  • Develop commands and programs for the support team to clean models, upload line lists to the database, maintain model lists, monitor the computer system, generate reports on the models and upload models to client's FTP site.
  • Created a menu system to organize all the custom commands as well as maintain standard system settings.
  • Developed a system for automatically cleaning AutoCAD models and generating a Navisworks plant model on a nightly basis.
  • Designed and developed the internal company intranet on the Joomla website system.
  • Automated the process of updating many parts of it by linking to company Excel spreadsheets and AutoCAD drawings.
  • Provided overall maintenance on an ongoing basis.
  • Updated & customized the site as per user ideas and suggestions.
  • Added features for displaying user classified ads, calendars, event & staff photos, contests, polls and sporting event updates.

Tools and technologies used: AutoCAD, AutoLISP, Visual C#, Bentley AutoPlant, Bentley ProStructures, SQL Server, Joomla, HTML, CSS, JavaScript, PHP, MySQL, and Microsoft Office Excel.

Shok Dance
Website Developer

Sep 2013 & May to Jun 2010

Calgary, AB

Roles: Website Developer

Responsibilities included:

  • Meeting with a client to setup a website based on a client supplied template and graphics.
  • The website had to be easy to update and maintain by the owner instead of relying on outside support.
  • A few years later, provided consultation when the company decided to come up with a new website design using the Wix web development platform.

Tools and technologies used: HTML, CSS, and JavaScript.

Wood Group Mustang / IMV Projects Inc.
Engineering Applications Specialist

Dec 2007 to May 2009

Calgary, AB

Roles: AutoCAD Systems Management & Support, and AutoCAD Software Developer

Responsibilities included:

  • Involved with AutoCAD development within the company.
  • Work closely with users on support related issues.
  • Provide 2nd level AutoCAD support.
  • Involvement with development and maintenance of company wide custom menu system.
  • Implementation of custom tools to enforce corporate drafting standards.
  • Develop ad-hoc AutoCAD based applications for projects as needed.
  • Develop and maintain custom solutions utilizing the PROCAD family of products.
  • Develop and maintain custom solutions utilizing the Bentley AutoPlant family of products.
  • Write documentation and work instructions on the use of various AutoCAD products and custom tools.
  • Develop and run AutoCAD related training sessions.

Tools and technologies used: AutoCAD, AutoLISP, Visual C#, Visual Basic, Bentley AutoPlant and PROCAD 2D.

Upside Engineering
CAD Support Technician

Feb 2006 to Dec 2007

Calgary, AB

Roles: AutoCAD Systems Management & Support

Responsibilities included:

  • Supply technical support for the CAD software and fix problems that are encountered.
  • Install CAD software and their latest updates on drafting computers.
  • Organize the CAD environment and network folder structure.
  • Set up project folders for drafting files and plotting.
  • Customization of CAD programs as required.

Tools and technologies used: AutoCAD and AutoLISP.

Cimarron Engineering
CAD Support Technician

Oct 2005 to Jan 2006

Calgary, AB

Roles: AutoCAD Systems Management & Support

Responsibilities included:

  • Providing AutoCAD and related 3rd party CAD applications support.
  • Customization, setup and configuring of the CAD systems.

Tools and technologies used: AutoCAD and AutoLISP.

Catalyst Realtime
Graphical Interface Developer

Jan 2005 to Jul 2005

Calgary, AB

Roles: Graphical Interface Developer

Responsibilities included:

  • Convert graphical user displays from older SCADA systems to newer versions. The process involved importing the old screens into Catalyst's Myriad application. Then dynamic elements were tagged and the screen exported to AutoCAD. Once in AutoCAD, cleanup was performed and then the final screen is translated to the OASyS DNA system.
  • Programmed a number of tools for the conversion process. A tool was written to scan the screens and generate reports of required information. A collection of AutoCAD commands were created to make the cleanup process a lot easier and quicker. Batch processing was done on the screens to automate many of the changes.

Tools and technologies used: AutoCAD, AutoLISP, and OASyS DNA SCADA.

Avitrax Website Design
Website Developer

Feb 2004

Calgary, AB

Roles: Website Developer

Responsibilities included:

  • Worked on the RentFaster.ca website.
  • Developed the functionality so that listings could be bookmarked into a favorites list and then viewed later.
  • Also worked on saving search preferences so that after a search was made, going back to the previous page would restore the last search options.

Tools and technologies used: HTML, CSS, JavaScript, PHP, and MySQL.

PROCAD Software
AutoCAD Software Developer

Jul 1999 to Mar 2008

Calgary, AB

Roles: AutoCAD Software Developer, and AutoCAD Systems Management & Support

Responsibilities included:

  • Maintain existing and develop new features for 2D piping software. Customization was also done to suit the specific needs of clients. Provided technical support to users for the 2D drafting software via e-mail and the phone.
  • Design and develop new features for 3D piping software. The application included both stand-a-lone programs and AutoCAD-based programs that interact with a SQL database. The modeling software reads dimensional data from the database and then creates 3D models in both AutoCAD and OpenGL. User interfaces had to be designed so that editing the model was natural to the user.
  • Controlled licensing of the software with CrypKey. Created the installation for the software using InstallShield. Automated the process of getting the latest source file versions from SourceSafe, compiling the programs, building the installation, and having a folder ready to burn to CD for distribution.

Tools and technologies used: AutoCAD, AutoLISP, ObjectArx, C++, Visual C#, InstallShield, CrypKey, SQL Server, and OpenGL.

AGRA Monenco
AutoCAD Technologist

May 1989 to Jul 1999

Saskatoon, SK

Roles: AutoCAD Drafter, and AutoCAD Systems Management & Support

Responsibilities included:

  • AutoCAD drafting in the electrical department of cable tray, lighting, power, grounding and MCC layouts in plan view, elevations and details.
  • Also aided in the mechanical, piping, structural and geotechnical departments as required.
  • Helped to implement a standard layer system used throughout all departments.
  • Writing custom drafting commands.
  • Automated the plotting procedure by reading drawing data for all required info. Plotted drawings are date and time stamped with this info being used to log plots made for clients.
  • Some interesting projects included hotel floor plans, dam cut & fill calculations, and determining the optimal cutting layout for a faceted diamond roof. Finding a container's center of gravity for a drop test onto its corner was a unique task. Also writing a mining simulator to find the optimum operation under capacity and power restrictions proved challenging.

Tools and technologies used: AutoCAD, AutoLISP and C.

Education History

YouTube
Jason Weimann, Infallible Code, Code Monkey, Dapper Dino & FReality

Ongoing

Online

Videos on clean coding practices, Unity development and VR news.

Unity Certified Professional: Programmer
Unity Technologies

Oct 2020

Calgary, AB

Tests the core skills needed to contribute to the technical execution of a project from conception through launch, and beyond. Highlight to employers that you are adept at coding solutions to tricky problems and demonstrate that you possess professional-level skills to script user interactions, integrate visual and audio assets, implement application state logic, simulate physics, debug code, and optimize performance.

Android Developer
Udacity

Dec 2016 to Feb 2017

Online

Online courses that cover user interface, user input, multi-screen apps, networking, data storage, UX design, material design, Java programming, intermediate app development and advanced app development.

Web Design for Everybody (Basics of Web Development and Coding)
Coursera

Jul 2016 to Aug 2016

Online

Auditing an online specialization on web design that covers how to write syntactically correct HTML5 and CSS3, and how to create interactive web experiences with JavaScript. Courses include Introduction to HTML5, Introduction to CSS3, Interactivity with JavaScript, and Advanced Styling with Responsive Design.

Software Product Management
Coursera

Feb 2016 to May 2016

Online

Auditing an online specialization on software product management using the Agile software practices. Courses include Introduction to Software Product Management, Software Processes and Agile Practices, Client Needs and Software Requirements, Agile Planning for Software Products, and Reviews & Metrics for Software Improvements.

Programming Mobile Applications for Android Handheld Systems
Coursera

Jul 2015 to Aug 2015

Online

An 8 week online course that teaches the design and implementation of Android applications for mobile devices. Covered activities, intents, permissions, fragments, data, multimedia, graphics and sensors.

Advanced ObjectARX
Autodesk University

Oct 2004

San Francisco, CA

A course on custom object support for the property palette, tool palette and custom palettes.

Computer Science Courses
Athabasca University

Oct 1998 to Jun 2001

Calgary, AB

Courses taken by correspondence: Computer Graphics, Linear Algebra I, Object-oriented Programming with C++, Computer Programming in C, Introduction to Computer Programming (Java), and Systems Analysis and Design.

An Intro to Programming in C
Saskatchewan Institute of Applied Science & Technology

Oct 1992 to Dec 1992

Saskatoon, SK

An evening course on programming in C.

Computer Aided Design & Manufacturing Engineering Technology
Saskatchewan Institute of Applied Science & Technology

Sept 1987 to May 1989

Saskatoon, SK

Subjects taken: CAD/CAM Systems, CAD Drafting, CAD Modeling, CAD/CAM Systems Management, Electronics, PC Board Design, Mechanical Design, Fluid Mechanics, Building Structures, Finite Element Analysis and Strength of Materials.

Languages

  • English (Fluent/Native)
  • French (Beginner)
  • Spanish (Beginner)