Thanks for taking the time to visit my portfolio. 35 years is a long time in the tech industry, and over that
time I've accumulated a lot of knowledge, experience, and technical certifications.
But, this industry moves at light speed, and while I believe knowledge and experience in a specific domain may
be
important at the time, it's value may become less important as time goes on.
So I was left with a dilemma.
Do I pollute my resume with potentially non-relevant work history? Or, risk not sharing some obscure (but
perhaps
important) nugget of information that may help you make your decision. I know your time is important, so I
decided
to keep my resume brief and spend a bit more time here getting into the meat of my experience. You may notice a
Geographic Information Systems (GIS) theme throughout my work history, but rest assured I have extensive
experience in all aspects of software design, development, deployment, and documentation — GIS and non-GIS
alike.
The structure of this site is simple. I've detailed my complete work experience, followed by information about
some open source projects, interviews and publications, as well as teaching and presentations. Feel free to
scroll
through the information, or sit back and let the magic of javascript scroll the information for you.
I designed (and implemented) this site myself. And, even though I have oodles of experience in all sorts of web
application frameworks and technologies, I specifically decided to limit myself to using only html, css, and a
bit
of javascript here. I believe simplicity is the key to most things.
If you have any questions, please contact me. Thanks again for your time.
SENIOR SOFTWARE ENGINEER
PacifiCorp (Berkshire Hathaway Energy) | MARCH 2014 - PRESENT
Designed, implemented, and deployed multiple enterprise class, cross-platform
applications:
- The sole front-end client developer for PacifiCorp’s fastMap application, an internal company solution (for
Windows and iOS) used by over 1500 employees and third-party contractors on a daily basis to view, map, and
correct information on company GIS assets. Want to see fastMap in action? The training videos are publicly
available. Here's a link to the Getting
Started video, and company blog. Note, I do
not
maintain the company blog or training videos.
- Designed and implemented a system architecture, process, and suite of software for mobile users in the Joint
Use Inspection group. The back end solution involves optimized dissemination of large data sets to nearly 50
satellite locations across the United States through various automated jobs using a combination of operating
system scripts and custom applications written in C#. The front end solution involves custom software (also
written in C#), utilizing Esri's ArcGIS Engine, and Schneider Electric's ArcFM Viewer for ArcGIS Engine to
assist Joint Use Inspectors in quickly and effectively conducting field inspections using Panasonic Toughpads
and ruggedized Dell tablets. These devices periodically communicate bi-directionally with the satellite
locations to receive data updates and transmit completed inspections.
- Designed and built a cross-platform console application, using .NET Core (and deployed to
Windows, Mac, and Linux systems) used to encrypt and store, then decrypt
and retrieve values from "vault" files. It was designed to satisfy encryption requirements outlined by
Berkshire
Hathaway Energy security policies and guidelines, specifically to satisfy the requirement that sensitive
information must be encrypted when stored or in transit. Technically, information is encrypted in the vault
file
using a user selected X.509 Version 3 certificate
that has a defined purpose of document encryption (an enhanced key usage of Document Encryption
(1.3.6.1.4.1.311.80.1)) employing AES-256 encryption. As a user, none of that may be important except to know
that even with the right quantum computer, AES-256 would take 2.29*10^32 years to brute
force crack.
Skills used in this role include:
- C#, .NET (Framework, Standard, and Core)
- Esri tools and technologies (ArcGIS Desktop, Pro, Esri Runtime SDK, Map's SDK for Xamarin/MAUI, Esri Portal
On-Prem and ArcGIS Online)
- Schneider Electric tools and technologies (ArcFM, ArcFM Viewer for ArcGIS Runtime, ArcFM Runtime SDK)
- MVVM and MVC
- UWP, WinUI, Xamarin, and MAUI
- Azure DevOps repos and pipelines (on premise and hosted)
- AWS (EC2, RDS, S3 and Lambda)
- SQL Sever, SQLite, Oracle, MySQL
- Git, TFS, Visual Studio, Xcode
- JSON, XML, YAML, XAML, SQL
VP OF ENGINEERING
Thetus Corporation | APRIL 2012 - MARCH 2014
- Reported directly to the CEO, and worked side-by-side with the CTO to define the architectural roadmap and
technical direction for the company.
- Directly managed six Director level reports, and was responsible for an engineering staff of 50+ developers.
- Managed engineering resource staffing, held performance reviews, approved vacation requests,
participated in the interview process as well as made hiring decisions, acted as a stakeholder, company
representative, technical evangelist, and was ultimately responsible for all software engineering for the
company.
Skills used in this role include:
- Leadership
- Team Building
- Performance Management
- Negotiation
- Conflict Resolution
- Agile and Scrum Methodologies
APPLICATION LEAD
Thetus Corporation | 2009 - MARCH 2012
- This role was an equal mix of development and managerial duties.
- Developed with (as well as led) a group of developers using Adobe Flex, Java, and BlazeDS, to develop the
Thetus flagship product Savanna. Savanna is a web based semantic modeling and analytic platform designed to
facilitate the science and art of defensible story telling.
- Designed and developed a Flex module loading framework to support dynamic loading and unloading of code
module
sets based on constraints such as access control lists. This proved very useful to break up the monolithic
nature of Flex applications and dramatically decrease application load times.
- Led a group of up to twelve developers. Directed day to day work, held performance reviews,
approved vacation requests, participated in the interview process, and disciplinary actions.
Skills used in this role include:
- Cairngorm
- Ant
- SVN
- Hadoop
- Hibernate
- ZooKeeper
- ActionScript, ECMAScript
- Adobe Flex and Adobe AIR
- Java and Java Servlets
- BlazeDS
- JBoss
- Node.js
SENIOR SOFTWARE ARCHITECT
GeoNorth LLC | 2009 - 2010
Re-engineered the City of Portland GIS Map Servers (used as the back-end for
PortlandMaps.com). Designed a new .NET structured environment, and migrated original code (C and VB) to C#.
Skills used in this role include:
- VB, C, C#
- .NET Framework
- Multi-threading
- REST
- Low level TCP/IP (listeners and threads)
SOFTWARE ENGINEER
Universal Mind | 2008 - 2009
- Member of the SpatialKey.com team. Developed a server architecture in Java to communicate with the
SpatialKey
client application utilizing technologies such as Java, servlets, JBoss, BlazeDS, and the Spring framework.
- Developed a data detection and geocoding engine to geo-reference source data. The geo-referencing options
included coordinate re-projection and street address geocoding. This system was implemented in both Adobe AIR,
and Java.
- Developed AS3 & Flex components for use within the SpatialKey client application.
Skills used in this role include:
- Adobe Flex
- Aodbe AIR
- Java
- JBoss
- BlazeDS
- Spring
- Hibernate
- MySQL
SENIOR SOFTWARE ARCHITECT
GeoNorth LLC | 1999 - 2008
- Worked with private sector, as well as local, state, and federal government clients to design and develop a
wide variety of custom GIS and database solutions ranging from utility management to homeland security.
- Developed the back end GIS server technology used by the City of Portland for PortlandMaps.com (as well as
all
GIS server related internal business). This enterprise system was originally developed using ESRI ArcObjects,
C,
and VB, and then re-architected in a .NET structured environment where all code was migrated to C#.
- Conceived, designed, and developed several commercial software products:
- QueryPal — An ArcGIS extension for seamless querying of GIS features and external databases (e.g.,
permitting, billing, facilities, assessment, etc.) Users can quickly connect to data and set up queries
with
easy-to-use wizards and an intuitive configuration interface. Version 1 was written in VB, Version 2 was
written VB.NET.
- CartaVision — An ArcGIS extension providing a radically simple process for publishing maps on the
Internet. It is an entry-level Internet Mapping System that does not require a web server. It is ideal for
publishing GIS project information or easily adding interactive mapping to web sites. Version 1 was
written
in VB, version 2 was written in VB.NET (back end), with a Flex 2.0 front end.
- MapCandy Symbols — Adds stunning graphic symbology to ArcMap, ArcGIS server, and ArcIMS (via
GeoNorth’s CartoPort product). Uses the native .NET GDI+ graphics libraries to provide full control over
anti-aliasing, interpolation, and transparency settings for fantastic looking markers, lines, and fill
symbols. Written in VB.NET.
- GeoClarity — An enterprise integration server technology that can spatially enable enterprise
systems and provide non-GIS systems and applications with GIS functionality. This product allows non-GIS
systems to communicate with GIS systems, and with each other, providing true enterprise integration.
Systems
can easily access GIS functionality, and GIS applications can easily access functionality and data
provided
by other systems. Written in VB.NET and C#.
- Designed and developed in-house solutions, such as the GeoNorth Product Activation System for online product
activation and management.
- Supervised, managed, and mentored developer groups throughout several product and project
development life cycles.
Skills used in this role include:
- VB, C, C#
- .NET Framework
- Flex
- Esri's ArcObjects
- ColdFusion
- CVS
- SVN
APP DEVELOPER
INTEGRITY SOLUTIONS, INC. | 1997 - 1999
- As an Application Developer; produced custom applications such as billing systems, reporting applications,
and
time tracking databases, primarily focused for customers in the oil and gas industry.
- As a Systems Consultant; designed network topologies, disaster recovery plans, performed
on-site
custom database installations, as well as network and software configurations.
Skills used in this role include:
- VB
- Microsoft Access
- SQL Server
- PowerBuilder
APPLICATION DEVELOPER
COMPUTER TASK GROUP | 1995 - 1997
- As the Maximo Database Administrator for Alyeska Pipeline Service Company; worked on-site in Valdez, Alaska
in
the CTG "Applications Management Group" managing the Alyeska Maximo work management system, featuring a "Gupta
SQL" database running on a Novell network.
- As a Systems Engineer; designed and implemented a Microsoft Windows network pilot project,
which
included a Multi-domain Network Topology, Backup Strategy Plan, C2 Security Plan, and Disaster Recovery Plan.
This pilot would eventually serve as the model for Alyeska's global network.
Skills used in this role include:
- VB
- Microsoft Access
- Maximo
- Novell
OWNER
RAW SOFTWARE & CONSULTING | 1990 - 1995
- A variety of custom software development and consulting projects in the states of Alaska and
Texas.
Skills used in this role include:
APPLICATION/DATABASE DEVELOPER
VECO | 1989 - 1990
- Developed and maintained the vessel tracking system that tracked and reported on over 1,500 oil
cleanup vessels during the Exxon Valdez oil spill.
Skills used in this role include:
- dBase III
- Clipper
- Paradox
- University of Alaska-Anchorage — Computer Science, 1992 - 1994
- Montana State University-Bozeman — Computer Science, 1990 - 1992
- Microsoft Certified Application Developer for Microsoft .NET
- Microsoft Certified Access Developer
- Microsoft Certified Visual Basic Developer
- Microsoft Certified Professional
- Microsoft Certified Professional + Internet
- Microsoft Certified Product Specialist
- Microsoft Certified Systems Engineer
- Microsoft Certified Solution Developer
- TCP/IP & Microsoft Internet Information Server Certifications
CONTRIBUTING AUTHOR
GOLD PARSING
SYSTEM
GOLD is a free parsing system that you can use to develop your own programming
languages, scripting languages and interpreters. It strives to be a development tool that can be used with
numerous programming languages and on multiple platforms.
While developing the back end GIS Mapping technology used by the City of Portland
for the first version of PortlandMaps.com, I ported the GOLD parsing system to VB.NET so that I could use it to
create a language called GISql.
GISql gave the City of Portland's development staff the ability to issue SQL-89
compliant statements, augmented with spatially aware types and expressions, allowing them to return spatial (map
images and feature attributes) joined with non-spatial table data. It was a revolutionary advance in querying
map
data that led to the creation of the GeoClarity product, and was featured
in Esri's Spring 2004 ArcNews Magazine.
COMPUTER WORLD — SEPTEMBER 2008
Can
Web 2.0 save BI?
SpatialKey was featured on the cover, and in an article entitled “Can Web 2.0
save BI?”
GISMONITOR — NOVEMBER 2006 & DECEMBER 2006
November
30, 2006
December
7, 2006
Interviewed in a two part series on technology topics and Geographic
Information Systems development.
ARCNEWS — SPRING 2004
ENABLING
THE IT ENTERPRISE WITH GIS FUNCTIONALITY
Featured in an article discussing GeoClarity, a product I developed while working
at
GeoNorth and used by the City of Portland.
HANDS ON CHATGPT — 2023
Co-hosted an event discussion with an audience of 70 attendees on ChatGPT,
demonstrating uses, prompt creation, and optimization.
PROGRAMMING AI (PANEL DISCUSSION) — 2019
Sat on a 3-person panel discussing AI and Machine Learning development tools
and techniques with a standing-room-only audience of over 100 attendees.
HACKATHON PDX — 2014
Sat on 4-person judging committee at a two-day hackathon event that hosted
over
40 teams focused on rapid development of mobile solutions.
GEOTECH EVENT — 2007
Gave a technical presentation to an audience of over 150 attendees, called
"Sharing API's" on developing computer systems and web services, and how best to expose application programming
interfaces to maximize cohesiveness across enterprise systems. This presentation also discussed typical uses of
XML and REST API’s to expose functionality amongst disparate corporate environments.
GEOTECH EVENT — 2007
Gave a technical presentation to an audience of over 100 attendees, called
"Maximizing Productivity Through Extensibility" on extensibility from the application development perspective.
The
presentation focused on the fundamentals involved in creating systems that support plugin architectures and
published interfaces.
NW GIS USERS CONFERENCE — 2004
Gave a technical presentation to an audience of over 30 attendees, called
"Enabling the IT Enterprise with GIS Functionality" which focused on developing GIS enabled enterprise level
infrastructures.
PRINCE WILLIAM SOUND COLLEGE (ADJUNCT FACULTY) — 1996
Taught a course called "Computers & the Internet", which gave an introductory
look at using computers in the emerging digital age.