I am a seasoned Consultant/Senior Software
Engineer/Architect/Developer focused on solutions that work. I use a
problem reduction algorithm; which breaks down each major problem into a group
of smaller manageable problems. Once a solution is found for each of these
smaller problems, then, the result, is often a workable (albeit, maybe not
perfect) solution to the overall problem. Refinements can then be made to
perfect the overall solution.
My experience covers implementing solutions for
projects, products and software on the following platforms as listed below
and in the following environments:
Platforms: Mainframes, Minicomputers, PCs, Embedded
Systems, etc...; Environments: RTOS on embedded systems, TSO/CICS/JPL on
mainframes, Linux/Ubuntu on PCs, AIX/UNIX on minicomputers, Windows (all
the way back to DOS) on both clients and servers.
Development Environments included: Assembly,
CUDA, RTOS, UNIX (Solaris, HP-UX and AIX), Linux variants (e.g.: RedHat /
Ubuntu / CentOS), Windows (e.g.: Windows 10, Windows 7 Professional,
Windows Server 2008, Windows XP, Windows Server 2003, Windows 2000
Professional, Windows NT and Windows 95) and on Real Time Operating System
(e.g.: Integrity RTOS from Green Hills).
Networks software development: TCP/IP & UDP
socket layer SW development, installation/maintenance of networks, familiar
with routers, modems, hubs & network wiring, etc...
Over the last 1/3 of a century, in
the consulting/technology business, I constantly see projects that have
gone off into the weeds and yet thousands of dollars keep getting poured
into these, without correcting the underlying real problems, with budgets
and schedule going off track. However, by ensuring that these projects are
right-sided, or better yet, are started correctly, in the first place, and
are built on the right technologies/foundation, then their long term
maintainability is made easier and the longevity of the agencies/companies
that depend on them, have a much better probability of success, being
effective and profitable.
My experience includes working on
mission critical applications for fortune 500 companies, State government
departments as well as Federal government agencies in many locations within
the continental USA. On the detailed resume my proven track record is shows
which skill-set(s)/technology(s) were used on what project and where the
work was performed.
My Windows, Mainframe, UNIX, Linux, embedded RTOS and
software architecture/development experience includes HLLAPI, tier software
layers of deployed systems, event-driven multi-threaded applications,
distributed applications (e.g.: Client/Server between mainframe,
minicomputers & PCs) and use of design patterns in my OO (Object
Oriented) software architectures. And yes, I know the difference between a
thread, a process and task spaces on a RTOS (i.e.: Real Time Operating
System).
I am experienced with low-level
network communications, for both TCP/IP and UDP sockets and custom (i.e.:
customer specified) protocols, including resolving/handling issues of
partial message reception/collection and parsing these byte stream
messages. The reason I favor Design Patterns in my OO (Object Oriented)
designs is that these facilitate reuse of “known-good”/”time-tested”
sub-architectures and promotes the reuse of these "known-good"
solutions as implemented in related (templated, where applicable) code.
Projects that I have worked on were in the following
technologies/market-sectors:
1. Airline ticketing
2. Artificial intelligence/CUDA
3. Automated job routing and
control
4. Computer system control (via
C/C++ on mainframes, UNIX, Linux, Windows & embedded systems)
5. Federal and State government
data processing
6. Database administration,
tweaking & maintenance
7. Fiber optic provisioning
8. Gas/petroleum decomposition
automated analysis
9. Medical procedures and
equipment (e.g.: heart monitoring, hemodialysis, etc...)
10. Oil and gas cross continental
system control/monitoring
11. Oil rig early warning systems
(as located in the oceans)
12. Particulate (white room)
studies
13. Petroleum/oil rigs equipment
configuration and costing analysis
14. Staged robotic controlled
assembly line control
15. Robotic high speed printing
control systems
16. Robotic medication
distribution systems
17. Satellite control systems
18. Server farm control and
automated intra-actions
19. Stock market trading algorithms
and market technical and fundamental analysis
20. Financial institutions
internal workings
21. Package/UPS delivery system
tracking and billing internals
22. Very heavy equipment
(locomotive/train) transportation controls
23. Very large computer
performance tweaking and system analysis
My Contract and full-time work was performed on the projects as listed in
reverse chronological order below:
1.
03/06/2020 - Present (1) Independent
Entrepreneur; Project: Artificial Intelligence/CUDA Researcher;
Position: Software Engineer/Architect
2.
01/06/2020 - 03/06/2020 (1) Markem-Imaje;
Project: Industrial Printing Equipment, Keene, NH;
Position: Software Engineer/Consultant/Instructor
3.
07/22/2019 - 12/20/2019 (1) Ethicon
(Johnson & Johnson subsidiary); Project: Medical Capital Equipment,
Cincinnati, OH; Position: System Architect/Software
Architect/Consultant/Instructor
4.
06/25/2018 - 04/30/2019 (1) GE
Transportation; Project: Locomotive Control System(s), Erie, PA;
Position: Consultant/Senior Software Architect/Engineer
5.
08/16/2017 - 06/14/2018 (1) Omnicell;
Project: Pharmaceutical Medication Distribution System, Warrendale, PA;
Position: Consultant/Senior Software Engineer
6.
11/07/2016 - 08/11/2017 (1) Jabil Electric;
Project: Hemodialysis Medical System, St. Petersburg, FL;
Position: Software Architect
7.
11/03/2015 - 09/16/2016 (1) Federal
Signal Corp (Life Safety PA Systems), University Park, IL;
Position: Senior Software Architect / Engineer / Developer / Consultant
8.
04/01/2015 - 10/23/2015 (1) Panasonic,
Inc (Automated PCB Assembly), Chicago, IL;
Position: Software Architect / Senior Software Engineer / Developer /
Consultant
9.
12/09/2013 - 11/28/2014 (2) Alstom Grid, Inc
(Oil and Gas Flow Control), Huntsville, AL;
Position: SCADA Software Engineer / Developer / Consultant
10.
10/2013 - 11/26/2013 (1) Exelis, Inc
(Satellite Systems), Fort Wayne, IN; Position:
Embedded Software Engineer / Developer
11.
02/25/2008 - 07/2013 (1) ABB, Inc
(Industrial Gas Chromatography Analytics), Lewisburg, WV;
Position: Senior Embedded Software Engineer / Senior Software Architect
12.
01/2008 - 02/22/2008 Census Bureau
(Federal Government), Suitland, MD; Position:
Senior Software Engineer
13.
06/04/2007 - 11/2007 (1) Internal Revenue
Service (IRS - Federal Government), Baltimore, MD;
Position: Senior SW Engineer
14.
12/2006 - 05/25/2007 El
Paso Corporation, Houston, TX; Position:
Senior Software Engineer
15.
11/2006 - 12/2006 Maio
Consulting, Inc, Houston, TX; Position:
Senior Software Engineer / Developer
16.
5/2006 - 09/30/2006 Seimens,
Inc, Houston, TX; Position: Senior Software
Engineer / Developer
17.
12/2005 - 03/31/06 (1) Southwest
Airlines, Dallas, TX; Position: Senior Software
Architect / Engineer / Developer
18.
03/2005 - 10/31/05 (1) Verizon,
Inc, Temple Terrace, FL; Position: Senior Software
Engineer / System Analyst / Consultant
19.
04/2004 - 12/31/04 (1) El
Paso Corporation, Houston, TX; Position:
Senior Software Engineer
20.
08/2003 - 01/27/04 (1) J. P.
Morgan, Houston, TX; Position: Software
Architect / Senior Software Engineer / Developer
21.
08/1999 - 08/2003 (1) Simplified
Algorithms, Inc, Alpharetta, GA; Position:
Software Architect / Senior Software Engineer
22.
07/1998 - 07/1999 United
Parcel Service (Corp Headquarters), Atlanta, GA;
Position: Senior Software Architect/Engineer
23.
01/1998 - 07/1998 (1) MCI Corporation,
Atlanta, GA; Position: Software Engineer /
Developer
24.
02/1995 - 12/1997 State
Dept., Dept of Labor and Employment Security, Tallahassee, FL;
Position: Systems Project
25.
10/1989 - 02/1995 (1) State
Dept., Dept of Education, Tallahassee, FL;
Position: Distributed Computer Systems Analyst
26.
01/1982 -
10/1989 (4) Embedded Engineer, Entrepreneur; Position: Software Engineer /
Electrical Engineer / Developer
The following sections detail each of the
contracts/projects/products for each bullet item above:
Artificial Intelligence/CUDA Researcher; Independent Entrepreneur/Retired
|
Market
Section:Artificial Intelligence
|
Independent
Entrepreneur/Researcher
|
Sonora, TX
|
03/2020 à Present
|
Project(s):
Artificial Intelligence application(s)
Examples of work: CUDA viewed from MBSE
perspective, 3D CAD
work
Environment:
R&D, CUDA, C++, UML, Object Oriented Analysis,
Hyper-Multi-Threaded environment
Tools:
Windows 10, CUDA development environment,
Linux, Enterprise Architect, Visual Studio 2019, LibreOffice, etc...)
Equipment
used:
PC Tower/Laptop
Skills
used:
AI Developer, Software Engineering UML object orient
architecture/design, C++, System integrator, C++/C developer, MS-SQL
|
|
|
|
Software Engineer, SysML/UML Instructor, Consultant, Developer
|
|
Market
Section: Automated High-Speed Assembly Line Label Printing
|
Industrial
Assembly Line High-Speed Printing Equipment
|
|
Markem-Imaje
(Contract with Oxford International)
|
Keene,
NH
|
01/2020 à 03/2020
|
|
Project(s): Industrial Printing
Equipment
o
Trained co-team members in conversion from codebase
to UML reverse engineering techniques. Provided consultation services:
performed as a Software Architect tasks, object oriented C++ software
developer & tester.
o
Configured
Enterprise Architect client with floating license
o
Installed
and configured Tool chain for C++ software development
o
Updated
GNU LIBc wrapper of Littlefs. Mapped GNU LIBc API wrapper calls to
correspondent Littlefs low-level calls. Mapped Littlefs status codes to
GNU LIBc errno values.
o
Pair
programmed with team mates.
o
Consolidated
the boot loader libraries of two different PCBs into one generic boot
loader library that works on both PCBs.
o
Performed
thread-safe analysis on C++ codebase.
o
Participated
in Agile and SCRUM meeting (e.g.: Sprint retrospectives, Sprint planning,
etc...)
o
Wrote
Unit tests for C++ code
Environment:
R&D, C++, UML, Object Oriented Analysis,
Thread-Safety Analysis
Tools: (Note: the text parser did
not import this one, so I added it later)
Windows 10, Linux, Enterprise Architect, Visual
Studio 2019, VS-Code, Eclipse, Visual Studio 2019 IDE, MS-Office
(MS-Word, Excel, Outlook, etc...)
Equipment
used:
PCs, PCBs of embedded system (JTAG downloading
of binaries to PCBs to test boot loading).
Skills
used:
Software Engineering UML object orient
architecture/design, C++, UML consultant/instructor, Technology/Design
mentor, system integrator, C++/C developer
|
|
|
|
Security
Badge
|
|
|
|
|
|
|
System Architect, Software Architect, SysML/UML
Instructor, Consultant, Developer
|
|
Market
Section: Medical
|
Medical
Capital Equipment
|
|
Ethicon
- A Johnson & Johnson subsidiary (Contract via: Insight Global)
|
Cincinnati,
OH
|
07/22/2019à 12/20/2019
|
|
Project(s): Medical Capital Equipment
o
Trained team lead and co-team members in
SysML/UML technologies. Provided consultation services: System Architecture
design collaboration and design capture, provided SysML/UML
training/leadership, performed as a Software Architect, object oriented
C++ software developer & tester, perform database management tasks
with development of MS-SQL stored procedures.
o
Integrated PTC integrity with Enterprise
Architect, to facilitate the conversion from PTC Integrity's textual
product requirements into correspondent Enterprise Architect SysML/UML
requirements diagrams.
o
Architected/Designed and coded the Requirements
Conflict Resolution Tool, which integrated PTC integrity with Enterprise
Architect, facilitating easy update & transfer of requirements and
corresponding derivation relationships between these tools
§
Requirements Conflict Resolution Tool -
1.
provides a field by field indication of
requirements' differences between the PTC integrity and Enterprise
Architect's requirement versions.
2.
provides a user API to select the appropriate
requirements from each version and capability for user selection of
the appropriate version.
3.
stages resultant user selected requirements in
either CVS files or MS-SQL database tables, for direct import into PTC
Integrity and/or Enterprise Architect (as appropriate) to ensure that
both systems are synchronized
o
Installed
and configured Enterprise Architect floating license server
o
Installed
and configured Enterprise Architect client
§
Produced
and provided installation instructions to team members
o
Participated
in design conceptualization with SMEs and design reviews
o
Produced
document for:
§
IDL
code generation (via Enterprise Architect) for compilation to C++ to
implement RTI's DDS (Data Distribution Service)
§
Enterprise
Architect usage / functionality / maintenance
§
SysML/UML
training materials
§
Business
process workflow diagrams
§
Workflow
diagrams illustrating how the Requirements Conflict Resolution
Tool integrates into the overall product development life cycle
§
Technical instruction on a variety of subjects
o
Designed
and developed IDL code collator to collate IDL code generated by Enterprise
Architect (EA)
o
Liaison
between Sparx Systems and Ethicon for technical IDL code generation
issues related to EA templates
Environment:
R&D, PTC Integrity, Enterprise Architect,
C++, MS-SQL stored procedures, SysML/UML, Object Oriented Analysis and
Design
Tools:
PTC Integrity (requirements management
system), Enterprise Architect (a SysML and UML tool), MS-Office (MS-Word,
Excel, Outlook, etc...), Visual Studio 2017 and VS2012, MS-SQL 2014
Equipment
used:
Laptop PC, Bi-polar scalpel (cut and coagulation)
for introduction to surgical procedures and equipment
Skills
used:
System Architecture, Software Architecture, SysML and
UML object orient architecture/design, C++, SysML/UML
consultant/instructor, Technology/Design mentor, GUI/MFC/C++ and stored
procedure developer, system integrator
|
|
|
|
Security
Badge
|
|
|
|
|
|
|
Software Architect/Engineer
|
|
Market
Section: Transportation
|
Locomotive
Control System
|
|
Webtec
- formerly GE Transportation (via contract with Game 7 Staffing)
|
Erie,
PA
|
06/25/2018à 04/30/2019
|
|
Project(s): Locomotive Modular
(embedded) Control System (MCA)
o
Performed as a Software Architect for the embedded
MCA product, using both SysML
and UML symbolism, for the
Debian/Linux OS target platform; Which Linux OS was used as MCA product's
RTOS (Real-Time Operating System)
o
Performed Linux as RTOS performance
research/analysis
o
Provided C++ code and STL code usage samples to
developer implementing MCA software architecture
o
Defined DDS (Data Distribution Service) Topics to
support subsystem intercommunication data/message needs of each
architectural suSenior
System Architect/Software Architect/Consultantbsystem that I
designed, both for published and subscribed message data for the MCA
project
o
Specified platform architectural specifications
for my duties as a member of the platform architectural team
o
Specified system architectural specifications on
behalf of the system architectural team,
as needed
o
Performed DDS message performance calculations to
predict system behavior under heavy load
o
Performed MCA subsystem design reviews
o
Converted system architectural specifications into software architecture
for MCA platform subsystems
o
Worked closely with management, team leads on
various teams, hardware/firmware engineers, IV&V (test team) and
system engineers
o
Provided software architectural consulting
services and documented key software design concepts in confluence pages
on GE's intranet for the MCA design methodology
o
Participated in software architectural design
review meetings
o
Key software architecture for the following MCA
platform sub-systems/(implemented as Docker services):
§
1) IO_Manager - subsystem that provides
locomotive control, captures low-level critical analog and digital IO
(Input/Output) data and which performs diagnostics (e.g.: data quality
analysis) on received IO data, and implements IO data override capability
and
1.
commands: Digital (74V) IO, Analog (74V &
+/-10V ) IO and low-level indicators,
1. via
BSP (Board-Support Package)
2. which
interfaces with FPGA ICs, and
2.
reads locomotive's Speed, Temperature(s) &
Pressure(s) IO data
§
2) IO Data Override subsystem - directs user override commands to the
IO_Manager
1.
to overrides any of the following 80 IO data
channels:
1. 32
- 74v Digital Input channels,
2. 24
- 74v/amp Digital Output channels,
3. 2
- 74v Analog Input channels,
4. 9
- 10v Analog Input channels,
5. 2
- 74v/amp Analog Output channels,
6. 2
- 10v /amp Analog Output channels,
7. 3
- Pressure Input channels,
8. 3
- Temperature Input channels or
9. 3
- Speed/ Frequency (i.e.: Pulse Count) Input channels
2.
for each of the five NetIO boxes, each having 80
IO Data channels a piece
§
3) Diagnosis Event logger - subsystem which logs
key diagnostic event data
1.
monitors fault events
2.
provides incident cache and logging services.
§
4) Arcnet - subsystem to process legacy data
protocol used on locomotives
§
5) triggered data recorder (i.e.: datapack/snapshot)
- subsystem which captures series of data records based upon fault
detection/signal
§
6) Watchdog - subsystem which resets PCB/panel
upon CPU resource over utilization
o
Received Magic Draw training. Magic Draw is a
software architectural design tool used at Wabtec (i.e.: GE
Transportation division) for the
MCA product for both the SysML and
UML design work
o
Provided architectural design specification cross
examination of MCA subsystem for RTI's (a software development vendor)
SOW (statement of work)
o
Defined XML configuration files
o
Business Impact: MCA project is the next
generation mission critical locomotive control system for Wabtec
o
Performed consultant services on a daily basis
o
Participated in SCRUM, Agile, Sprint processes
o
Maintained professional relationships with
colleges
o
Team size: 100+
§
Interfaced with managers, team leads,
hardware/firmware engineers, locomotive software system design engineers,
developers and other software architects
§
Collaborated with and provided technical consulting
to software architects, security implementation specialist, configuration
management and developers located in: India, Colorado, Dallas, Maryland
and in Erie, PA.
Environment:
Agile, SCRUM, embedded systems, Sprint, Docker,
DDS, Containers, Arcnet, TCP/IP, UDP, Network redundancy, Linux - Debian,
C++
Tools:
Magic Draw 18.3 & 19.0 (a SysML and UML
tool), MS-Office (MS-Word, Excel, Outlook, etc...)
Equipment
used:
Tower and Laptop PC
Skills
used:
Software Architecture skills, SysML and UML object
orient architecture/design, C++, HTML documentation generation,
mathematical analysis of bandwidth utilization based on packet sizing,
RDMS consultant
(Note: MCA project replaces the aged CCA locomotive control
system)
|
|
|
|
Security
Badge
|
|
|
|
|
|
|
Consultant / Senior
Software Engineer
|
|
Market
Section: Medical Equipment
|
Automated Pharmaceutical Medication
Management System
|
|
Omnicell,
Inc (via contract with Oxford International)
|
Warrendale,
PA
|
08/16/2017à 06/14/2018
|
|
Project(s): CRX - Automated
Pharmaceutical Medication Sorting & Distribution Embedded System
o
<Click
here> for XR2 System Overview
o
Project: XR2/RedRock - Pharmaceutical embedded
system incorporating robotic arm(s) to sort & distribute medications
into patient bins into the transport cart.
§
Used for pharmaceutical medication management,
sorting & distribution system as implemented via robot arm(s) for the
purpose of delivering to patients their doctor prescribed mediations with
100% accuracy. Used in very large hospitals (e.g.: 20,000 beds).
o
Researched, designed and developed spatial 3D
displacement and rotation calculator via C++ code to control the robot to
collect & distribute medicates to thousands of medication holding
pockets
o
Researched, designed and developed spatial 3D
displacement and rotation calculator via C++ code.
§
Software's purpose is to convert local
coordinates to world coordinates for 3-dimensional objects.
§
Form factors included: small oral multi-packs,
single oral solids, large oral solids, syringes, small vials, cups,
etc...
o
Reversed engineered the XR2/RedRock codebase
(approx.: 250,000 lines of code) and associated database into UML
diagrams for internal documentation purposes.
§
Published said documentation on internal
Confluence web pages for general consumption of all teams.
o
Created UML diagrams for said system, including
new SW architecture/designs and internal state machines
o
Performed consultant services on a daily basis
and participated in SCRUM and Agile processes.
o
Worked closely with mechanical engineering to
implement software to handle mechanical failure in real time.
o
Coordinated software implementation with
mechanical dimensions supplied by mechanical CAD designers for each
different inserts/trays form factors.
o
Maintained professional relationships with
colleges
o
Performed consultant services on a daily basis
and participated in Software Architecture Design meetings, Code Review
and Sprint planning/grooming and team retrospective meetings.
o
Assisted Vision team for software inner
operational implementation.
o
Work closely with multiple teams from different
specializations. Work closely with management to reach project
objectives.
o
Used robot simulation software to solve
operational problems.
o
Enhanced barcode decoder, called the Decode
Engine, adding processing rules to handle barcodes of types: 1D,
2D, stacked and non-stacked, linked and non-linked. Added spurious
barcode recognition and handling.
o
Built barcode test bed for massive exhaustive
automated stress-testing of Decode Engine to facilitate the decoding of
thousands of barcodes in a matter of minutes to validate proper Decode
Engine functionality.
o
Integrated Decode Engine with COIL (i.e.: where
COIL is a regular expression pattern barcode validator for medications).
o
Assisted XR2 progress to make GA (General
Acceptance) so that it could be offered for general sale on the open
market. XR2 costs in the ball-park of $1,000,000 per robot depending on
options selected.
o
Maintained professional relationships with
colleges
§
working closely with other Software Architects
and
§
assisted Software Developers, both Junior and
Senior Level
Environment:
Sprint, SCRUM, Agile, Windows 10, Windows 7
Pro, Microsoft Office Suite
Tools
used:
Enterprise Architect Professional (UML
Modeler), TFS - Team Foundation Server, Team City, git, SourceTree.
Microsoft Visual Studio 2013, 2015 & 2017, MS-EXCEL, MS-WORD and
common development tools & Windows 7 Professsional, MS-SQL 2008 &
2016, Confluence, WinMerge, etc...
Equipment
used:
Laptop PC, XR2 robots (at various
versions/stages of development), mechanical hand tools
Skills
used:
Software Architecture skills, UML design, C++
development. Produced UML diagrams from reverse engineering of both the
codebase and database. Taught junior level software architects &
senior level software developers. Worked closely with SCRUM master and
management to reach deadlines.
|
|
|
|
Security
Badge
|
|
|
|
|
Software Architect
|
|
Market
Section: Medical Equipment
|
Automated Life Maintenance
System
|
|
Jabil
Electric, Inc (via contract with APEX, LLC)
|
Saint
Petersburg, FL
|
11/07/2016 à 08/10/2017
|
|
Project(s): Hemodialysis System (medical
equipment)
o
Project: Hemodialysis System - (Life safety
critical medical equipment)
§
Perform full-stack (top-to-bottom) traceability
from "Theory of Operation" all the way down to System
Architecture & Design
1.
from ToOp ("Theory of Operation") to
CRS (Customer Requirements Specifications)
2.
from CRSs (Customer Requirements Specifications)
to SRSs (Software Requirements Specifications),
3.
from SRSs (Software Requirements Specifications)
& finally to the SAD (System Architectural and Design)
o
Implemented aforementioned software
specifications (SRSs) by creating
§
UML sequence diagrams,
§
UML robustness diagrams &
§
UML Use Case diagrams
1.
containing Use Cases
2.
each defined with appropriate
1. scenarios,
2. Pre-Conditions
&
3. Post-Conditions
o
o
Sharply reduced workload by creating a tool that
performed
§
semi-automated traceability via context filtration
of SRSs and ToOp documents
1.
thus sharply raising process quality and sharply
reducing time needed to trace specifications
1. by
ensuring all relevant specifications were appropriately traced and
2. output
into the result search subset
3. which
each Software Architect would then manually verify/approve
o
§
this tool incorporated low-level AI (Artificial
Intelligence) algorithms/techniques
1.
via knowledge domain search subsets created by
1. vocabulary
reduction of subject specific context into unique keywords subsets
2. used
multiple UKSs in conjunction on SRS and ToOp contexts
1. as
filter to trace key software requirements
2. to
sought-after Use Case context(s)
o
Created tool template of the above mentioned tool
to facilitate easy reuse of tool for new ToOps, CRSs and SRSs.
§
Performed consultant services on a daily basis
and participated in Software Architecture Design meeting
§
Maintained professional relationships with
colleges
1.
worked closely with other Software Architects and
2.
assisted Senior Software Developers
Environment:
Integrity document system to maintain
complianance with Federal regulations.
Tools
used:
Enterprise Architect Professional (UML
Modeler), Integrity document system (for Federal Regulatory compliance
traceability) & Trello (task tracking system). Microsoft Visual
Studio 2013, MS-EXCEL, MS-WORD and common development tools & Windows
7.
Equipment
used:
Laptop PC.
Skills
used:
Software Architecture skills, UML design. Produced Use
Case diagrams, Sequence diagrams & Robustness diagrams. Taught junior
level software architects. Worked closely with management to reach
deadlines.
|
|
|
|
Security
Badge
|
|
|
|
|
|
|
|
|
|
|
|
Senior Software Architect / Engineer /
Developer / Consultant
|
|
Market
Section: Safety and Security Systems
|
Automated Emergency
Notification System
|
|
Federal
Signal Corp (via contract with Johnson Service
Group)
|
University
Park, IL
|
11/03/2015 à 09/16/2016
|
|
Project(s): PAGASYS3 (i.e.: An automated
emergency notification system for large sea based oil drilling
platforms.)
o
Wrote the communication stack for serialization/de-serialization
(i.e. marshalling) of C++ objects to/from byte stream (which the UART
converted from/to a bit stream) to communicate via serial bit data
between embedded sub-systems of the PAGASYS life safety product.
§
Wrote C++ code that automated the exhaustive
stress testing of sub-system inter- communications,
1.
which code executed on the Master Controller
(embedded system) and
2.
performed packet level assembly and decomposition
§
Performed packet level debugging and analysis
using the following tools:
1.
Oscilloscopes,
2.
Logic Analyzer
o
Produced Object Oriented Software Architectural
(UML) designs for PAGASYS3 life safety system
§
Implemented said designs for PAGASYS3 system in
C++ multi-platform code
§
Performed development testing on said code
§
Wrote automated unit testing for said codebase
(i.e.: ‘CPP UNIT’ automated code tests)
1.
To ensure that critical functionality is not
broken by a new cycle development cycle
o
Key areas that I designed, developed, debugged
and tested are as follows:
§
Central message dispatcher of messages to control
PAGASYS3 system(s)
1.
Marshalling of messages (i.e.: serialization /
de-serialization)
2.
Message routing to UARTs (i.e.: serial devices)
to control hardware components
3.
Multi-thread coordination / control of PAGASYS3
subsystems
§
Command Line Interface (CLI) processing threads
1.
To handled keyboard entry of commands on command
line to control PAGASYS3 system’s hardware (e.g.: a command/responses
paradigm)
§
Automated system testing for PAGASYS3 system
1.
To ensure integrity of system algorithms during
future development cycles
o
Educated other Software Engineers on the use of
UML and related tools
§
Enterprise Architect (i.e.: professional Software
Architectural tool)
§
UML (e.g.: Universal Modeling Language)
o
Reverse engineered foundation (e.g.:
driver/utility) layer of PAGASYS3 system
§
Providing UML diagrams
§
To accelerate project code development
o
Produced Enterprise Architect UML Software
Architectural diagrams and
§
Organized these UML diagrams into a top down
navigational system of the PAGASYS’s, clearing showing each software
layer and its relationship to documentation of Confluence pages
§
To facilitate drill down capability to lower
levels to reduce learning curve for any new Software Engineers which may
join the project
o
Wrote documentation and put his out on Confluence
web pages
o
Created test environments for the embedded
PAGASYS3 system for both its main controller and all of its slave
cards/PCBs
§
Created CPP UNIT test case for the PAGASYS3 life
safety embedded system
o
Wrote
code to stress test the PAGASYS3 system
and
§
Exhaustively
stressed tested the PAGASYS3s slave boards
o
Performed
research and analysis as needed
o
Performed
product research for the best tool to check our code for MISRA compliancy
and to
§
Performed
static code analysis on the PAGASYS3’s code with the goal of ensuring
that best coding practices were implemented when writing PAGASYS3 code
for the highest code quality of this life safety product
Environment:
RTOS: Threadx
Agile Team Environment
JIRA (Task based management system)
Confluence (Document control system)
Processor
Type: ARM
Processor
Types: OMAP-L138, C6000 DSP+ARM® Processor; (On slave cards: RL78, RX210
MPUs)
Service
Pack: Renesas RL78 Compiler
Silicon
Revisions: 2.3, 2.1, 2.0, 1.1 and 1.0
Tools
used:
Enterprise Architect Professional (UML
Modeler), SourceTree, git, bitbucket, IAR IDE/Compiler (used for
compiling C++ for: ARM, RL78 and RX210 MPUs), Microsoft Visual Studio
2013 (and MS-VS C++ 6.0), MS-EXCEL, MS-WORD and common development tools,
Window 7
Equipment
used:
Logic Analyzer, VOM (Volt Ohm Meter) and
Oscilloscopes, JTAGs (XDS200, JTagJet-Trace-4M), Laptop PC, various power
supplies (variable an fixed voltage/current), PAGASYS3 embedded system(s)
and assorted / all PAGASYS3 slave PCBs
Skills
used:
Software Architecture/Development skills, UML
teacher/trainer, C/C++, Software reverse engineering techniques, Wrote,
developed and debugged C++ on embedded platform (i.e.: ARM CPU)
|
|
|
|
Security
Badge
|
|
|
|
|
|
|
Software Architect / Senior Software Engineer /
Developer
|
|
(Market Section: Automated
Robotics)
|
Automated
Printed Circuit Board Assembly
|
|
Panasonic,
Inc (via contract with ConsultNet, Inc)
|
Chicago,
IL
|
04/01/2015 à 10/23/2015
|
|
Project(s): PanaCimEE and Line
Controller (e.g.: automated robotics) Systems
Ø
Reverse
engineered Panasonic’s proprietary C++ codebase to
> Produce UML (structural) diagrams for
1. all 186 modules of PanaCIM
(e.g.: Automated Robotic Control Software)
1. Codebase size: .7GB
2. and all 74 modules of the new
Line Controller Software
1. Codebase size: 142MB
Ø
Ensured
‘Adapter’ project was extensible for future unknown data types when these
are incorporated into project(s) lines
Ø
Wrote
generic inter-communications layer between proprietary and third party
robots for Panasonic PCB assembly lines
Ø
Performed
support duties for my inter-communications layer for assembly line in
production to Panasonic subsidiary in China.
Environment:
Tools
used:
Enterprise Architect Professional (UML
Modeler), Clearcase (e.g.: Software Configuration Management tool),
Microsoft Visual Studio 2010 (and MS-VS C++ 6.0), MS-SQL, Linux, MS-EXCEL, MS-WORD and common
development tools
Skills
used:
Software Architecture/Development skills, UML teacher/trainer, C/C++, SQL,
Software reverse engineering techniques
|
|
|
|
Security
Badge
|
|
|
|
|
|
|
Senior Software Engineer / Developer for
SCADA system
|
|
(Market Section: Oil and Gas
Control Systems)
|
SCADA - Supervisory control
and Data Acquisition
|
|
Alstom,
Inc (via contract with Sentient, LLC)
|
Huntsville,
AL
|
12/09/2013 à
11/28/2014
|
|
Project(s): WOTS – Work Order Transaction System
Ø
Reverse
engineered their proprietary software architecture as stored in text
(*.dbdef) files to
> Produce UML (structural) diagrams for all 65 modules of their
SCADA array-based databases
> Produced a SCADA cross reference for their system containing over
3400 pages of structural documentation
Ø
Performed
SCADA code upgrades on ‘C/C++’ codebase
> Re-factored, upgraded and enhanced WOTS
(e.g.: Work Order Transaction System) sub-system
Ø
Upgraded
their legacy code to
> conform to their most recent software architecture
design
> performed cross mappings of legacy
Field/Records to their current software architecture
Ø
Worked
with a colleague to automate the code upgrade/conversion effort
Ø
Mentored
Junior Level Developers
Environment: SCADA
Tools used:
Microsoft Visual Studio, Enterprise
Architect Professional (UML Modeler), TFS (Team Foundation Server),
MS-SQL, MS-EXCEL, MS-WORD and proprietary tools of Alstom (e.g.:
Habitat tool set (e.g.: ‘hdbrio’ and ‘DbDefEditor’).
Skills used:
C/C++, SQL, Software Architecture/Developer,
Software reverse engineering techniques
|
|
|
|
Security
Badge
|
|
|
|
|
Embedded Software Engineer / Developer
|
|
(Market Section: Satellite
Systems)
|
|
Exelis,
Inc (via contract with John Galt Consultants, Inc)
|
Fort Wayne, IN
|
10/14/2013 à
11/26/2013
|
|
|
Environment:
Tools used: Microsoft
Visual Studio, Enterprise Architect Professional (UML Modeler), MS-EXCEL,
MS-WORD, ect…
Skills used: C++, Software Architecture
Training:
Code of Conduct, Information Security, Proper Labor Charging, Trade Compliance Awareness, Beryllium Awareness, Contamination Control, Emergency Preparedness, Ergonomics Awareness, ESD (Electric Static Discharge), ESH Annual training - Fort Wayne, IN, ESH Annual training - Rochester, ESHMS (Environmental Safety and Health
Management System), Foreign Travel Briefing, Foreign Object Elimination, GS Information Security Policy, Hardware Handling & Material Safety, Hazard Communication (Global Harmonization
System)/TSCA, Human Error Prevention - AESOP, Lockout-Tagout Awareness, Personal Protective Equipment, Product Safety Initial, Property Management Control
Project(s): Confidential
|
|
|
Security
Badge
|
|
|
|
|
|
|
|
|
|
|
Embedded
Software Engineer / Software Architect / Senior Software
Engineer / Developer
(Market
Section: Industrial Analysis Equipment)
|
|
|
|
ABB, Inc (via contract with Bentley Global Resources,
LLC)
|
Lewisburg,
WV
|
02/25/2008
à 06/21/2013
|
|
Projects:
1)
‘PGC5000’ – a Gas Chromatograph Analyzer. The PGC5000
Analyzer was implemented on an embedded platform running a RTOS (Real
Time Operating System) on an SBC that has a local and remote GUI
(Graphical User Interfaces: LUI and RUI) for displaying Gas
Chromatographs in real-time. The ‘Master Controller’ section of the
PGC5000 was designed using objected oriented technology and implemented
via ANSI C++. My portion of the architecture and development of the
PGC5000 was the two mission critical tasks named, ACE (Analysis Control
Engine – for schedule management of Analyses being sent to the Oven(s))
and APE (Analysis Process Engine – for data capture, collation and
assembly of the binary Analysis Reports generated).
Click to see => Product Of Year Award
2)
‘STAR Server’– A data historian, which captures streamed
(TCP/IP) and packet (UDP) data from a maximum of 254 Gas Chromatograph
analyzers (e.g.: PGC5000(s), PGC2000(s), RVP(s) (e.g.: Reid Vapor Pressure)
and Multi-Wave Analyzers) and one barometric pressure meter. Using
‘Enterprise Architect Professional’ as the UML design tool, I performed
all architecture/design tasks for this Object Oriented, multi-threaded,
multi-socket, multi-pipe, database connected (via C++ calls to SQL stored
procedures) data historian. Technical specifications were captured in the
EA Model (e.g.: in the UML (e.g.: Sequence, Associative and Inheritance)
diagrams and related URL links. Implemented the ‘STAR Server’ as a Windows
Service on a 64-bit Windows 2008 platform. The ‘STAR Server’ both saves
and retrieves BLOB (Binary Large Object) data and trend data points
to/from the MS-SQL 2008 partitioned database (as stored on a RAID array).
My design also included support for future third party OPC
devices/analyzers. Performed all tasks related to the Object Oriented
design/architecture (OOD/OOA) and over 97% of the coding effort for the
C++ code and SQL stored procedures for the ‘STAR Server’ (e.g.: with the
exceptions being for one Legacy DLL written by Jeff Ross (co-worker), the
‘Reprocessing’ DLL (a PGC5000 related task) and some SQL stored
procedures as written by Mike Crowder (also a co-worker).) I setup the
Visual Studio 2012 solution for the ‘STAR Server’ to be both 64-bit and
32-bit compile-able, based on the user’s VS2012 configuration management
settings, with all binaries copied to just one sub-directory as each
project in the solution (for each of the DLLs) completed its build step,
thus simplifying deployment for the build manager. Also, setup the Visual
Studio 2012 solution for the ‘STAR Server’ test environment to perform
unit level testing.
|
|
Security Badge
Test Environment (Part
A)
Test Environment (Part
B)
|
|
|
Environment:
Technologies used: ANSI
C++ (used for both projects), SQL, Window local pipes (used for low-level
client/server communications), Socket level development (for both TCP/IP
and UDP network connectivity), UML, RDMS, RTOS (Green Hills
Multi/Integrity), BLOB data handling/parsing (to/from database
storage/retrieval), Client/Server API development, multi-threaded (on
Server)/multi-task (on RTOS) development.
Tools used: Microsoft Visual Studio (i.e.: VS2012,
VS2010, VS2008 and VS 6.0), Visual Source Safe, MS-SQL Server 2008, Integrity/RTOS,
Enterprise Architect Professional (UML Modeler), EDGE (UML) Diagrammer,
Tracker (PRC system), MS-Project, MS-EXCEL, MS-WORD, Core-FTP, Software
Verify (e.g.: a C++ dynamic code analysis tool (e.g.: performs memory
leak detection, thread analysis, memory stomp analysis etc…)), VPN, XML
Viewer, DocuShare, WinDiff, GoToMeeting, etc…
Platforms: RTOS
(‘Integrity’ from Green Hills, Inc), Windows Server 2008 (used as the
‘STAR’ server), with Windows 7 and Windows XP (used for the UML design
and C++/SQL development platform(s))
Project(s):
STAR Server (Windows
Service):
Ø
Performed all tasks for the STAR Server, which
runs as a Microsoft windows service (e.g.: Objected Oriented
Architecture/Design, UML diagramming, coding and unit testing)
Ø
Wrote over 100,000 lines of C++ code and MS-SQL
code for the ‘STAR Server’
Ø
Performed stream handling for TCP/IP sockets
and message assembly for UDP packets
Ø
Captured messages from TCP/IP and UDP sockets,
parsing these and storing this Trend data and BLOB data into MS-SQL 2008
partitioned database (as setup on RAID storage)
Ø
Specified, designed, documented and distributed
the ‘STAR’ Client/Server API to the team working on the ‘STAR’ client;
Said specification defined all low-lever data transfer structures for
PIPE communications between the STAR Client(s) and STAR Server(s).
Ø
Specified, designed, documented and distributed
the Legacy API to the team; Said specification defined low-lever data
transfer structures and callback functions for data transfer between the
‘STAR’ Server and legacy devices (e.g.: PGC2000 and Multi-Wave devices).
Ø
Performed distributed intelligence testing
between PC clients, STAR Server, PGC5000, PGC2000, Multi-Wave Analyzer
and RFP (Reid Vapor Pressure) Gas Chromatogram Analyzers (e.g.: performed
testing on all aspects of BLOB (e.g.: Binary Large
Object) transfer, validation, parsing and importation to
MS-SQL database (see below)).
PGC5000 (embedded
system):
Ø
Real Time Embedded Software Development - Wrote
all the C++ code for the runtime environment modules called ACE for the
‘Analysis Control Engine’ and APE
for the ‘Analysis Processing Engine’ for the PGC5000 (Gas Chromatograph analysis system)
shown below, which product won “Product of the Year” in its category and is currently
being mass produced and sold all over the world. For details, see also: http://www.abb.com/product/seitp330/a6ccc6def51d04e9c12574b100571ee3.aspx
Ø
Designed the Object Oriented Architecture for
both of these mission critical tasks (e.g.: ACE and APE)
for this RTOS (Real Time Operating System) embedded product to be
elastic in nature (meaning that if a physical dimension
changed, which impacted the software specification (e.g.: the number of
Ovens, number of Schedules changed, etc…) then the software would
corresponding adapt, if just two numbers changed (e.g.: one for memory
allocation and the other for the dimension that had changed)), thus
managing the total cost of software maintenance/ownership and increasing
the financial gain over the life to the product as market changes or new
requirements impact the embedded system’s design.
Ø
This allowed both ACE and APE, the capability
of resizing the infrastructure as needed to execute the gas
chromatography analyses in a multi-detector, multi-schedule and
multi-oven environment. With this capability, ACE and APE could be
quickly restructured to meet changing market needs by simply changing the
value for desired dimension. Example: If the PGC5000 needs to handle more
Schedules, only two numbers needed to be changed for that dimension and
the corresponding memory allocation to enlarge the software
infrastructure handling capabilities, such that upon recompilation it
would then support that new requirement.
Ø
Implemented this OOA/OOD in C++ code (as
captured in my UML diagrams)
Ø
Designed both ACE and APE to support eight
different elastic dimensions for the number of: Schedules, Ovens, TCFs (Time
Coded Functions), Gas Chromatograph Detectors, Gas Components, Scripts,
TCF Methods, Analyses and Schedule Elements (each being a duple of
Analysis and Stream).
Ø
Wrote the ‘Analysis Validator’ to ensure that
all Analyses are correctly composed.
Ø
Wrote a code generator that produced the C++
code that provided the object oriented infrastructure/framework for both
ACE and APE, thus ensuring code uniformity, quality and at the same time
eliminating the bulk of development time typically needed when debugging
large projects. The number of code lines written and generated for both
ACE and APE using this technique was over 90,000 lines of C++ code, which
then was deployed in this RTOS embedded project, the PGC5000, which code
when executing used less than 2% of the available CPU, leaving 98% CPU
for other tasks in the PGC5000.
Ø
Designed and implemented each schedule to run
in multiple ovens simultaneously with other schedules, with each schedule
capable of handling its own analyses in its Schedule Element queue while
at the same time, all the other schedules do likewise.
Ø
Incorporated polymorphic behavior in APE for
handling the variant calculations of: validation, calibration and
standard report types.
Ø
Designed
and implement low-level translational services for the decomposition of
analyses to enable execution in any or all of the connected ovens.
Ø
Performed P2P (Peer to Peer) bandwidth
utilization testing across Ethernet between the PGC5000 embedded systems
(e.g.: performed TCP/IP stack efficiency testing)
Ø
Generated
calibration, validation and standard analysis reports, develop code to
coordinate the assembly of the associated chromatograph files and the
propagation of the alarm analysis report files, should any of the
analysis’s alarm indicators occur.
Ø
Calculated
response factors (low & high), gas component concentrations, pending
response factors, etc…
Ø
Built ACE and APE as event driven software,
thus minimizing CPU utilization.
Ø
Included script processing support for both
event-driven and end-of-analysis scripts.
Ø
Gave ACE and APE the capability of processing
very large and complex analyses as well as simple analyses in a
multi-detector, multi-oven and multi-schedule operating environment.
Ø
Integrated automatic reclaiming/recycling of
memory resources in both ACE and APE to maintain real-time software
stability and robustness, thereby eliminating costly kernel calls for
memory allocation and de-allocation, and thus eliminate needless CPU
cycle usage.
Ø
Incorporated a schedule ‘state machine’ in ACE
for handling random GUI requests for schedule state changes using an
elastic sparse matrix to provide this dynamic functionality
Skills
used: C++, Integrity RTOS, Windows
XP, Win32 development tools, Windows Office Suite, Gathered,
analyzed and implemented project specifications/requirements; PGC5000
hardware: PowerPC 8270 @ 266 MHz/66 MHz Bus; Other sub-systems
incorporated: Xilinx Version 0.05. Also used configuration management
software called ‘subversion’.
Personnel
skills:
Worked closely with management, key staff members, Senior Software
Engineers, Senior Electrical (hardware/firmware) engineers and Gas
Chromatograph Application Engineers.
|
|
|
|
|
|
|
|
|
|
|
|
|