RICHARD BOYD

11824  80th Avenue East

Puyallup, WA 98373-4761

253-906-6830; richard.v.boyd@comcast.net

 

Like challenge of solving problems

 

.NET

 

Dec 2012—Jun 2013

Rich Geographic Internet Applications Seattle, WA

Remote Project

 

Summary:  Convert project from Silverlight to Mobile Framework (Sencha) … VS2012 MVC4, Web API, OData, JSON, JSONP, Entity Framework.

Web Kiosk for University of Washington campus. Display assets … buildings, trees, piping, sewer, bollards, etc. Represent each asset visually and link to database for tracking, maintenance, deployment, monitoring. Allow Facilities crew to make onsite evaluation and instantly update central repository.

 

1.      Work remotely … RDC (Remote Desktop Connect), Skype, Join.Me.

2.      Convert web project from Silverlight to Mobile Platform using Sencha Touch.

3.      Install, debug, configure XAMPP Apache distribution as per instructions for running Sencha Framework.

4.      Install and Configure Faro Scene 3D software used to scan underground utility tunnels … in order to provide 3D Viewing facility of UW Utility Tunnels similar to Google Maps Street View.

5.      Faro runs as Java Servlet on Tomcat … Client calls via IIS … so configure Apache Tomcat Connector to redirect from IIS to Tomcat.

6.      Problems with ISAPI filter … switch to BonCode which is an IIS to Tomcat Connector … essentially upgrade from C++ to C#. Worked better … could now redirect calls from IIS to Tomcat to Faro 3D Server.

Faro 3D Stock Photo

Integrate SQL Server 2012 database running Windows Server 2012 on Domain #1 … server code running on Azure (Domain #2) … JavaScript Client on Domain #3.

1.      Use Microsoft’s Web API framework to build RESTful applications using VS2012 MVC4 project.

2.      Entity Framework to build CRUD services against database.

3.      Initially incorporate OData Protocol to standardize REST-based CRUD operations against disparate UW campus-wide resources exposed as data services.

4.      OData supports two formats … XML-based AtomPub and JSON. This was a Problem because cross domain requires JSONPSolution was to add third format via Custom JSONP Formatter.

5.      Drop OData approach when discovered Sencha only supported OData for SAP … so OData for anything else became a moot point.

6.      Standard way Sencha Controls want data returned is wrapped with additional info. Used Json.NET to Serialize data and JsonWriter to wrap it … then Deserialize Response. Doing this made the Queryable Attribute meaningless … further eliminating any chance of using OData.

7.      Create Azure website … publish VS2012 JSONP server code to Azure … test CRUD from C# client.

8.      Install Aptana Studio 3 as development environment for Sencha. Build simple Sencha test app using Ext.data.JsonP.request. JSONP request to Azure worked OK. After confirming that Sencha was consuming JSONP data from Azure server … next step was to use Sencha Command to build framework for Sencha MVC app to test JSONP using Sencha Data Stores.

Azure JSONP Call

Skills:  C# 4.5, VS2012, Azure Cloud, SQL Server 2012, LINQ, IIS, Web Services, ESRI, GIS Spatial Data, Entity Framework, Stored Procedures, MVC4, JavaScript, HTML5, CSS3, Sencha Touch, XAMPP, Firebug, ExtJS, jQuery, Aptana Studio 3, Windows 8 Professional, Windows Server 2012, Faro Scene 3D Software, NuGet Package Mgr., Json.NET, Fiddler.

 


Jun 2012 – Oct 2012

GeoEngineers Tacoma, WA

Web Applications Developer

Remote Project

 

Summary:  GeoEngineers specializes in environmental, ecological and geotechnical solutions for the Water and Natural Resources, Transportation, Energy, Federal and Development markets. I was hired for a casual, on-call position to develop desktop, web and/or mobile applications … integrate applications with databases and GIS applications … develop web services, and enterprise solutions using ESRI’s Adobe Flex API, JavaScript API, and Microsoft Silverlight API.

1.      VPN in remotely for Office of Species Conservation (OSC) project, which was a planning tool to allow comparing and prioritizing fish habitat restoration for the State of Idaho in the Upper Salmon River Basin.

2.      Project initially prototyped using DotNetNuke …I explored and prototyped conversion to Visual Studio 2010 MVC4 and LINQ / Entity Framework for data.

3.      Used Expression Web 4 to do basic layout.

4.      User Validation in MVC4 to control behavior depending on roles was important aspect for this project.

5.      I researched and implemented all these technologies in first 3 weeks … but by that time GeoEngineers felt it was all too much new technology to “risk” on the short timeframe allowed.

6.      GeoEngineers was new to MVC style, so they decided to fall back to their “comfort zone” … i.e., not use Razor view engine, go back to *.aspx rather than *.cshtml, write SQL rather than use Entity Framework, stick with JavaScript/HTML/CSS approach, cut-n-paste code from prior ASP.NET project to provide Role management.

7.      Complete this project via “old style” technology stack.

OSC Home

OSC Tech Docs

Oregon Department of Environmental Quality (DEQ) was conducting Cleanup Training Seminars focusing primarily on petroleum cleanups. I built website to announce, promote, and register for this seminar.

1.      Develop code as per Use Case document.

2.      Insert Google Maps, Pushpins, GeoLocation, Hover info Popups.

3.      Accept user registration info.

DEQ Cleanup Training Seminar

Puget Sound Energy (PSE) project.

1.      Convert PDF of PSE Spill Response Field Report to JavaScript/HTML/CSS online web form.

2.      Initially import PDF into Word Doc … and then into Expression Web.

3.      First Pass -- Timed myself … 11 minutes starting from scratch … to create & publish to web … the converted forms for the entire PSE PDF doc … using Expression Web for auto conversion.

4.      Looked great … but HTML was pretty “Ugly”!

5.      So back to building JavaScript/HTML/CSS equivalent form.

6.      Layout was biggest issue … HTML + CSS is not nearly as user friendly and precise as using XAML.

PSE Spill Response Field Report - page 1

PSE Confirmation Samples - page 3

Skills:  C# 4.0, VS2010, SQL Server 2008, LINQ, Expression Blend 4, IIS, Web Services, ESRI, GIS Spatial Data, Entity Framework, MVC4 Roles, XAML, JavaScript, HTML, CSS.

 

May 2011 – Dec 2011

InfoHarvest  Seattle, WA

Remote Project

 

Summary:  InfoHarvest:  Developed visual tool that assists making complex decisions. Current work is in conjunction with the Redlands Institute which conducts applied research into complex environmental and social systems using GIS and associated technologies. Core decision making technology is written in VB. Goal of this project is to update to C# and current .NET Framework. Convert WinForms to XAML. Use ObservableCollection to decouple bindings. Problem: Dynamically select database at runtime, but LINQ needs to do database mapping at compile time. Solution: ADO.NET creates DataSet … then query via LINQ to DataSet.

 

Screenshot of “decision” in VB6 version

Decision in VB6 version

 

  1. Create light version of InfoHarvest’s Multi-Criteria Decision Analysis object to replace current wrapper for COM WDObj decision analysis DLL.

  2. Convert VB 6 code to C# 4 … WinForms to XAML.

  3. Decouple binding between View and Model using ObservableCollection.

  4. Problem: Database selected at runtime, but LINQ needs to do mapping at compile time.

  5. Slow solution: System.Diagnostics.Process to fire SqlMetal.exe in order to create *.dbml mapping file. Similar process to create *.cs file from *.dbml. System.CodeDom.Compiler namespace to dynamically compile *.cs file and return compiled assembly. Dynamically load assembly.

  6. Fast solution: ADO.NET creates DataSet … then query using LINQ to DataSet.

  7. List of tables in database from which user selects one table.

  8. Populate list of column names from table.

  9. Load Decision Analysis Model and use Regex to match Model columns to Database columns … allowing for white space, capitalization, etc.

  10. Filter to select columns with unique entries that can be used as Foreign Keys.

 

Skills:  C# 4.0, VB6, VS2010, SQL Server Compact, LINQ, WPF

 

 

Mar 2011 - Feb 2012

Weston Solutions Seattle, WA & Rancho Cucamonga, CA  (via Techstaff Seattle, WA)

Remote Project

 

Summary:  Cucamonga Valley Water District:  Needed to add a section to their website where a customer could enter a Service Request and track its Status. A Silverlight app was built that is embedded within current site. Bing Map allows user to locate request. GIS to Reverse Geolocate map point/street address. Web Service backend for Request Categories, Questions, Answers, Instructions, Comments. Confirmation Page summarizes Request. Email provides link for customer to monitor Status of request.

 

CVWD Home

 

  1. Build Silverlight UI for Cucamonga Valley Water District (CVWD) web based Customer Requests System that facilitates public entry and tracking of service requests.

  2. Embed Silverlight app within current CVWD website.

  3. Address entered in text field … Geolocate  to translate Street Address to Longitude/Latitude and display Pushpin on Bing Map.

  4. Pushpin dropped on Bing Map … ReverseGeolocate to convert Longitude/Latitude to Street Address displayed in text field.

  5. Convert ESRI Shapefile to SQL Server 2008 Spatial GML format using Shape2SQL tool.

  6. Extract boundary from imported ESRI Shapefile.

  7. Implement algorithm, using polygon created from boundary points, to calculate if an address lies within or outside CVWD Service Area (could have done this in SQL Server 2008, but client runs 2005 which does not have Spatial features).

  8. Alert user if address falls outside CVWD Service Area.

  9. Web services to select applicable problem descriptions, present list of services, provide clarification questions, capture customer answers.

  10. Validation via Silverlight ValidationSummary control and bindings Mode.

  11. Email confirmation (via Web Service) with unique ID sent to customer so request status can be tracked.

 

Skills:  Silverlight 4.0, C# 4.0, VS2010, SQL Server 2008 Geospatial, LINQ, Expression Blend 4, SketchFlow, Bing maps, IIS, Web Services, ESRI Shapefiles, GIS Spatial Data.

 

 

Jan 2011- Mar 2011

Intellacuity  Dallas, TX  (via Consultis Dallas, TX)

Remote Project

 

Summary:  Create application for Capstone Metering (CM) to monitor and manage their smart water meter. Business Analytics has Adobe Flex interface, so UI built in Flex. Prototype in SketchFlow. Read data from SQL Server 2008 … parse with C#, LINQ, RegEx. Create web services (*.asmx) in VS2010. Construct water meter widget using ActionScript. Pushpins and Info popups on Google Map. Live WebCam. iPhone-like display.

 

Smart Meter

 

  1. Build prototype Dashboard for real time management of water systems (residential & commercial).

  2. Prototype process using SketchFlow (Expression Blend 4).

  3. Read data from SQL Server 2008 … parse with LINQ.

  4. Create Web Services in VS2010.

  5. Adobe Flex 4 UI consumes Web Services.

  6. Construct water meter widget using ActionScript.

  7. Populate PushPins on Google Map via Google Flash API.

  8. PushPins can popup an InfoWindow using Flex DataGrid to display meter data … with links to Reports, live WebCam, and meter data displayed on face of iPhone-like display surface.

  9. Data Forms popup to capture user input.

 

Skills:  Adobe Flex, ActionScript, C#, VS2010, LINQ, Google Map, Expression Blend, SketchFlow, SQL Server 2008, Web Services.

 

 

Fall 2009—Nov 2010

Rich Geographic Internet Applications Seattle, WA

Remote Project

Directory Research & Development

 

Summary:  Web Kiosk for University of Washington campus. Display assets … buildings, trees, piping, sewer, bollards, etc. Represent each asset visually and link to database for tracking, maintenance, deployment, monitoring. Allow Facilities crew to make onsite evaluation and instantly update central repository. Original project in Open Laszlo + Google Maps. Convert to Adobe Flex + ESRI Maps. Because of performance (thousands of icons), convert to Silverlight + Bing Maps.

 

RGIA Campus

 

  1. RGIA builds a rich interactive mapping application (RIA) to locate and plot assets and link to databases for tracking, maintenance, deployment, and monitoring. The AssetMapper application is targeted for the University of Washington.

  2. Establish communication between multiple Flash instances.

  3. Setup  Red5 Media Server an open source Flash Server.

  4. Build Flex 3 and ActionScript 3 applications as templates for connecting to Red5 shared objects.

  5. Concept Maps as tool for capturing Architecture, Design,  Agile Planning and Use Cases.

  6. Expression Blend 4 and  SketchFlow to prototype UI.

  7. Setup IIS as web server … and TFS (Team Foundation Server) as code repository.

  8. Initially convert OpenLaszlo + GoogleMap application to Flex/Flash/ActionScript + ESRI Maps.

  9. Convert to Flex4/FlashBuilder 4.

  10. Convert Flex to Silverlight + ESRI Maps because of performance and wider range of components.

  11. Flex is single threaded … Silverlight is multithreaded. Use threads available with  Silverlight to run processes in BackgroundWorker threads. Invoke behavior back on UI thread via  Deployment.Current.Dispatcher.

  12. Shibboleth single sign-on for security.

  13. Modify basemap to incorporate both ESRI and Bing mapping … via Silverlight API.

  14. Parse XML query results using LINQ and RegEx.

  15. From parsed XML, render Points, Lines, Polygons on map layers to represent features such as trees, bollards, water/sewer/high pressure lines, buildings, parking lots.

  16. Build and Consume Web Services via WCF 4.

  17. Animations and Transitions via XAML.

  18. F# to explore dynamic routing of King County bus routes.

  19. Silverlight animations, sliding panel, video brush.

  20. Switch out Bing basemaps,  drop points on map, right mouse context menu, popup info window.

 

Skills:  VS2010, SQL Server 2008, Silverlight 4, XAML, LINQ, RegEx, C#, F#, WCF, Web Services, WPF Expression Blend 4, SketchFlow, TFS, ESRI Maps, Bing Maps, Shibboleth … Java, Flex 3/4, Flash, ActionScript, Red5 Media Server, Tomcat.

 

 

Sept 2003--Feb2004

InfoHarvest  Seattle, WA

 

Summary:  WOPR:  Bureau of Land Mgmt developed plan to manage Oregon lands. Build website to gather feedback/comments from residents so that  InfoHarvest  Decision Analysis could be used on results to enable fine-tuning of plan. MSFT:  Build website for Microsoft, using Decision Analysis techniques, to monitor Microsoft vendor/partners in order to determine needs/wants/issues.

 

  1. Build website to explain Draft Environmental Impact Statement (DEIS) for BLM's Western Oregon Plan Revision. Website tracked user identity and feedback via Interactive Map Browser and comments users made in online documents. C#, SQL Server 2005, ASP.NET.

  2. Upgrade ASP HTML controls to Server (and HTML) controls for ASP.NET 2003.

  3. Refactor client side script to C# code-behind.

  4. Develop web application for Microsoft to monitor vendor/partners. Data access for controls via ADO.NET DataSets. Automate SQL Server database table generation using DataSet that was populated, via Data Adapter, from Excel spreadsheet description.

  5. Emulate database tables via creation of XML files.

  6. Manipulate and extract data via DataViews.

  7. Author Stored Procedures and use them to create DataAdapters.

  8. SQL Table creation.

  9. XSLT Transform of XML files for input to Excel.

  10. Capture database script changes via VS.NET Database project.

  11. Hyperlink and Template columns.

  12. Web Tree Control. Deploy projects to Web.

  13. Mentor developers on upgrade path using Visual Studio .NET 2003.

 

Skills:  C#, ASP.NET, VS2003, SQL Server 2005.

 

 

July 2003--Sept 2003

WIRB  Olympia, WA

 

Summary:  WIRB:  Research and Review of FDA related products, processes, regulations. Ensure compliance. Early adoption of beta VB.NET to automate process. New system of 500,000 lines of VB.NET code suffered from severe memory leaks that WIRB had worked with Microsoft for about six months, and were unable to solve. I debugged the system and found 163 classes that were creating instances which were never garbage collected. Fix resulted in considerable improvement in performance.

 

  1. WIRB does independent evaluations of tests involving drugs, vaccines, and medical devices for health care industry.

  2. WIRB was early adopter of beta VB.NET to convert massive manual process for tracking and coordinating documents and processes. New system had about 500,000 lines of code and 36 GB of data in SQL Server … but had memory leak performance problems.

  3. WIRB worked first half of 2003 with Microsoft to solve this, but was unsuccessful. Microsoft PerfMon had problems with .NET 1.0 Framework.  DevPartner Studio memory profiler not available until Fall 2003.

  4. Solution: Upgrade BIOS in obsolete PCs and setup automated test framework using WinBatch + .NET Memory Profiler to debug application in both 1.0 and 1.1 .NET Frameworks.

  5. Found 163 classes that created thousands of instances of custom controls not being released (Garbage Collected) because of way application was using cloning.

  6. Debug and fix other tasks using Visual Studio .NET 2003.

 

Skills:  VB.NET, VS2003, SQL Server, PerfMon, Memory Profiler

 

 

Apr2003--Jun2003

ScienceOps Lynnwood, WA

(contract via Saltmine  Seattle, WA)

 

Summary:  ScienceOps:  PhDs only consulting firm that develops algorithms and tackles complex problems that no one else in the area would be able to solve. This particular project involved calculating the optimal layout for long strips of 2 inch wide electrical floor heating elements … in order to cover the most floor area with the least waste. The client was off-shoring this work to teams in India, to solve manually … which resulted usually in a 24 hour delay. Client wanted computerized system to solve problem “instantly” while customer was still in showroom. Solution prototyped/solved in Mathematica. Mathematica solution then converted to C# and put on the web.

 

  1. Convert complex algorithms from Mathematica 4.2 to C#.

  2. Develop optimization algorithms in Mathematica.

  3. Mathematica lacked the rich data structures of C#, thus often becoming a roadblock … requiring rethinking the process.

  4. Analyze performance problems in unmanaged .NET C++ code that had originally been developed in Mathematica.

  5. Data representation in .NET XML.

  6. Extensive debugging of .NET C# and C++ code.

  7. Evangelize need for infusing software engineering principles into client's development process.

  8. Proofread, analyze, and write technical reports.

  9. Begin development of technical websites using WebMathematica.

 

Skills:  .NET, C#, C++, XML, Mathematica.

 

 

2003

InfoHarvest (part-time) Seattle, WA

 

Summary:  Criterium DecisionPlus software applies structured methodology to decision making. Originally written in older VB, it needed upgrade to new .NET Framework. Partial upgrade of key components … enough to get system functional. 

 

  1. Partial upgrade of  InfoHarvest's  Decision Analysis application from VB6/ASP to VB.NET/ASP.NET.

  2. Develop multi-tier system including ASP.NET WebServices and ASP.NET Application, using MS SQL Server database as backend.

  3. Upgrade existing VB6 modules to VB.NET.

  4. Convert ADO to ADO.NET.

  5. Ensure safe execution of single-threaded VB6 COM components within .NET.

 

Skills:  C#, VB.NET, ASP.NET, ADO.NET, VB6, COM, Web Services, SQL Server.

 

 

Nov2002--Jan2003

Mircosoft Redmond, WA

(contract via Saltmine  Seattle, WA)

 

Summary:  Microsoft had client who wanted to link their Java environment to a .NET client. Several developers were contacted about this project, but decided the timeframe was too short. I accepted the “challenge” and brought in a PhD friend who helped me build a .NET client that used SOAP to communicate with a Java server running the standard Java Pet Store demo. Java running on RS6000 using AIX and DB2. Much coding done in Notepad while browsing W3C standards.  Finished on time. A real challenge.

 

  1. Develop prototype for Microsoft to demonstrate WebService used by .NET Client to communicate with Java Server.

  2. SOAP to send XML messages from Win2000 .NET Client, via HTTP, to IBM WebSphere EJB Application Server running AIX on RS6000, which queried DB2 Database using JDBC ... pass result back to.NET Client.

  3. Initial prototyping done using Redhat Linux 7.2 on WinX Intel box, then ported to IBM's AIX Unix on the RS6000.

  4. Session and Entity Beans developed on server side.

  5. Visual Basic.NET and ASP.NET employed on client side.

  6. JSP used for testing WebService.

  7. Considerable debugging because of Application Server Deployment bug.

 

Skills:  VB.NET, Java, JDBC, JSP, Web Services, SOAP, XML, HTTP, WebSphere, AIX Unix, RS6000, DB2, Redhat Linux, Session/Entity Beans.

 

 

Jan2001--Mar2002

Advanced Biometrics  Tacoma, WA

Mgr R&D / Architect / Developer

 

Summary:  Advanced Biometrics:  Patent for using infrared to read subsurface blood vessels in palm of hand. Essentially a subsurface fingerprint of the hand. Think of those hand scans in science fiction movies. Between time I was hired, and time I started, the technical people left the company. I suddenly became in charge of technology. Built team to develop algorithms for pattern recognition of combination of surface features of palm along with subsurface blood vessels. Get prototype working using Microsoft Visual C++. By that time, poor management of company finances resulted in lawsuits. Company was bought out and it moved to another state.

 

  1. Build and manage new software team for biometric identification of hand using infrared and pattern recognition.

  2. Lead development of proprietary pattern recognition algorithms and lead team development process using modified eXtreme Programming methodology.

  3. Architect new application framework.

  4. Debug undocumented code for C/C++ embedded application using Microsoft Visual C++, Metrowerks  Codewarrior, and Understand For C++.

  5. Explore using Python.

 

Skills:  C/C++, Python, Biometrics, XP