Bio
Experience
-
-
Consultant, Independent Software Developer
-
Jul 1997 - Present
Consulting: analysis and design of applications and algorithms.Innovations: interactive computer graphics tools.Development: producing plug-ins for graphic design products.
-
-
-
-
United States
-
Financial Services
-
200 - 300 Employee
-
Chief Architect
-
Jan 2022 - Feb 2024
My role had the following facets: (1) BEING A SCOUT -- watching and assessing new opportunities (gold mines) and looming threats (land mines), and then advising and guiding other stakeholders. (2) INNOVATING -- designing and implementing new solutions when a needed solution didn't already exist. (3) BUILDING BRIDGES -- organizing technologies into solutions, applying solutions to opportunities and problems, and connecting people to people. (4) GROOMING TECHNOLOGY INITIATIVES -- creating and curating technology initiatives from inception to practice.My Projects:Created and ran an architecture council. We met weekly in "Heartbeats" to (a) nourish council members with knowledge so they, in turn, could nourish their respective scrum teams, and (b) to be alerted to technical or architectural issues discovered in the work of the scrum teams and needing resolution and coordination.Designed and shepherded solutions for 4 major technology initiatives: (1) architecture for managing client-onboarding workflow between automated and human-centric stages, (2) migrating from DB2 to SQL Server, (3) implementing CI/CD to improve efficiency in Dev & Test, and reduce errors in deployment, and (4) migrating a C# code base to .NET 8 for running on Linux and eventual containerization.Analyzed dependencies for several dozen tech initiatives and worked with the CTO, Product Managers, and Development Managers to prioritize and plan the implementations.Worked closely with the CTO to provide technical intelligence for M&A activities.Collaborated with the Director of Marketing to determine use cases and requirements for Business Intelligence functionality beneficial to internal and different categories of external users.
-
-
Applications Architect
-
Mar 2020 - Jan 2022
Integrating disparate technology stacks (centered on .NET and Java) for backend and user-facing functionalities, abstracting common functionality and data stores, and enriching the communications between them. Leveraging AWS and RabbitMQ technologies to integrate 3rd party technologies such as Adobe Sign and Salesforce into our client workflows.
-
-
United States
-
Computer and Network Security
-
200 - 300 Employee
-
UX Architect
-
Jun 2018 - Feb 2020
Guided Development, Product Management, and Marketing groups towards consistent and high quality user experience choices. Hired and trained UX Designers to be proficient in mapping techniques, usability testing, information architecture, prototyping, and interaction design.
-
-
Sr. Manager of Development
-
Dec 2015 - Feb 2020
Cultivated and lead a full-stack team of developers to help define, implement, and deliver business solutions in the security industry. Mentoring and working with UX Design, I made sure we had the right (effective and consistent) appearance and behavior for the stories we played. Worked daily with Product Management and Project Management to make sure we planned and coordinated our work to deliver the right solutions at the right time. Implemented an on-boarding experience for new hires, taking them through experiences in Sales, Support, and Testing to broaden their base and accelerate their productivity. Investing in futures, I led intern developers through mutually beneficial projects and grow them into successful, full-time software engineers. Built breadth and depth in the developers by (a) leading book clubs, (b) organizing and promoting a Food-For-Thought lecture series, and (c) encouraging and guiding submissions for many successful presentations at professional conferences. Created a Knowledge Base for capturing and sharing know-how with our systems and processes. Organized and led multiple initiatives for expanding our product offerings (including integrating a 3rd party shopping cart) and transitioning to newer versions of technology stack components (including Python version 2 to 3).
-
FamilySearch
-
Orem, UT
-
Member of Technical and Creative Staff
-
Oct 2011 - Dec 2015
-
Orem, UT
Was a key participant in a multi-disciplinary contextual inquiry to determine how people gather, curate, and share family history information with their mobile devices. From the data gathered and subsequent analyses, created prototypes and designs for numerous technologies used to launch the mobile software team. As a founding member of that team I helped develop the caching technologies (for both Android and iOS) to enable effective use of the apps through periods of being disconnected from the network.Also played a key role in creating a 3PI (3rd Party Ingest) tool. Worked closely with the user of the tool to establish requirements, design and usability test (through multiple iterations) the application. Worked with the ingest team to flesh-out the functionality. Tool was successfully used to ingest the 1940 US Census records within hours of their becoming available.
-
Copper Pi
-
Utah
-
Co-founder, Chief Engineer and Technical Director
-
Oct 2010 - Dec 2011
-
Utah
Created iOS apps for storytelling and creating and sharing virtual snow globes.
-
LANDESK Software
-
South Jordan, UT
-
Sr. Engineer, Team Lead
-
May 2008 - Oct 2010
-
South Jordan, UT
Redesigned and implemented large portions of a new UI for our Software License Monitoring (SLM) product. Worked closely with a Human Factors team for contextual inquiry and use cases. Developed a domain model and analyzed functional and feature requirements to determine optimal workflows for the user. Coordinated between Engineering Management, Human Factors, Product Management, and Customers to establish and preserve a vision for what the product needed to do and how it needed to do it, as well as our internal processes for designing and implementing the product. Learned and evangelized the WPF/XAML framework and the Expression Blend tool, and used these to create new, animated navigation widgets. Created and implemented new algorithms for calculating license compliance and optimal license consumption — functionalities that greatly simplify the human efforts of minimizing software purchase costs while maintaining license compliance. This work resulted in U.S. Patents #8,982,129, #8,825,651, #8,561,131, and #8,504,579.Designed and implemented a hand-held application (using Windows Mobile 5 on a Symbol device) for capturing inventory data (through barcode scanning and/or manual entry) and managing inventory data by communication with a server. Worked closely with a Localization team to adapt an established process for internationalizing and localizing the application. Also developed a technique for adding column-based sorting to tables on Windows Mobile 5, which resulted in U.S. Patent #10,235,216.
-
Fast Search & Transfer
-
Draper, Utah
-
Sr. Engineer
-
Jul 2006 - May 2008
-
Draper, Utah
Worked with a small team to create an Ant/AntUnit-based test framework to enable the writing and build-time-running of tests and test suites for an existing body of search engine subsystems. I worked specifically on a module that would start processes and stop them (with progressive degrees of firmness, along with any orphaned processes) for both Windows and Linux.Developed a charting service with a plug-in architecture. This allows a consistent API to be presented to the developer, while affording the ability to plug-in different charting providers from open-source and commercial vendors (such as JFreeChart, ChartFX, etc.). New/additional chart types may also be plugged-in to extend the range of a given charting provider, and there may be multiple charting providers plugged-in at once (for a best-of-breed solution). The system is configurable through Spring beans, enabling the developer (or user) to specify such things as charting provider(s), chart type(s), and color schemes and themes.Developed an architecture for creating similarity vectors which capture distinguishing characteristics of searches a user may perform, and then using a search engine as a pattern matcher to find similarity vectors when performing new searches. With this system, a user can characterize topics of interest and, when performing searches, be alerted to related topics. Although currently implemented for search-based topics, the similarity architecture is easily extensible to otherentities such as finding similar users, common user preferences, domain experts, entertainment and media preferences, and recommending add-on sales.
-
Altiris
-
Lindon, Utah
-
Sr. Engineer, Development Manager
-
Dec 2002 - Aug 2005
-
Lindon, Utah
Created a GUI-based application for client-side monitoring and modifying of systems management tasks, spanning multiple plug-in solutions. Resultant application allows end users and administrative users the ability to view and customize behaviors to meet end-user needs within management objectives. Designed messaging system to allow timely inter-process communication of events and statuses. Designed and implemented a loosely-coupled file/folder watcher to quickly and efficiently react to changes in key files reflecting task state. Resulting product has been praised by Apple, and was very well received by customers; it has become a model for other development groups within the company.Developed and released product for performing scheduled inventories of hardware, software, and networking configurations/installations of Macintosh clients in a managed environment. Hired initially as lead engineer and joined the project near the point of code-complete, but quickly assumed additional roles of development manager and product manager to coordinate coding, testing, defect prioritization, documentation, and graphic design work leading to product release. Managed programming/testing teams in India, and participated in the writing, testing, debugging, and fixing of C++ code, algorithm creation and optimization, and worked directly with red-carpet customers during testing and deployment. For subsequent release cycle, coordinated the migration of code base from Metrowerks CodeWarrior to Apple’s Xcode IDE, and from PowerPlant to Carbon/Cocoa frameworks.
-
Cogito Corp
-
Provo, Utah
-
Sr. Engineer
-
Feb 2002 - Aug 2002
-
Provo, Utah
Extended earlier developed concept of hybrid state machines by adding hierarchical component. Resulting meta state machine manages a stack of state machine contexts to allow traversing into and out of nested states. By subclassing a few key classes, the user of this tool can implement table-driven behaviors for parsers, translators, and event sequence handling. More importantly, the hierarchical aspect allows developers to iterate between design and implementation, using a divide-and-conquer approach to solving large and complex problems. Among the benefits of this system are (1) behavior is modeled and easily modified in a conceptual design space rather than low-level code, (2) logic errors are more easily isolated and repaired, and (3) code is more maintainable because it is factored into smaller pieces. Used this tool to implement file format translator. There are several additional applications of this tool being contemplated.
-
WhizBang! Labs
-
Provo, Utah
-
Sr. Engineer
-
Nov 2001 - Feb 2002
-
Provo, Utah
Working in Java, developed a multi-threaded application which seeks to find URLs for a list of companies. Two (at times conflicting) goals were to have high confidence that the correct URL is in the search results set, and to get as many URLs as possible to later crawl and extract company names. Further constraints included having a finite pool of queries that could be issued (thus the need to conserve available queries), being unable to get more than 1000 search results from any single query, and having only night-time access to the meta search engine. Resulting application is long-running, prevents over-filling of queues by monitoring free memory and task-switching when necessary to a process mode (queue consumption), and maximizes query issuance throughput during allowable hours. Running in parallel with a general crawl of the Web with a farm of crawlers that had a month’s head start, this single-server application achieved a sustainable 4% yield of URLs unique to the general crawl. In the process, I brought down Google's site.
-
fonix
-
Draper, Utah
-
Advisory Software Engineer
-
May 2000 - Oct 2001
-
Draper, Utah
Developed a graphical language and method of representing both control-flow and data-flow simultaneously on a display. Icons were used to represent atomic functionalities and variables. Programs representing molecular-level functionality could be represented by a single (explodable) icon which could then be used in subsequent programs, thus giving a navigable hierarchy of program structure, agreeable to a wide range of developer talents involved in creating speech applications. Also developed a state machine pattern for accepting elements of a collection of inputs in a random order and transitioning upon having received all of the required elements.
-
Switchsoft Systems Inc - VPNX
-
Lindon, Utah
-
Project Manager, Consulting Engineer, UI Czar
-
Jan 1999 - May 2000
-
Lindon, Utah
Using C++ and MFC, designed and implemented all user interface components and internationalization/localization components for a switch discovery functionality hooked into the HP OpenView network management platform. Among the components created was a scheduler for periodic discoveries of the network. Became project manager and coordinated all development efforts involving programming on Windows and porting to multiple flavors of Unix, testing, and documentation.
-
HIGHLAND ELEMENTARY SCHOOL
-
Highland, Utah
-
Elementary School Math Teacher
-
Sep 1997 - May 1998
-
Highland, Utah
Taught math to second-graders. Supplemented the mandated curriculum with self-developed materials and techniques to achieve student proficiency with addition and subtraction "facts" up to 25.
-
Novell
-
Orem, Utah
-
Research Scientist
-
Oct 1995 - Jun 1997
-
Orem, Utah
Developed a technique, using the S (saturation) component of the HSV color model, to reflect the relative busy-ness (or lack thereof) in a schedule. Blocks of time (months, weeks, days, hours) are shown in a display, and tasks are superimposed on that display as overlaid blocks. For each task, there is a ratio of time required to time available to do the task. Taking this ratio as a fraction and mapping that to the saturation of a color, those tasks for which there is less extra time are more intensely colored (saturated) whereas those tasks for which there is more extra time are more pastel in color. This technique scales to different sizes of time, updates the colors with the passage of time, and reveals at-a- glance the relative busy-ness/flexibility of one’s time. This technique can be generalized for managing a range of other finite resources. This work resulted in U.S. Patent #6,064,974.
-
-
Research Scientist, Manager
-
Aug 1992 - Oct 1995
-
Orem, Utah
Developed an hybrid state machine for managing the complexity of the range of UI gestures (through mouse, keyboard, and stylus) involved in interactive drawing tasks. Developed an event journaling/replaying capability to facilitate debugging code and design of such state machines. Used these developments to create a freeform curve drawing tool which was both interactive (typical of so-called “pen” or Bézier control-point-placing tools) and direct (typical of so- called “pencil” tools). Because frame rates dropped below the fusion frequency (due to O(n2) curve-fitting), developed a recombinant technique for augmenting an existing curve with an additional sample point. Results were mathematically identical to a complete refit of all data, but were achieved in constant (O(1)) time, allowing arbitrarily long paths to be fit at non-degrading frame rates; this resulted in U.S. Patents 5,694,535 and #5,731,820. Built upon these developments to produce a multi-segment drawing curve drawing tool capable of single-stroke creating, back-tracking, and redefining.Created more than 60 MOIs.
-
WordPerfect Corporation - Macintosh Group
-
Orem, Utah
-
Applications Programmer
-
Mar 1990 - Aug 1992
-
Orem, Utah
Working in 68000 assembly, adapted computer vision techniques for boundary tracking to find and follow edges in a raster image. Such edges were initially represented as chains of pixels. Developed a curve-fitting technique (based on least-squares error) to fit sequences (with endpoint tangency constraints) of pixel chains into a single segment Bézier curve. Developed a technique to segment pixel chains into regions most amenable to smooth and accurate fitting with piecewise-continuous Bézier segments. Results were significantly more accurate than Adobe Streamline, which was the predominant autotracing product at that time. Developed another technique to change the tightness of fit (as well as the complexity of the Bézier sequence) as a post process, in real time (on a Motorola 68020 running at 25 MHz), in response to a user’s manipulation of a slider widget; this resulted in U.S. Patent #5,940,083. Developed user-guided tracing in which the boundary tracking responded to hints provided by a user, in real time, to resolve branching decisions. With this tool, the user could draw a path close to a complex boundary and the system would track the actual boundary to the extent specified by the user; this made autotracing more selective and controllable, through direct manipulation.
-
Xerox
-
El Segundo, California
-
Intern Programmer
-
Jun 1985 - Aug 1985
-
El Segundo, California
Working with a proprietary 42-bit, partially parallel microcode language, developed an application which sent various test patterns across a bus and then compared against the received signal to verify circuit path integrity or else isolate shorts and opens; this application repeatedly saved hours of time debugging with a logic probe.Tasked with adding comments to a large microcode application written to perform boot-up channel diagnostics; rewrote major parts of it, created a structure to facilitate maintenance, added functionality, improved performance, and reduced the footprint.
-
Education
-
1987 - 1989Brigham Young University
M.S., Computer Science -
1982 - 1987Brigham Young University
B.S., Computer Science (Minor in Mathematics)
Suggested Services
This profile is unclaimed. These are suggested service rates with 0% commision upon successful connection
Industry Focus. “Computer Software”
Looking to Create a Custom Project?Get StartedNeed a custom project? We'll create a solution designed specifically for your project.
References
Social Profiles
Community
You need to have a working account to view this content. Click here to join now -