Senior Software Engineer/Architect
==Technical expertise (current)==: C++, Java, Ruby, Python & Extension Development, Linux, Windows, Multithreaded, Embedded, TCP/IP, Boost, XML, HTML, Perforce, Finite State Machine design and implementation, Code generation, UML, iSCSI, SMI-S, Open Pegasus, MOF
==Technical expertise (prior)==: C/C++, Java and JNI, VB, SQL, SPL, AWK, YACC/LEX, Assembler (various) & others, COM/DCOM, ATL, Unix (multiple), Linux, Windows, QNX, VMS, Distributed Systems, TIBCo Rendezvous, TCP/IP, SECS & HSMS, Real-time control, Compiler design & development
==Management experience==: Has managed teams of engineers of up to 20. Has been technical lead on projects of 2-10 engineers with budgets of up to $3 million.
Design and implementation of large, complex or difficult systems with constrained time and manpower resources.
==Principal Software Engineer
==iStor Networks, Inc. – May 2006 – Present
For a product line of high-performance iSCSI SAN Storage Devices, responsible for the entire management interface, both internal to the iSCSI device (embedded CIMOM Providers) and on the LAN-based management clients.
– Developed the client-side SDK (in C++ and Java versions) upon which all client apps are based.
– Developed the Command Line Interface (C++), with scripting capabilities.
– Developed a Python Extension providing full Python access to the management stack features.
– Developed and/or maintains roughly 40% of the company’s proprietary source code (from a team of 20 Software Engineers), with a defect rate of 1/5 of the team average.
– Substantially reduced development time and maintenance costs through an approach that uses source code generation (and re-generation) from XML-based metadata.
– Develops for 3 platforms (Windows, Linux, embedded Linux) in 4 languages (C++, Java, Ruby, Python) while supporting a large standardized object model interface (SNIA/SMI-S).
SQL was used to perform queries on the team’s defect tracking database (MS SQL Server) with Ruby to correlate defects to source code modules, to manage testing logfile storage, and to contribute to productivity metrics for developers. For some personal projects, SQL/Ruby was also use to automatically extract data from HTML web forums and store the substance in a MySQL database, and then generate ad hoc queries and statistics from the database using some developed Ruby scripts.
==Team Manager and Automation System Architect
==Object Engineering, Inc. – February 1988 – May 2006
I founded and managed Object Engineering as a firm specializing in designing and developing distributed "full-fab" manufacturing automation systems for the Semiconductor Industry. This included process equipment control and monitoring, measurement system control & data acquisition, and material handling systems control. The scope of project work was often inclusive of all processing, material handling and measurement equipment in the fab (typically 200-400 devices of 30-50 distinct types). These billion dollar facilities were often completely dependant on the reliable operation of the systems provided. As a result, high reliability was an essential element of the work. Project budgets ranged from $100K up through $3M with engineering teams as large as 20 developers.
Systems deployed included a variety of target O/S platforms, including Unix (various), QNX, Windows, and VMS. Distributed implementations included messaging systems (TIBCo Rendezvous, and others) and RMI systems (COM/DCOM). Development was primarily C/C++ with some items requiring Java or Visual Basic.
This work entailed the development of device-driver-like servers for equipment control, and at times, middleware, user interface, SQL database access, and development/debugging technology.
Products developed included cross-platform implementations of: SECS-I driver, HSMS driver, VFEI Equipment Controller framework, an IPC Abstraction Layer that provided support for multiple messaging and RPC transports, and a Statechart grammar as a superset of ANSI C.
One interesting product of work was a specialized compiler for a superset of ANSI C that allowed natural and deterministic software development based upon Harel Statecharts (hierarchical finite-state-machines). This technology allowed us unprecedented development and maintenance manpower reductions, for example, in one area of this work we reduced the development time from an industry common 6 man-weeks to initially 5 man-days, and ultimately to 4 man-hours.
Systems were developed for, and implemented at numerous sites/companies in the USA, Japan, Taiwan, Singapore, and Spain.
Clients included AT&T Bell Labs, Lucent Technologies, Hyundai Electronics, LG Semiconductor, Sharp Microelectronics, IDT, Matsushita (Panasonic), NCR, Applied Materials, Asyst Technologies.
SQL was used (DEC Rdb with E/SQL, a SQL preprocessor for C/C++) as a primary persistence store and configuration data source for a fully automated semiconductor factory (wafer fab). All information was stored in this database, and all changes to processing equipment, product WIP, inventory, orders, quality data, and robotic handling systems were maintained there (in a dual implementation as a form of fault tolerance).
==Manager of S/W Engineering
==Decision Dynamics, Inc. – June 1980 – February 1988
Responsible for design and development of software (custom projects & commercial
products) for clients/customers in the manufacturing industry
==Tektronix, Inc. – February 1977 – June 1980
Development computer systems that supported the Tektronix semiconductor manufacturing operations.
SQL (Ingres) was used to track corporate parts and suppliers used in a very large product list. Tektronix, at the time, employed over 30,000 people and had a products ranging from oscilloscopes, and logic analyzers to computer workstations and graphic displays to specialized video industry switching and calibration devices.
==Portland State University ==
Physics and Computer Science (incomplete)
"I selected John and OEI as the single source to provide Equipment Interfacing software for our entire factory automation project, a 3 year project spanning our $700 million wafer fab with about 200 automated factory tools. I selected John because he understood our needs and his software came through our evaluation tests successfully. I didn’t have a team available to write thousands of pages of specs so I needed somebody who could provide for most of our requirements independently. John understood what we needed and more importantly why, so he not only met our requirements but helped us to develop them. In short, John "gets it", which I have found to be rare in the consulting business. John delivers product, where most consultants want to deliver reports, pie charts and invoices. It is now 8 years later and his software is still operating our fab with almost zero maintenance. I am very pleased with the results and would go back to John without hesitation were I to begin another such project. Dean Kennedy IDT FAB4 IS/Automation Manager"
– Dean Kennedy, was John’s client
"While at Lucent Technologies, I hired John to develop software for my company. Our working relationship spanned many years and I can attest to John’s superior knowledge and expertise. John worked well with all the people on the program, and I found him to be an individual of the highest integrity. He is a person who is always truthful, goes out of his way to deliver solutions that surpass requirements, and can always be counted on to deliver as promised and to be available to pitch in during a crunch period. John has a talent for developing new solutions that deliver better product at lower cost. He would be an asset to any program."
â€” Richard Mangieri, was John’s client
"I worked with John for many years in various roles. He is a creative and passionate engineer with an amazing capacity for work, and with an attitude and approach to work that makes it a real joy to work with him. He has broad technical experience in distributed applications, UI design, database schema design, and software tools development. In addition, he has managed his own company, doing business domestically and overseas, and is able to develop successful business relationships."
– Dale Brayden, Chief Engineer, Systematic Designs, Inc., worked indirectly for John at Object Engineering, Inc.
"I worked for John for three years at Object Engineering and three years at our previous employer, Systematic Designs. John is an excellent manager. He is well organized and provides clear and timely direction, and has excellent communication skills. John is also one of those rare managers that has outstanding technical skills and vision."
– Norman Kaplan, Staff Software Engineer, Object Engineering, reported to John at Object Engineering, Inc.
"John is a brilliant, creative, well-rounded technologist who is versatile in nearly all software development technologies. He truly loves the process of creating quality software. Having John on the team insures consistency, maintainability, performance, and quality of the end product. John often acted as my conscience and advisor in all technical matters involving the trade-offs that all projects ultimately must face. He delivers on time and to spec, and can be relied upon to raise controversial issues early. John will always be welcome on any team that I lead."
– David Cohen, Software Architect, iStor Networks, Inc., managed John at iStor Networks, Inc.
"John approaches his work challenges with research, creativity and enthusiasm. I have learned many things in working together with John and appreciate very much his analytic outlook in not just the task at hand, but in continually looking outward to the bigger picture and structuring a more cohesive environment in which to facilitate the resolution of both current and future tasks."
– Kevin Smith, Computer Architect/Programmer, iStor Networks, Inc., worked with John at iStor Networks, Inc.
"As Principle Software Engineer at iStor Networks, John has been instrumental in improving the product feature set and overall quality. Often times, he has served as the technical lead and was able to work with the Support Team in communicating changes, updates and new releases coming out of Software Engineering. John has great communication skills in training technical staff as well. John has proved to be not only a creative technical team player, but also seemed to enjoy doing the hard work he put in week after week. I hightly recommend John for not only his work ethic and solid engineering skills, but also his positive demeanor and attitude."
– Todd Picquelle, Director | Technical Services & Support, iStor Networks, Inc., worked with John at iStor Networks, Inc.
"During the time I worked with John, I was extremely impressed with his knowledge and dedication to his job and the company. He was always very supportive, came up with fantastic ideas on how to solve problems, put lots of hard work in and could always be counted on. He has a very broad knowledge, which helps him to come up with the best solution for a problem. I highly recommend him and for any position for which he applies. I would hire him myself without any reservations."
– Chris Carlson, Principle Software Engineer, iStor Networks, Inc., worked directly with John at iStor Networks, Inc.
"I worked with John for two years at iStor Networks, and know him fairly well. He is an exceptional C++ engineer and has a broad knowledge of programming languages. His creative way of solving problems is fascinating. He always bring a new perspective to the design and implementation of projects. He is very motivated and extremely hard working."
– Vahid Fereydouni, Associate Principle Engineer, iStor Networks, worked with John at iStor Networks, Inc.
"John is an exceptional software designer & developer, who consistently delivered complex storage management applications with exceptional quality in spite of limited resources and time- constraint. While I was automating the Command Line Interface Client developed by him, John always communicated the design changes in a timely manner. What I like the most about John is, he is very responsible, reliable and extremely hardworking. John has mastered the art of design, development and testing cycles of Software Development. I would love to work again with such expert like John."
– Ramesh Mangamuri, Senior DVT Engineer, iStor Networks, worked with John at iStor Networks, Inc.