I've worked in numerous industries but have always been a process engineer. Stuff comes in, stuff gets transformed, stuff goes here or there, and stuff comes out. The hows and whys change but I learn the details through training, research, and interviewing subject matter experts. The "stuff" might be wood pulp, fluid in different states, heat, business data, manufactured items, vehicles, people, parts, tasks, cargo, or luggage but it's all still "stuff." The process of discovering, mapping, measuring, characterizing, documenting, automating, simulating, rearranging and optimizing the process of moving it around is more consistent than you'd think in different situations and industries.
Systems Analyst is the most general term for a person who investigates how concepts, activities, and data relate and interact to form a cohesive larger entity. A Process Analyst will examine the flow if information and material through a defined collection of operations and transformations. A Business Analyst will examine the customer's needs and requirements and will consider the economic aspects of all factors.
I've designed and implemented systems and parts of systems for a wide variety of applications in multiple industries. I've worked in all capacities as part of large and small teams and as a sole practitioner. I've developed enterprise-level business process automation systems, systems for real-time industrial control, real-time operator training, large- and small-scale analytics, and design and decision support. I've developed tools which improve the accuracy, robustness, and speed of development of all of these as well as the delivered systems. I've designed, implemented, tested, delivered, and maintained software on a project, program, and product basis.
- Node.js - Loopback, Bluebird Promise Library, Lodash
- HTML/CSS - Bootstrap, Sass/SCSS
- SQL/MySQL - Oracle, web, open source, MS Access
- MongoDB - NoSQL database
- C/C++ - Borland, Microsoft, DEC
- Java - jUnit, Cucumber, Mockito, Selenium
- Pascal/Delphi - Borland, Microsoft, DEC
- FORTRAN - Gould/Encore, DEC, Microsoft
- Python - Open Source
- R - Open Source
- SLX - Proof, GPSS/H
- FileNet WorkFlow - scripting language for IBM FileNet BPM / ECM solution
- BASIC - multiple platforms
- Assembly - Intel, Motorola
- PHP - web, open source (minimal)
- GPSS/H - PC (minimal)
- C# - Microsoft (minimal)
- Serial (RS-232, RS-485) - numerous hardware devices for control system and display I/O
- TCP/IP - direct management of low-level packets in real-time systems
- DECMessageQ - real-time control systems
- High-Level Architecture (HLA) - coordination protocol for distributed, human-in-the-loop simulations
- Memory Sharing - with mutex locking, on PC and Gould/Encore
- File Exchange - CSV, Binary, XML files on mapped hard drives with mutex lock files
- Database Polling - read/write to Oracle databases with mutex locking
- Screen Scraping - read/write to legacy mainframe computers through text-based terminal commands and text retrievals and insertions
- Dynamic Data Exchange (DDE) - control Microsoft products like Word and Excel to create and modify documents under control of external programs
I've worked as an analyst and designer in customer-facing roles for most of my career. I work with customers to understand, document, and quantify their processes and identify functional and non-functional requirements, then work alone or with technical teams to provide solutions in the form of recommendations, new or updated software systems, or training. I've almost always worked in an Agile, iterative fashion and earned several certifications in Scrum (CSM, CSPO, CSD) to support those processes explicitly.
- Process Discovery
- Domain Knowledge Acquisition
- Subject Matter Expert (SME) Interviews
- Data Collection
- Requirement Elicitation
- Requirements Traceability
- Requirements Management
- Conceptual Modeling
- Meeting Facilitation
- Design, Technical, and User Documentation
I have led and participated in numerous process discovery efforts. This has involved guided and unguided walkthroughs, review of drawings and documentation, research, and interviews of Subject Matter Experts (SMEs).
I've collected and managed the collection of data using a wide variety of methods in many different environments. Techniques used include SME interviews, real-time and historical electronic data capture, video (with post-observation breakdown), on-site manual survey and checksheets, batch and sample measurements, calculations, interpolations, and logical deductions.
I've written and employed both continuous and discrete-event simulations through most of my career. I've written my own simulation frameworks in general-purpose, high-level languages and a dedicated simulation language and have also used in-house, custom-designed simulation tools to carry out many kinds of analyses. I've worked with large scale commercial software packages as both a user and as a developer and release manager, one of which was a simulation tool for the paper industry.
Operations Research seems to come in several flavors. I spent half my career involved with the one that skews heavily toward simulation. We incorporated large input data sets that had to be analyzed, conditioned, and rationalized. We ran multiple trials using both parametric and Monte Carlo variations. We statistically analyzed huge volumes of output data and created a wide range of visualizations and numerical outputs using spreadsheets, databases/SQL, and custom tools. All efforts were in support of optimizing designs, process flow, time service, readiness, and resource usage including cost and staff.
I wrote control systems for the steel and HVAC industries. The systems operated in real-time for high-temperature industrial applications and building control systems. Different products required different architectures and were executed in a range of high-level languages, computer hardware, and operating systems. They all involved an operator interface with alarms, communication with external systems or control hardware, and a means of determining the correct actions to take to achieve specified results. Some of the systems supported the recording and review of historical operating data.
I've traveled to paper mills, nuclear power plants, steel mills, airports, land border crossings, military bases, and business offices all over the U.S., Canada, Mexico, Thailand, and Korea to do discovery, data collection, design, process improvement, software development, and system installation and commissioning.
I have managed both projects and programs in terms of schedule, budget, contract, personnel, activities, procedure, quality, meetings, status reports, communications, risk, and output. I tend to create my own lightweight tracking, prediction, and Earned Value Management tools in preference to MS Project or the like, though I have used them. I've also used collaboration tools including SharePoint, BaseCamp, Slack, GitHub, and online BBS software like phpBB, O'Reilly WebBoard, and WordPress.
I earned PMP certification in 2009 and have maintained it continually since.
Every activity is an exercise in making things better but this can take many forms. I'm always trying to improve knowledge, communication, speed, robustness, cost, time, quality, and reliability.
- Effect improvements by rearranging existing components of processes and also by improving individual components of processes.
- Implicitly and explicitly balance conflicting optimization opportunities; understand total systemic efficiency and don't push the obvious optimization where it isn't truly the best choice. Understand opportunity cost; consider both the seen and the unseen.
- Earned Lean Six Sigma Black Belt (CLSSBB) certification.
I know the UI elements and terminology inside and out and have designed and developed live systems in many frameworks as well as wireframes, mockups, and demos using a variety of tools including Visio, Balsamiq, and UI builders from different application frameworks.
User interfaces must provide:
- Control of program flow: Users need to know what they can do and when they can do it.
- Interaction with data elements: Values must be able to be input, output, and modified in ways that are consistent, efficient, and intuitive.
- Improved situational awareness: A good UI makes complicated and voluminous information easy to understand and manage.
- Context-appropriate modes of manipulation: Data should be manipulated and displayed in ways that make sense for the type of data, considering graphics vs. text, individual elements vs. groups or structures, packaging into messages or files or records, and reading from or writing to storage repositories including files and databases.
I've served in every phase of projects, programs, and products from conception to phase-out. In software terms these phases are a superset of the Software Development Life Cycle and the older and more straightforward Systems Development Life Cycle (SDLC).