SCOTT MORKEN
scott@red79
Technical Skills
- Skilled in developing and maintaining windows applications with C# and VB.Net
- Experienced in database design and queries as well as interfacing with ADO
- Experienced with .NET 4.0+ technologies (WPF, WCF, LINQ, Tasks)
- Experience using GIS systems and software including PostGIS, and GIS editing tools
- Experienced with manipulation of geographic rasters using GDAL
- Experienced with CUDA
- Can work in both Linux and Windows environments
- Strong Programming skills in ASM, C, and C++ for embedded and PC programs
- Some experience programming in Java
- Some experience in programming with PHP and MYSQL, and in HTML and CSS
- Experienced in PCB design, testing and assembly, and soldering
Other Skills
- Ability to take a lead-by-example role, by actively and enthusiastically searching for new and better ways to accomplish tasks.
- Creative problem solver
- Good verbal and written communication skills
- Can work effectively in teams or independently with little supervision
Work History
- Computer Programmer - Natural Resources Canada, Victoria BC (2006-2012)
- FPGA/Embedded Systems Developer Contract - Windterra Systems (2008)
- Prep Room Technician - Camosun College, Victoria BC (2006)
- Technician/Web programmer - Recom computers Canada, Victoria BC (2005)
- Detailer - Philbrooks Boatyard, Sydney BC (2002)
- Salesperson - Radioshack, Victoria BC (2001 and 2002)
- Salesperson/Technician - DK Computer Experts, Grande Prairie AB (2000)
Education
- Refractions Research (2011) - Attended PostGIS training course
- Camosun College (2007) - Graduated with Diploma of Computer Engineering Technology
- Justice Institute of BC (2003) - Graduated from Provincial Adult Correctional Officer Training program
Interests
Art, weight training, reading, writing, Taekwondo
Detailed Work History
Computer Programmer - Natural Resources Canada
Lead Developer on Operational Scale CBM-CFS3
- Became sole developer/maintainer of the Operational Scale CBM-CFS3 after departure of former lead. Responsible for all bug fixes, implementation of new features, testing and management of the code.
Standard Import Tool
- Re-wrote an older version of the standard import tool. This tool reads an input format and creates a project database. It is a critical component of the Operational Scale CBM-CFS3
- Worked collaboratively with an outside contractor who successfully completed a standard import tool interface with the TIPSY growth and yield program.
- Added spatially explicit project import to the standard import tool, and worked towards creating a spatial add-on to directly import data from sources such as raster and shape files.
Partial Model Re-write/Upgrade with CUDA
- Re-wrote a CPU intensive portion of the CBM-CFS3 model to bring it into a modern language with multi-threading support. Did extensive QA on this to successfully match results with the existing model.
- This task included reverse engineering the existing C++ code with sparse documentation.
- Wrote a CUDA (graphic card processor) module for the re-written portion. This required .NET/C++/CUDA C interoperability.
- Achieved a speed up of greater than 40 times the original model when running in parallel on the GPU versus the original code.
Training Coordination
- Initiated, organized and attended a training event for 14 participants in the topic of PostGIS - a geographic database system.
Spatially explicit modelling in CBM-CFS3
- Revived and expanded the spatially (geographic) explicit features of CBM-CFS3, in response to goals identified by the leadership of the Carbon Accounting Team.
- Tested, and actively assisted users of the feature
- Took initiative to learn about technologies used by the scientific community in this type of modeling. This includes raster manipulation through GDAL and other geographic data sources including shape files, and spatially enabled databases.
Database Update Library
- Built a library for the Operational Scale CBM-CFS3 that updates databases from older to newer schema after version changes
Localization
- Responsible for implementing the localization of the Operational Scale in French, Russian and Spanish
- Built a tool that writes and harvests terms to and from the Operational Scale code base. It also presents a user interface for translators. This tool helped speed up localization greatly.
National Inventory Report
- Wrote tools to support the operational requirements of the Canadian national inventory report (NIR) These tools required moving data across databases, and user interfaces.
Computing Cluster Software
- Built a 15 computer cluster to run parallel instances of the Operational Scale CBM-CFS3. This task included all networking and software configuration, including specifying needed hardware.
- Created a .Net 3.5 Windows communication foundation (WCF) client server architecture to pass data and instructions to each of the 15 cluster machines and retrieve simulation results.
- Successfully ran 3 rounds of remotely queued simulations over two years on the cluster at the request of a Natural Resources Canada scientist with a total of over 6000 hours of computer time divided among the 15 machines. This saved weeks of computing time compared to the usual method of running these simulations.
FPGA/Embedded Systems Developer Contract
Embedded Programming
- Worked with Philips LPC2148 ARM 7 micro-controller. Used the open source WinARM GCC tool-chain for development.
- Installed USB stack using LPCUSB project code, and built a PC to micro-controller interface.
- Implemented serial FPGA programmer in C code for start-up routine. This included reading the binary FPGA program from a flash memory IC via the serial peripheral interface (SPI), and streaming it into the FPGA. Also implemented routine to write the binary to flash IC via PC interface.
- Implemented C# LPC2148 boot loader library for in field or end client firmware updates.
- Implemented interface for data acquisition from system to a PC via USB for debugging and future instrumentation.
FPGA Design
- Used Quartus software on Altera Cyclone III FPGA.
- Designed parts of FPGA layout including SPI analog to digital converter interfacing, voltage and current feedback loops and related calculations
- Implemented 8 bit FPGA to Micro-controller interface using VHDL. This consisted of 8 shared address/data lines, direction bits, clock, and address/data bit. Interfaced this with LPC2148.
- Implemented small color LCD driver on FPGA using VHDL, and successfully initialized and wrote graphics to LCD.
Prototyping and Testing
- Successfully built and tested initial prototype, including hand soldering, and wire wrapping.
- Assisted in running tests and verifying initial functionality with wind turbine generator.