|
Mitchell J. Friedman 11956 SW 34th Ave., Portland, Or. 973219
|
|||
| Objective | Lead Programmer, Software Architect, Data Architect, Senior Software Engineer | ||
| Languages |
Current:
Java,
SQL,
HTML,
BASH Previously: C++, C, Delphi Pascal, PHP, PERL, ColdFusion, TAL, SCOBOL, BASIC, 8088 Macro Assembler, COBOL, Pascal, ADA, Scheme, Fortran. |
||
| DBMS | MySQL, Microsoft SQL Server, Oracle, PostgreSQL, DB2, Sybase, Enscribe | ||
| Platforms | Linux, VMware, J2EE (JBoss), Windows, Sun Solaris, HP-UX, Windows NT, Tandem Guardian, MS-DOS. | ||
|
Work experience |
|||
|
iovation - Portland, Oregon Java, SQL, JUnit, REST |
|||
|
Tripwire, Inc. - Portland, Oregon Java, SQL, XML, VMware, JDBC, SQL Server/MySQL/Oracle/DB2, Bazaar/Subversion, RabbitMQ/Rest/SOAP/RMI, Gradle/Ant, JUnit/TestNG/Hamcrest/Mockito, ProtoBuf, Guava/Apache Jakarta, Scrum, TWiki, Windows/Ubuntu, GWT, Intellij. 40+ people including core and UI developers, QA, Performance, Product and Project Managers. Worked on Tripwire Enterprise (TE), the flagship product. The TE codebase consisted of locally built implementations for handling SQL (on 3 back ends) and XML and Web UI as well as local utility libraries. It was lightly documented and over seven years old. TE supported change monitoring and compliance on multiple databases, servers and protocols and so completely mastering and understanding its usage required a person be a one-person IT department. The database schema itself was organically grown with no DBA and vaguely object-oriented, but with no referential integrity. TE projects ran simultaneously using scrum teams and sprints, with a team of UI and core and QA resources - typically with a hardening cycle at the end. For TE I participated as a core developer on multiple projects through 4 major released versions in three years. I was lead developer on a small team that added DB2 monitoring support. I was the core developer charged with solving an auditing usability and performance problem. I worked on a team integrating TE with Tripwire's centralized logging product (TLC) as well as another team on automating remediation. I was also the core developer on two exploratory projects released as free VMware tools. Config Checker – a VMware ESX security configuration validator and Ops Checker, a VMware VMotion readiness utility. These were each a stand-alone utility built on Swing. Config Checker was downloaded and used by thousands. Ops Checker was more specialized and was downloaded by just under 1000. Both helped drive development and generate sales leads. To cope with the complexities of supporting TE, a new component architecture was created and new features were implemented with that architecture in mind. I was a core developer building the first new component, the Asset Manager component. RabbitMQ with ProtoBuf became the communications layer and we depended heavily on Google's Guava and Injection libraries (and GWT) as well as Apache Jakarta project libraries. The last project I worked on at Tripwire was Tripwire's first Data Warehouse project and made use of my strengths in database work in general and the TE schema in particular. I was part of a small team that researched how to build a Data Warehouse, created the star schemas and developed the initial reports. We hand-built an Extract/Transform/Load process that nearing the end of initial work was achieving in the vicinity of 2000 tps. Much of the complexity of building this project was due to the difficulty of working with the TE schema. I worked very closely with both QA and performance groups to ensure both accuracy and efficiency of the ETL process. I consider documentation, especially of a large and complicated code base, a large part of the job. To this end I created and maintained at least 100 new wiki pages on trouble-shooting and extending TE, development at Tripwire in general and on specific technologies. In particular I became the expert on the TE schema. I created and maintained documentation of the schema - with information on each table and column, the object relationships between the tables, a mapping between the classes and the tables and surprising gotchas and sample queries as well as the foreign keys. The foreign keys themselves were a bit of a challenge in that without referential integrity, consistent naming conventions or sample queries, the foreign keys had to be pulled from the source code itself. |
|||
|
uXcomm - Beaverton, Oregon |
|||
|
CNN Internet Technologies - Atlanta, Georgia |
|||
|
Matrix Resources - Atlanta, Georgia |
|||
|
nuBridges, LLC. - Atlanta, Georgia Conceived, designed (using RUP, Visio and Enterprise Architect) and implemented next generation electronic commerce system on a distributed platform, delivered as hardware. Part of the original founding group that brainstormed new ideas (Electronic Commerce Appliance, Remote Integration, Profiling, Business Activity Monitoring), wrote business plans, formed a team and then a company, selected markets and hardware and software and infrastructure and then as Chief Software Architect and Lead Programmer, brought several products to market. Java (JDBC, JMS, MDB, JBoss, J2EE, EJB, Web Services, SOAP), SQL (PostgreSQL, Microsoft SQL Server, MySQL, DB2), Linux, BASH, PHP. 20 Development project at peak. Completed 15 version/releases in 3 years and delivered 13. Java (IDEA, JDBC, JMS, MDB, JBoss, EJB), SQL (PostgreSQL, Microsoft SQL Server, MySQL, DB2), Web Services (SOAP), Linux, BASH, PHP, IDEA, TWiki, BugZilla, CVS, RUP, Enterprise Architect. Designed or participated in design of 400+ database tables across 10+ subject areas across 20+ Services. Proved small footprint system out to a minimum sustained 1 tps. Built Profiling/Notification system in java using nmap, arping, smbclient, ftp, slocate, sax and jdbc. Designed schema in PostgreSQL, to hold profiling, notification subscriptions. Supported databases using java JDBC included Microsoft SQl Server both with standard driver and open source freetds driver(changes submitted), PostgreSQL (submitted changes to open source Postgres JDBC driver), MySQL and DB2. Notifications were delivered as email or jabber from java. The Profiling system made use of Event, scheduling and notification systems written in java, jms, jdbc and SOAP. These systems were eventually converted to a more formal SOA using EJB. Built remote appliance capabilities to support a small footprint electronic commerce appliance for use at small to medium sized companies. This included the idea of provisioning where the box would come for the first time at a customer site - so required a certain amount of profiling and hardening of the box's initial environment in a mixture of java and bash. The remote appliance connected to a mother appliance via SOAP, and the mother appliance connected to the remote appliance via SOAP as well over a SSH tunnel. Tracking and monitoring of the remote appliance by the mother appliance, including heartbeats, probes and updates, reused the event, scheduling and notification systems of the profiling system. I designed and implemented much of the appliance/mother system. I also created a set of logging and trouble-shooting subsystems to make multiple appliances easier to manage (HTML, PHP, Java, LOG4J, BASH, sed, awk, cron). A later version of the electronic commerce appliance included community management capabilities which required much greater portal access. This was implemented in JSP with struts using EJB's (stateless session beans) and Hibernate. I was part of a team that converted the earlier code to stateless session beans and Hibernate. At the same time, Tomcat and JBoss was upgraded, the JMS usage was converted to MDB's, and the services themselves converted to a SOA implemented as stateless session beans. Also at this point initial investigation and implementation was performed using JMX and to a lesser extent JCA and JAAS. |
|||
|
Harbinger - Atlanta, Georgia In 13 years at Harbinger, I worked for 7 different groups, performing a multitude of roles - starting with Software Engineer and ending with Software Architect with stints as a Software Development Manager and several as Project Lead. At the beginning of my time, Harbinger was a 17 person startup - which eventually became 1100 people (300 at the main site in Atlanta) and went public, before being acquired by Peregrine 12 years later. My last role at Harbinger was as the Software Architect leading the design of a next generation cross-platform EDI platform using Java (with Rose, RUP, BEA, Oracle, Perforce). The intention of this project was to finally combine in one offering a single code-base that would support client and service, small and large customers - using the knowledge and experience gained after much internal development as well as many acquistions. Initially I was part of, and then managed an 8 person team responsible for a DOS based EDI client (using CWorthy), C, with light assembler, Btrieve, thru five versions. It also included the creation of an interpreted response rule language for transforming EDI documents. I then joined the services group as a senior engineer, where I supported high-availablity, mission critical applications as part of the Harbinger EDI Value-Added Network. This involved creation of an evolving high-volume event-oriented system on Tandem, including the creation of a server structure framework to support rapid creation of pipelining special service daemons. While with this group, I was responsible for bring C and SQL to the group, porting of Sun's Open Network Computing RPC (ONC RPC) to the Tandem and the initial transition to Sun from Tandem. At that point I joined an internal startup - Harbinger Net Services - charged with bringing Harbinger on to the Internet. This work included Business Plans, Product Plans, initial investigation, interviewing and hiring, and transition to C++. Included NT and Sun development, initial work with C++ class library RogueWave, and beginning of Instant Net Presence project. Initial Harbinger web site developed. Initial blender development - an interpretative cross-platform language to support html with embedded logic, database and connectivity code. Creation of Web Registration Service, designed to semi-automatically register web sites - never launched - but became the library kernel for all later products and projects. Creation of internal Intranet web site. After several projects related to HNS, I became the lead on the project to port our proprietary Electronic Document Interchange (EDI) Value-Added Network (VAN) from Tandem to cross-platform open-standards implementation, including movement of all customers (40,000+). Analysis, planning and design of the cross-platform UNIX based IVAS as a complete replacement for the Tandem based VAN. Standardize/Redesign of Internet Value Added Service as well as port to NT. Extension of framework from earlier Internet based client/server products to fully cross-platform reusable daemon/service syslog/eventlog configuration file/registry native framework available on NT, HP, Sun. Also included the organization of classes written for other products and platforms into libraries such as general, database, networking, cryptography and so forth. Coaching of programming staff through C to C++ transition. Twenty developer project. One other project of note wwas the creation of the transaction portal external and internal web-site for get2connect.net for which I was Technical Lead. Anything and everything to get this site going and make it a success from formatting html pages, to writing book reviews, editing as well as creating standards content. Included learning ColdFusion, creating and implementation of a full authorization system. Setting style guides. A tremendous amount of database analysis and reengineering, as well as conception and creation of several hundred pages of internal support screens. ColdFusion, SQL, HTML, C++. Fifteen developer project. |
|||
|
National Financial Computer Systems, Inc. - Snellville, Georgia
|
|||
|
Certifications |
May 2000
Certified ColdFusion Developer
|
||
|
Education |
June 2007
VMware Infastructure 3: Install and Configure Georgia State University - Atlanta, Georgia |
||
| Awards |
1998 Nominated and Appointed - Senior, Member Technical, Staff 1996 Nominated and Appointed - Member Technical, Staff
1983
National Merit Scholarship Finalist |
||
| Professional memberships |
ACM - Association for Computing Machinery
1989-1994 ASC X12 - EDI Standards Committee - voting representative. |
||
| Writings |
Oct 2003 - Patent Submission Abstract - Secure Real-time Virtual Peer-to-Peer http://philmcrew.com/nuBridges_vp2p.pdf Jan 1996 - Blender - an early C++ based alternative to PHP, JSP - http://philmcrew.com/BlendThenServe.pdf |
||
| Interests and activities | Bibliophile . Acoustic Guitar. Hiking |