Resume 12

Page 1

Thomas J. Clancy 273 Deerfield Drive Canonsburg, PA 15317 Home: (724) 873-1718 Mobile: (412) 445-3850 Email: thomas.clancy@mac.com

SUMMARY: Creative, motivated software architect with a passion for innovation, learning, and technology.

SKILL SET: DESIGN ENVIRONMENTS (IDEs/UML)

Eclipse, Netbeans, IntelliJ, JBuilder, Visual Studio .NET/VB.NET/VC#.NET, Poseidon 3.x, MagicDraw 10.x/12.x/14.x, Borland Together, Rational XDE, Microsoft Visual C++/Visual Studio 6.0, GNU’s GCC/G++, Borland C++, IBM’s Visual Age for C++, Microsoft Embedded Visual Tools 3.0, Borland Pascal

JAVA EXPERTISE

Java (JDK5, J2SE 1.4/1.3), J2EE (EJB 2.1, JMS, JAX-RPC, SOAP), Apache-Commons, Java-based Aspect Oriented Programming (AspectJ and AspectWerks), Java 2D API, SWING, ANT and ANT Task Development, JUnit, JDBC, Java Mail API, JavaBeans

C++ EXPERTISE

STL (Standard Template Library), ACE (ADAPTIVE Communications Environment) C++ Library, Boost, Qt portable User Interface library

OTHER LANGUAGES C, C#, Visual Basic, JavaScript, Pascal, XML, HDML, WML, HTML, Ruby, SQL, VBScript QA TOOLS

Junit, NUnit, Rational PureCoverage, Clover, JStyle, SmallWorlds

WEB DEVELOPMENT

JBoss 3.2.x/4.0x, Sun Java System Application Server, Weblogic, Apache Web Server, Java Server Pages, Java Servlets, Struts, C/C++ CGI, multiple platforms; Web Page Design, Microsoft Front Page, Adobe DreamWeaver, HTML 4.0

DATABASE DEVELOPMENT

Oracle, MySQL, SQL Server 2005, PostgreSQL, Informix ESQL/C, Intersolve’s ODBC and SQL for OS/2, Informix Online 7.2, FoxPro, dBase IV

OPERATING SYSTEMS MISCELLANEOUS TECHNOLOGIES GENERAL EXPERTISE

Microsoft Windows 95/98/2000/NT/XP, Linux (Fedora, Redhat and Mandrake), Unix variants (Sun Solaris, HPUX, SCO UNIX), Mac OS X, Microsoft Pocket PC for Windows, IBM’s OS/2 Warp 3.0, MS-DOS, PDP-11 RSTS/E, VAX VMS Inprise’s Entera 3.0 RPC Broker

Object Oriented Analysis and Object Oriented Design (OOA/OOD), OMG Unified Modeling Language (UML), Business Process Modeling, Workflow Theory and Modeling, Aspect Oriented Programming (AOP), GUI development, TCP/IP, Multi-threaded and Asynchronous Software Design, Asynchronous Communications Programming

ACCEPTED ARTICLES: “A Tale of Two Endians”, accepted for publication by the C/C++ Users Journal


EDUCATION: Bachelor’s degree in Computer Science, Thiel College, May 1991

MEMBERSHIPS: ● ●

Association for Computing Machinery (ACM) IEEE Computer Society

PATENTS: ●

Co-inventor of a Complexity Management System

WORK EXPERIENCE: Founder and Chief Scientist, Jconceptus Software (www.jconceptus.com), Canonsburg, PA 5/2002 to Present JConcpeptus Software is a small, dynamic software company that specializes in designing and creating open source concept modeling, knowledge management, data mining, collective intelligence, simulation and analytics software. Accomplishments: ● Research and development of an agent-based, discrete event simulation framework in Java that I used in building a rudimentary simulation of artificial life based on evolutionary processes and simple DNA sequencing. ● This package which is called Neds, and which is not an original title but one that I took from a description of a project described in a book entitled Great Ideas in Computer Science by Professor Alan W. Biermann at Duke University, is currently being used by him and his students in the Computer Science department curriculum as an example of simulation programming and on simulating evolutionary processes using a computer. At Professor Biermann's request, I donated my code to Duke openly and freely ● Research and development of an object oriented implementation of Charles L. Forgy's Rete algorithm in Java and C#. ● Research and development of a rudimentary, generics-based edge-node graph algorithm package in Java as well as some simple graph drawing and layout algorithms. ● Research and development of a SWING-based Geometry exploration and drawing system. ● Developed some fundamental matrix and vector math packages in Java. ● Research and prototype designs in Workflow Management Systems, Business Process Management, Workflow Theory and Petri-nets ● Design and development of graphical user interfaces, programming and modeling software, and generally useful software tools ● Developed a general XML IDE in Java Swing using the beta version of J2SDK 1.5 and its new Ocean theme. The XML support is rudimentary, but the IDE is shaping up to become a good plug-in, project-based IDE similar to Netbeans or Eclipse ● Research of and development of applets and servlets and other web-based technologies using Java J2EE for building and deploying servlets and web services ● Research and development in advanced computing and engineering with C++ and Java, especially utilizing the STL, templates, generic programming, generative programming, portable threads, and pattern development ● Design and development of various web services for hosting simple games (e.g. black jack) using C# and VB.NET ●

Design and development of a web site guest book application written in C#


Lead Software Engineer, Electronics for Imagine (EFI) 10/2007 to 6/23/2008 EFI Management Information Systems for the Printing Industry. A number of languages and technologies are used, but Java and J2EE 1.5 are the primary technologies for their latest, cutting-edge print MIS.

Accomplishments: ● ● ●

Designed visual system monitoring tool in Java that is used to monitor status and licensing of EFI's traditional and digital printing MIS servers. Research and design of system wide event and notification services for our JBoss J2EE servers, drawing from the literature on CEP (complex event processing) and EDA (event-driven architectures). Designed a generic command processing system in JAVA and J2EE for our client applications to talk with the lated print MIS system. The command processor can be configured to use any kind of remote (e.g. JBoss remoting) or local transport technologies. Research and development of an Automated Planning and Scheduling system using hierarchical-task networks and other theoretical models, for planning and scheduling print orders that contain only partial information.

Lead Software Architect, TrueBaseline Corporation, Pittsburgh, PA 1/2006 to 6/2007 TrueBaseline (www.truebaseline.com) designs and develops application frameworks and products in the service management space for next generation networks. All design work was done in UML 2.1 using MagicDraw 11. Products were originally designed for Windows using .NET and C# and then redesigned and ported to Java and J2EE 5 environments.

Accomplishments: ● ● ●

● ● ● ● ● ● ●

Helped establish standards and guidelines for the development staff Promoted best practices in unit testing, code coverage analysis, code documentation and standardization Designed, prototyped and developed the company's original flagship service management product, SOAComply, that provided compliance monitoring software for networked and SOA-based applications. This included the following: ● Designed and prototyped Web Service APIs, and GUI ● Employed as the core architecture an Adaptive Object Model ● Designed and prototyped in C# an edge-node graph library for use in network analysis algorithms ● Implemented breadth-first and depth-first algorithms ● Implemented Dijkstra's Algorithm (single source shortest path) ● Helped design and develop TrueSMS, a service management framework designed to fulfill the requirements of the IPsphere (www.ipsphereforum.com) architecture. Designed and prototyped TrueOMF (True Object Modeling and Management Framework) that employs Complex Event Processing (CEP) techniques and an Enterprise Service Bus (ESB) architecture for efficient distributed processing. Designed the Message Exchange Framework (MEF) which is a type of Enterprise Service Bus (ESB) Designed Complex Event Processing (CEP) framework for efficiently handling and routing business events. Employed BPEL 2.0 as workflow language for orchestrating business processes Employed Drools.NET as the basis for our declarative rule engine and policy control language Designed and prototyped TrueSDx, a Service Delivery Platform (SDP) Integration solution Hosted service software as J2EE-5 service application Designed code generation tools for integration into native language applications (e.g. C#, C++, Java, Python)

Systems Architect and IT Consultant, Nationwide Appraisal Services Corporation, Pittsburgh, PA 9/2004 to 1/2006 In November, I accepted a full time position as a Systems Architect after the end of a one year contract as an IT Consultant with Nationwide.


NASCO (Nationwide Appraisal and Title Services Corporation) provides to over 2000 clients in all fifty states both title and appraisal services. Internally they've developed and use a Java/J2EE-based system called Genesis that handles and archives all title and appraisal orders and documents electronically. Both clients and vendors have access to an external facing web applications that connect to the Genesis system and internally, hundreds of NASCO operators work daily on the Genesis system creating and updating orders for title and appraisal clients. Accomplishments: ●

● ● ● ● ●

Designed the algorithms and software framework necessary to accomplish the entire Automated Vendor Assignment workflow functionality portion of the company's Work Order creation software which was to be implemented by a third-party consulting company. This involved the usual: ● Reading, comprehending and debating the semantics of the business requirements with the team of business analysts until the requirements are solid. ● Creating detailed and concise architecture and design documentation that included, UML class, activity and sequence diagrams, use Case scenarios, as well as GUI prototypes ● Mathematical notation and pseudo-code for Vendor Ranking algorithms Designed a new kind of J2EE Validation Framework that incorporates , JDK5 Annotations, AOP (using AspectJ), JavaBeans introspection and Java reflection Helped to established a standard peer code review process. Wrote several papers and tutorials on unit testing as a way of introducing the development team to good unit testing practices. Introduced development team to proper exception handling practices by example, mentoring, and providing to them my standard paper on the subject. Designed a simplified in-house replacement for an expensive, third-party content management system. The Design consisted of a complete web-based interface based on the Genesis web architecture, EJBs and the current Genesis repository APIs. Worked with a team to help streamline the Genesis workflows and to re-design the Genesis Workflow Management System. The design consisted of ● Complete UML diagrams (class, sequence, activity, state chart and use-case) ● Various research papers (e.g. Workflows as State Machines) ● Working prototype code ● An abstract business rule layer in which we could plug in rule engines such as the Java Rule Engine API in order execute the individual workflow business rules ● An abstract business process execution layer in which we could plug in various Business Process Management packages such as jBPM, which we used to define and drive the process flow of each workflow Formalized on paper in mathematical notation a set of formulas and equations used in NASCO's Auto Valuation Model for vendor auto assignment. ● Key in helping to design an algorithm for ranking vendors based on these formulas.

Senior Software Engineer, Netspoke, Pittsburgh, PA 4/2003 to 3/12/2004 Netspoke specializes in both web and audio conferencing with complete web-based application sharing and slide show presentations as well as a real-time, collaborative whiteboard, and fully recordable conferences with playback capability. Accomplishments: ● Optimized the screen capturing for the application sharing DLL in C++. ● Designed and helped write a stand-alone and active X control called Archive Viewer for playback of archived conferences using C++ and the Qt toolkit. ● Designed and developed a new kind of real time, shared whiteboard for conferences using C++ and Qt. ● Integrated some of our functionality with various Instant Messaging and Presence applications (namely created plugins for Trillian using C++). ● Designed a simple unit testing library in C++ that mimics the JUnit library for Java, but one that is much simpler than CPPUnit, which tends to be overly complex. Team Lead/Software Architect/QA Specialist, SmartOps, Inc., Pittsburgh, PA.


5/2002 to 3/2003 SmartOps Corporation specializes in supply chain management and optimization technologies utilizing various stochastic and deterministic algorithms and heuristics. Their application is a state-of-the-art web application written purely in Java with a distributed and efficient server architecture utilizing multiple data sources such as Oracle and DB/2. Accomplishments: ● Design and estimation of internal products such as algorithm stress testing and various generic supply chain simulation applications in pure Java utilizing Swing and J2EE ● The implementation and deployment of internal projects in Java ● Acting as a mentor for junior developers during design, estimation and implementation of internal projects ● Evaluation of a number of software development products including TogetherSoft Control Center and Rational XDE ● The design and implementation of an efficient distributable event management infrastructure for the posting and registering of events and event handlers in Java ● The design and implementation of an efficient thread pooling mechanism for multi-processor architectures in Java ● The creation of complex SQL statements in Oracle for the purpose of queuing and retrieving events, event information and automatic alerts ● The UML diagramming and documentation of the event management infrastructure using MagicDraw UML and Rational XDE ● The design and implementation of a general framework for data loading and data bridging external customer data to internal format utilizing Ascential’s DataStage ETL tool and Java ● The design of ANT build scripts for automating and integrating various separate projects into the main, daily build system ● The specification and implementation of a dynamic peer code review process that involves members of all development groups, randomly evaluating and reviewing Java code ● The automation of code coverage analysis utilizing custom ANT tasks that I wrote in Java which itself made use of Rational PureCoverage tools ● The integration into our daily build process of Clover for more thorough code coverage analysis ● The use and automation of JStyle as a lint-based style checker for Java code to spot problems in code before code reviews. Was also able to utilize their scripting language to check for minute faults with javadoc comments ● The integration into our daily build process of the SmallWorlds Java static analysis tool ● The development and enforcement of a strict coding style and guideline checklist to aid code reviews and to catch bugs, logic flaws and design errors before they proliferated the code base ● The evaluation and recommendation of a number of code coverage and code conformance and correctness tools including JStyle, Rational PureCoverage and Clover Software Architect, Personity, Inc., Pittsburgh, PA 12/2000 to 4/2002 Personity, Inc., formerly Network Projects, Inc., and now defunct, designed and implemented Presence and Availability, and Instant Messaging technologies that were based on the IETF IMPP (Instant Messaging and Presence Protocol) working group’s Internet draft, CPIM (Common Presence and Instant Messaging). Personity, Inc., was also a contributing member of the IMPP working group with a comprehensive draft of a very complete and robust protocol called PRIM (Presence and Instant Messaging protocol). Accomplishments: ● Designing and implementing a WAP phone-based web gateway (CGI) interface to our Presence and Instant Messaging servers that generates HDML (handheld device markup language) and WML (wireless markup language) in standard, platform independent C++ ● Designing and implementing the next generation multi-platform, multi-protocol Presence and Instant Messaging server framework, service layer and third-party client SDKs in Java and C++ ● Assisting in enhancing and optimizing the current Presence and Instant Messaging servers ● Rewriting existing and designing new C++ code for platform independence between Windows 2000, Linux and Solaris ● Creating generic thread and mutex libraries that work under Windows, Linux and Solaris ● Designing and implementing the server management software as an intranet web application using HTML and JavaScript on the client side, and C++ on the CGI side


● ● ● ● ●

Research into SSL technology for securing web gateway interface Designing and implementing software licensing for our servers using the SentinelLM licensing software Helping to design and implement WAP and HTTP stress testing and usage simulation software in Java using Java Swing to monitor “virtual users” Writing white papers, both technical and non-technical, on the current state of the art regarding Presence and Availability technologies as well as the future potential of such technologies Research and development in telepresence and presence theory

Consultant, Independent Concepts, Inc., Beaver Falls, PA 5/2000 to 12/2000 Independent Concepts, Inc., has designed a cognitive prosthetic medical device called the Jogger for use by people who have suffered from some degree of traumatic brain injury, or TBI. This device, which is based on off-the-shelf Pocket PC technology, reminds the patient throughout the day to perform tasks, and records the amount of time it takes the patient to complete each task. In essence, it acts as a substitute for that part of the patient’s memory that has been impaired. This device is monitored and maintained remotely by cognitive therapists who create the tasks and measure any progress made during the duration of the treatment. Accomplishments: ● I independently designed the next generation Jogger system. ● Analysis of legacy system software and adaptation of its underlying architecture for use in the new system ● Research into Pocket PC technology and devices; specifically the Casio Cassiopeia E-115 and the Compaq iPAQ H3600 ● Research and early prototyping of Jogger device software using Microsoft’s Embedded Visual Tools 3.0 (e.g. embedded Visual Basic and embedded Visual C++) the Windows CE/Pocket PC operating system ● Research of Java technologies for Pocket PC to make programming GUI interface in Swing simpler ● Writing complete design specifications for all parts of the new system, which included: ● The Jogger patient user interface ● The therapist’s console, which is a Windows application that allows a therapist to remotely program a series of tasks for the patient that then get stored within the Jogger device ● The server architecture for hosting a centralized database for connecting patients to their therapists via the device using wireless technology ● ActiveSync Service Provider software for allowing a therapist to synchronize information between the device and his/her Windows PC. ● A statistical analysis and reporting system based on a user’s response to each task performed Sr. Software Engineer/Systems Architect, XCEL Communications Corp., Bethel Park, PA 1/2000 to 12/2000 XCEL Communications Corporation provides free web-based email (the Mailroom at www.mailroom.com), fax services, email to fax services, as well as a host of other web-based services for small to medium-sized businesses. Accomplishments: ● Designing and implementing object oriented C++ software in Microsoft Visual C++ that included, POP3 socketbased client software based on the latest POP3 RFC , Email routing services from external email to internal database, ODBC C++ class wrappers that provide Oracle database connectivity and some business logic ● Maintaining and redesigning ASPs (Active Server Pages) written in VBScript that utilize Microsoft’s IIS ● Maintaining and debugging server COM objects that are used by our ASPs to manage email and Oracle databases ● Undertaking a huge porting project from Windows NT to Linux (Redhat 6.1) and, subsequently, from C++ to Java which included: ● Setting up several Linux servers ● Installing and configuring the Apache web server ● Installing various Apache modules for Java servlets, JSP, etc. ● Redesigning and re-implementing the Mailroom system in Java ● Designing and implementing Java servers in Linux that included: ● A multithreaded POP3 rover application that, on request, retrieves a user’s email from POP3 servers and stores them in a web-mail database


● ● ●

A multithreaded POP3 server for allowing users to get their mailroom web-mail via a POP3 compatible client (e.g. Microsoft Outlook, Eudora, etc.) A multithreaded MDA (mail delivery agent) that routes incoming mail from sendmail to the intended user’s inbox within our database Mail filtering rule engine that is used by the MDA for providing such things as user-configurable spam filtering, private mail, etc.

Team Leader/Senior Software Developer, E-Transport, Inc. Pittsburgh, PA 06/1997 to 12/1999 Prism is an N-tiered client/server document processing system employed in the ocean freight shipping industry that caters to both the shipper and carrier. This system allows for the point-to-point flow of electronic documents such as Bills of Lading, Commercial Invoices, and Delivery Notices between the shipper and the freight carrier. Prism utilizes an attribute/value based object system for defining electronic documents (similar in concept to XML). Accomplishments: ● Designing and implementing an object oriented attribute/value based persistent object repository called Mix (modular information exchange) in C++ under HP-UX. Tasks included: ● Enhancing an in-house C++ class library which wraps Informix’s ESQL/C library by providing it the ability to manage Blobs (binary large objects) ● Implementing an LRU caching scheme for caching ESQL queries ● Implementing a low-level, generic C++ library that stores, retrieves, indexes and otherwise manipulates attribute/value based objects regardless of the underlying database engine ● Implementing a logical, session-based locking scheme for granting lock rights to clients for individual or groups of objects within the repository ● Implementing a small SQL-like query language used by Mix’s repository search engine ● Implementing the server layer which can act as a remote or compiled-in set of services for clients to easily store, retrieve and otherwise maintain objects in the Mix repository ● Designing and implementing a single invocation mechanism which sits on top of the RPC (remote procedure call) broker between both client and server, and which passes attribute/value based objects from client to server and server to server negating the need for numerous RPCs ● Designing and implementing a document-based security services server for the accurate and secure flow of electronic documents from point to point within the Prism system Project Leader, Byers Engineering, Atlanta, Georgia 05/1996 to 06/1997 EWO is a Client/Server, CAD-based Automated Mapping, Facilities Management, and Global Information Systems (AM/FM/GIS) product designed for engineers of utility companies such as Sprint and MCI who plan and maintain areas that contain items of plant (telephone poles, coax cable, fiber optics, etc.) in a unified and completely client configurable mapping software environment. Accomplishments: ● Writing detailed functional requirements and design specification documents as well as implementing in VisualAge for C++ for OS/2 and Windows NT the following: ● Spatial Query User Interface ● Map-based connectivity ● Renumbering of unique items of plant in a geographical exchange (area) ● ACT (Administrator’s Configuration Tool) ● Managing a team of developers who ported EWO from OS/2 to Windows NT. ● Writing and maintaining various documents on C++ programming in general and as it applies to the company’s coding standards and methodologies ● Interviewing potential candidates ● Conceiving and creating training schedules and materials for new employees Senior Software Developer, Byers Engineering, Atlanta, Georgia 08/1995 to 05/1996 Accomplishments:


● ● ● ●

Debugged and maintained legacy C code Performed Object Oriented Analysis and Design in redesigning modules in C++ that had previously been written in C Designed graphical user interface enhancements and new GUI designs. Tested and debugged core products such as ODBC class wrappers and the CAD engine

Manager of Software Development, Innovative Icons, Inc., Atlanta, Georgia

10/1993 to 08/1995 Isabella is a graphical greeting card and invitation order entry system that is presented as a kiosk in various greeting card and party stores. The system allows a customer to select a card or set of cards and personalize them by choosing ink colors and typestyles. The customer is then free to type the greeting or announcement message by hand, choose from a number of fill-in-the-blank templates, or, if planning a wedding, using the built-in wedding advisor. Accomplishments: ● Writing detailed requirements and design documentation as well as implementing in Borland C++ under Windows 3.11 the following: ● The Isabella order entry system ● The back-end rendering, accounting and communications modules ● A personal, CD-ROM based version for home office use ● A multi-user version of Isabella for mall kiosks ● Coding software in Borland C++ and Visual C++ under Windows for Workgroups 3.11 that interfaced with Paradox databases using the Borland Database Engine for C++ ● Providing back-end graphical interfaces to databases in Paradox 4.5 and 5.0 ● Managing the team of developers on the project ● Interviewing and hiring new employees ● Overseeing production of software and approving patch releases ● Researching viability of an Internet-based Isabella system Software Engineer, CTR Systems, Pittsburgh, Pennsylvania 01/1993 to 11/1993 TKC (Time Keeper Central) is a software package used for polling Kronos computerized time and attendance punch clocks. TKC runs under various platforms including DOS, Windows and UNIX. Accomplishments: ● Writing payroll-bridging software between TKC and various payroll software packages (e.g. Peachtree Accounting Payroll) from detailed design documents. All software was written in C either under DOS or SCO UNIX ● Designing a prototype of a hand-held field punch clock using Panasonic hand-held computers which included: ● Writing the data capture interface for the Panasonic computer using its macro language ● Writing the interface software in C under SCO Unix for the Unix version of TKC ● Assisting in the modification of the Unix version of X-Modem to communicate correctly with the Panasonic computer ● Managed the design and implementation of the PARCS (Port Authority Revenue Control System) project which included: ● Designing database storage schema using FoxPro for Windows and SQL ● Designing client GUI interfaces in FoxPro for Windows for capturing data ● Designing and writing communications libraries in Borland C for communicating with various parking garage computers (i.e. RC2020)


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.