Frederick P. Stluka

Bristle Software, Inc.
1011 West King Road
Malvern, Pennsylvania 19355-2004

http://bristle.com
fred@bristle.com

http://bristle.com/~fred

SKILLS

Systems Windows (XP, 2000, NT, Me, 98, 95, 3.1), Linux, Unix (Sun Solaris, Apollo, BSD, BSDI), X Window System, OS/2, DOS, VAX/VMS, IBM VM/CMS
Programming Languages Java, JavaScript, Visual Basic, C++, Perl, Unix shells, Ada, REXX, C, Pascal, Fortran, assemblers
Web Languages/ Protocols JavaScript, JScript, VBScript, HTML, DHTML, CSS, XML (DTD, DOM, SAX), XSL, XSLT, XPath, CGI, RSS, Atom, SMTP, FTP, HTTPS, DNS, WSDL, SOAP
Web Frameworks Java servlets, JavaServer Pages (JSP), JavaServer Faces (JSF), Apache Jakarta Struts, Apache Jakarta Velocity, Microsoft Active Server Pages (ASP)
App Servers Apache Tomcat 5/4/3, BEA WebLogic 8.1
Web Servers Apache HTTP Server 1.3, Sun/Netscape iPlanet 6/4.1, Netscape Enterprise Server (NES) 3.62, Microsoft Internet Information Server (IIS) 5/4
Web Components Apache Xerces XML Parser 1.3/1.2/1.1, Apache Xalan XSLT/XPath Processor 2.0, MSXML.DLL XML Parser 1.4/1.3/1.2, Winsock OCX 6.0
Databases,  Data Access Oracle 9i/8i/8.0/7.3, Microsoft SQL Server 2000/7.0/6.5, Interbase, Access, ADO, RDO, DAO, ODBC, JDBC, Perl DBI, SQL Navigator, DBVisualizer 4.2.2, TOAD 7.5, SQL*Plus
Component Technologies J2EE, Microsoft OLE, COM, DLLs, ActiveX Controls (OCX, VBX)
Developer Tools Cygwin 1.5, Apache Ant 1.6, Eclipse 3.1, JetBrains IntelliJ IDEA 4.5, Borland JBuilder 9, Oracle JDeveloper 2.0, JUnit 3.8.1, Apache log4j, Microsoft Visual Studio 6.0, FrontPage 2000/98, PuTTY, WinRAR, WinSCP, RoboForm
Unix perl, yacc, lex, make, cvs, rcs, sccs, awk, sed, csh, sh, tcsh, bash, ant, cron, mail, pine, telnet, rsh, ssh, ftp, iptables
Java Sun Java 1.4.2/1.3.1/1.2/1.1/1.0, JDBC, Servlets, JSP, Ajax, Javamail, J2EE, WebApps, EJB, JMS, Web Services, Applets, AWT, Swing, Microsoft Visual J++ 6.0/1.1
VB Visual Basic 6/5/4/3/2, VBA, VBScript, Visual Modeler
C++ Microsoft, Borland, Zortech, gcc
S/W Mgmt Concurrent Versions System (CVS), WinCVS, Microsoft Visual SourceSafe (VSS), NMake, Systems Management Server (SMS), Intersolv PVCS Version Manager, Configuration Builder, Tracker, Mercury Test Director, Seagate WinInstall, Unix cvs, rcs and sccs, VAX CMS
Debugging Microsoft Script Debugger, XML Spy, PC-lint, SpyWorks, Spy++, PView, PSpy, OLEView, NT Event Viewer
GUI Components Microsoft WebBrowser OCX, DHTMLEdit (TriEdit) OCX, FarPoint Spread/OCX, TabPro OCX, Sheridan Data Widgets
Office Microsoft Office 2003/2000/97/6.0/2.0 (Word, Powerpoint, Excel, Outlook), Visio, MediaWiki, Lotus Notes 4.5/4.0/3.2, Mozilla Thunderbird, Netscape Messenger, cc:Mail

STRENGTHS

Teamwork, initiative, ability to learn and teach, customer and quality focus, effectiveness, broad range of experience.  My greatest thrill is to learn a new technology, teach it to others, and use it to quickly develop reliable software that makes its users more productive. While performing assigned tasks, I also make significant unsolicited contributions to the team. On my own initiative, I have developed many tools that have gained company-wide acceptance: automated regression test tools, text editors, network file transfers, configuration management tools, e-mail programs, XSL debuggers, and reusable software parts.  Finally, I have received numerous awards for teamwork, consistently "ironing out the rough spots" to keep the team working smoothly.

EXPERIENCE

1996-Present   Bristle Software, Malvern, Pennsylvania

2005-2006:  For an on-line bank, supported and enhanced Web applications, Web services, and underlying architectural components, using Oracle 9i, WebLogic, Apache HTTP Server, JSP, Struts, EJB, JMS, log4j, JUnit.

  • Enhanced login to use "Multi-Factor Authentication" images and phrases obtained via SOAP calls to the Passmark Web Service.
  • Converted Web site from HTTP to HTTPS.
  • Implemented various new features and bug fixes.
  • Created Wiki for use by developers containing:
    • Comprehensive installation/setup/configuration guide for development environment.
    • How-to guide for implementing new features, debugging problems, searching logs, etc.

2004-2005:  For a small dot-com company, helped develop a JavaServer Faces (JSF) engine and set of components.

  • JSF Engine Development
    • Developed several pieces of the JSF engine, including bean discovery, value bindings, method bindings, component bindings, and event generation. 
    • Re-wrote several pieces to make them compliant with the emerging JSF standard.  
    • Re-factored the Java class tree for improved code sharing and manageable modules.
  • JSF Component Development
    • Developed Integer and Date JSF components to support user entry of integer and date (month/day/year) values with internationalization.  Wrote the Java classes for the components, tags, and renderers.  Also wrote the JavaScript code to do client-side validation in all major browsers (IE, Netscape, Mozilla Firefox, Opera, etc.) 
  • Demos, Documentation, Training
    • Developed demos and user/programmer guides for use at the product Web site.  
    • Taught team members advanced Java topics, like thread synchronization.
    • Taught team members how to use JetBrains IntelliJ IDEA, Microsoft Script Debugger, CVS, and other development tools.
  • Configuration Management
    • Introduced the team and the company owner to the concept of version control.
    • Installed and administered CVS.  
    • Used Ant to automate builds, regression tests, and releases as JAR, WAR, and EAR files.
  • Unix System Admin
    • Configured Unix firewall to safely support remote access by off-shore developers.  
    • Automated backups via cron and tar.  Debugged and resolved network hardware issues.

1999-2004:  For a large multi-national pharmaceuticals company:  (See details)

  • Developed a 3-tier Web application architecture (see diagram) for clinical trial management software.  The client estimates savings of 15 million dollars per year.
    • Presentation Tier
      The presentation tier consists of DHTML, XSL, CSS, JavaScript, and Ajax.  All files are downloaded from the Tomcat web server, and displayed and executed by the IE Web browser.  They use the MSXML component to implement Ajax-style loading, sorting and filtering of XML, and generation of HTML via XSLT transformations.
    • Business Tier
      The business tier consists of Java components.  Access from the presentation tier is via Java servlets.  Access to the data tier is via JDBC using a shared pool of connections.  The Xerces XML parser and Xalan XSLT/XPath processor format XML to send to the presentation tier.
    • Data Tier
      The data tier consists of an Oracle 9i database.  All data is retrieved via database views and updated via PL/SQL stored procedures.  Foreign keys provide referential integrity, with triggers maintaining audit tables and additional referential integrity.  Packages add structure to the stored procedures.
  • Prototyped the following alternatives to the above tiers, demonstrating each combination before choosing the above:
    • Alternative Technologies for Presentation Tier:
      • Java applets running in a web browser, using Xerces to manipulate XML and generate HTML.
      • Visual Basic, using MSXML to manipulate XML.
    • Alternative Technology for Business Tier:
      • Perl CGI scripts using DBI to access the database.
  • Enhanced a VB, RDO, and Oracle 7.3 application to track the inventory and distribution of drugs.
  • Developed a Web-based reporting system using Perl 5, DBI, and Oracle 7.3 database.
  • Developed a generalized database front end using VB to access Oracle 8 and Oracle 7.3 databases.  It presents the user with a list of available "plugins" (stored procedures and SQL*Plus scripts), executes the selected plugin with the specified parameters, and displays the results to the user.  It is structured as 3 layers of cooperating components:  Oracle packages in the database, COM business components, and ActiveX Controls (OCXs) for the user interface.

1996-Present:  Webmaster and Linux System Admin for the Bristle Software Web site (http://bristle.com).

  • Installed and administer the Linux server running Apache Web server, Tomcat, SMTP, DNS, etc.
  • Author the Web pages to house my collection of thousands of tips and techniques on topics including Java, XML, Windows, Unix, VB, ASP, C++, SQL, X, Perl, HTML, Lotus Notes, and VAX/VMS.
  • Maintain a mailing list for each topic and mail the tips to subscribers as I add them to the Web pages.
  • Wrote my own mailer to do the list mailings, most recently in Javamail, previously in VB directly using the SMTP protocol.
  • Currently, re-writing tips pages in XHTML and processing them with XSLT transforms to generate RSS and Atom feeds.

1996-Present:  Developing and supporting open source Java  and JavaScript libraries, including:

  • Applications:  Image scaler, URL downloader
  • Web Applications:  Slideshow, MemoryMeter, ConnectionMeter, Clock, ServletDebugger
  • Packages/Subsystems:  Logging, Database connection pooling, File and directory operations, Command line parsing, JPEG manipulation, etc.
  • Classes:  FTP, HTTP, HTML, SQL, XML, Enhanced Java data types (strings, exceptions, maps, arrays, lists), etc.

1998-1999:  For a small medical technology company, developed a database-driven Web site, using SQL Server 7.0 and IIS 5.0.  Wrote a VB 6.0 maintenance program that allows the user to edit Web page fragments in a WYSIWYG HTML editor similar to Microsoft Front Page or Word.  It stores the fragments in the database.  The complete Web pages are assembled from the fragments via ASP and ADO(See details)


1996-1998:  For a major financial services and mutual funds company, I joined the Technical Architecture and Core Infrastructure team that defined the software architecture for corporate applications on Windows NT, and produced reusable software parts.  (See details)

  • User Interface Framework (UIF).
    Designed, developed (in VB 5.0), documented, and promoted the UIF (a 1998 predecessor to the RCP -- Rich Client Platform -- concept that gained popularity in 2007).  It supports runtime "snap in" of binary components. Application developers produce screen fragments as ActiveX controls (OCXs).  The UIF assembles the fragments, reading config files to dynamically build notebook tabs, menus, toolbars, etc.  This allows dynamic snap-in of new or modified fragments, dynamic security-driven configuration, crash protection between fragments, and faster startup.  Using a RAD (Rapid Application Development) approach, I created a working prototype in 2 weeks, and evolved it for 2 years as it was adopted for use in all in-house client/server applications on Windows NT.
  • Core Infrastructure Team
    Improved the software development process to include version control, automated builds and installs, regression tests, bug-tracking, documentation, and regular quarterly software releases.  Support calls are down, and the users are happier.  Created an NT Developer's Guide as a Lotus Notes groupware application to achieve buy-in from developers.

1991-1996 Shared Medical Systems (SMS), Malvern, Pennsylvania


Computer programmer and tech lead.  Developed distributed PC/LAN platform for hospital applications, using VB and C++ on Windows and OS/2(See details)

  • Implemented a User Interface Builder similar to VB (before VB existed), in C++ under OS/2.
  • Led the company's move from OS/2 to Windows.
  • Enhanced VB 3.0 to support "data-awareness" and drag/drop application customization.  Microsoft requested that I visit their corporate headquarters in Redmond to demonstrate this.  Much of the same functionality has since appeared in VB 4.0, 5.0, and 6.0.
  • Wrote VB custom controls (16-bit VBXs and 32-bit OCXs).
  • Chaired C++ Coding Standards Committee, and wrote the standards document.
  • Award for saving 6 man-months by conceiving a template-driven approach to code generation.

1987-1991 Software Productivity Consortium (SPC), Herndon, Virginia

Computer programmer and tech lead.  Wrote CASE tools in Ada, C and Pascal using the X Window System on Unix.  Tools include interactive graphical editors for OOD diagrams stored in a relational database, a generic "autolayout" package for node-arc graphs, a yacc-based parser for Ada code, and internal reuse libraries.  (See details)

1982-1987 Raytheon Company, Sudbury, Massachusetts


Computer programmer.  Wrote multi-tasking real-time operating system emulator in Ada, CASE tools in C using Unix yacc and lex, and graphics device drivers in Pascal and assembler(See details)


EDUCATION

1982

 

 

University of Pennsylvania, Moore School of Electrical Engineering
BSE, Computer Science and Engineering, GPA: 3.6/4.0 (Magna cum laude)
Thesis Design and Implementation of a 3D interactive computer graphics package. Design was published in ACM "Computer Graphics" journal, and implementation used for instruction and graphics research at the university.
Ongoing Conferences Java, C++, VB, Windows, Internet, Graphics, Ada
Classes Java, XML, Oracle 8, MTS, MFC, VB, COM/OLE, Design Patterns, Advanced C++, X Windows Programming, Software Engineering with Ada, User Interface Design, Object-Oriented Design, Probability Theory and Petri Nets, IDL, VMS Internals.