This is the resume for Joe Dorocak aka Joe Codeswell:
- LinkedIn Profile: LinkedIn.com/in/joedorocak
- Website: JoeCodeswell.com
- Blog: JoeCodeswell.wordpress.com
- GitHub: github.com/JoeCodeswell
Updated: Wednesday, March 30, 2016
OBJECTIVE: Telecommuting Consulting Software Development – To architect, design, write and verify code for an organization that enthusiastically serves their customers and fosters technical information interchange among their engineers.
EDUCATION: M.Sc. Computer Sciences, University of Massachusetts.
VALUE PROPOSITION TO HIRING ORGANIZATION:
-I work well with users to define requirements because I am a good listener.
-I generate excellent designs. They meet requirements success criteria because I have a good “marketing” understanding. They are implementable because I understand the detailed challenges being an implementer, myself.
-I code quickly, meeting tight deadlines.
-My code is reliable because I do unit tests as I go.
-My code is readable (has been termed elegant) and so is usable by other team members, both while I am with the project and after I am gone.
-I lead from the pack because I take a gently questioning attitude.
-I am a good project manager making milestones and schedules that are responsive and realistic because of my experience.
-I am a good mentor. I work well with junior people because I show them respect and learn from them as well as give them the lessons I’ve learned from my experience.
-I have Military Systems development experience. I have had a Secret Clearance in the past.
(October 2002 – Present) Joe Codeswell Software Development Consultancy
Developing Cordova/Angular Material app for Android.
Consulted with OVES Management Corporation (OMC) regarding the Performance and Development Flow of their web app, omniavx.com:
- Outside the box: Memoization, Array based (Mathematically Equivalent to Database) Solution with APL inspired Array operations.
- Cython, C, Commanding C from Python
- Python Profiler showed DB interface to be fertile ground for performance improvement.
- Postgres SQL replaced web2py DAL
- Postgres Stored Procedures (Functions)
- Development Flow
- Regression Testing: Python unittest & Selenium based
- Regression Testing integrated with GitHub versioning.
Regarding the above (and other) tasks, I made written proposals, delivered reports and developed tested, running code for use as a model by OMC’s staff. I remain as a contributor with OMC.
- Kivy Blueprints
I have good Python skills:
- Using Python 2.7 I developed code to produce Python controlled audio output “on the fly” from music made with MIT’s Music21. Dr. Michael Scott Cuthbert, creator of Music21, said my solution was “elegant” and made other encouraging comments. See http://wp.me/p1zI3Z-5y
- Using Python 3.1, I wrote a NoteWorthy Composer .nwctxt to XML file converter . See: http://tinyurl.com/yce9guh
- I created a Python implementation of Posterous Inc.’s (Ruby-based) RESTful API2 (http://posterous.com/api/docs/pages/overview). Each of the 60+ API2 Actions have been implemented in a Python class method. All of the Python methods are very well documented, based on the API2 documentation. Here is a link to the current status of my work: http://tinyurl.com/8cx64gr
I have developed web2py apps using:
- Application Layout using: [plugin_layouts, [Amaya, oswd.org], css]
- Custom Forms using: form.custom.widget in the view.
- Deployment using: WebFaction
I have had some part time Software Development contracts in this time frame. My condition has been improving since 2007 when my Stanford neurologist diagnosed me with a copper deficiency. I have been disabled since leaving HP and am presently recuperating.
(10/2001 – 10/2002) Theocom (Ficticious Busines Name for Joe Dorocak)
Startup developing a service that reduces medical administrative costs.
Java development areas include the following. Java Remote Method Invocation (RMI): RemoteException, RMISecurityManager, and Registry classes. Secure Sockets Layer communication: SSLSocketFactory, SSLServerSocketFactory, RMIServerSocketFactory and RMIClientSocketFactory classes. Java interface with the native operating system: Runtime and Process classes and System.getProperty() method. Drag and drop JTree GUI on the client: DragSource, DropTarget, DropTargetListener, DefaultTreeCellRenderer and TreeModelListener classes. XML persisted Java Bean based data architecture: XMLEncoder, XMLDecoder classes.
Also developed automated testing software for the prototype using Java and Perl. And, in support of the Theocom office IT infrastructure, I used VB to manipulate the Outlook Session Object and the Exchange Collaboration Data Objects (CDO) MAPI.Session Object to filter Outlook email messages programmatically, based on the content of the Internet Header. Also used WMI scripts to access Windows 2000 processes, services and scheduled tasks.
(3/00 – 9/01) HP Cupertino Enterprise Java Lab
Wrote Java code in support of the development of HPjconfig, a Java based tool used to tune the HP JRE & HPUX operating system to improve the performance of Java on HP systems.
Using a text editor and command line JDK, replaced code of a programmer who had left with GUI Swing components including JTable. Wrote table model object serialization methods. Sorted table model contents creating an indexed sort class and an associated inner class. Wrote copy and paste functions to help export table data. Packaged the HPjconfig application in JAR format.
Using the Sun jaxp.jar, parsers.jar and specifically using the javax.xml.parsers, org.xml.sax, and org.w3c.dom packages, developed classes to import and manipulate XML based performance parameters for HPjconfig.
Developed GenGoldData and GoldDataSort applications to convert performance tuning data from internal HP format to XML. Specifically using the Element, NodeList, Text, Node and DocumentFragment classes in the org.w3c.dom package.
Developed an expression evaluation application which took arithmetic expressions like “(a+c)*77” tokenized, converted to reverse polish notation, and interpreted results.
Developed an HTML based help system for HPjconfig with page searching and link browsing capabilities, specifically using Swing’s JEditorPane, its .getDocument() method and its addHyperlinkListener event.
Developed encryption classes to support the encryption of the HPjconfig XML database. Specifically using KeyGenerator and ObjectOutputStream to generate and serialize a “DES” key; the Cipher class to encrypt and decrypt the data, and BASE64Encoder/BASE64Decoder show the encoded data.
Successfully deployed an Apache web server with Tomcat’s JSP support, developing JSP server side web pages for technology assessment.
Developed regression testing driver software using extreme coding techniques in Java. Developed an interface for HPJconfig to the HP “Harness-9” automated nightly build testing facility using Perl.
Developed a Partner License Database updating and reporting system. Specifically designed the table schema and updating methodology for the database. For compatibility with Netscape 4 and IE4, wrote a Java 1.1.8 reporting Applet showing the database content with constantly maintained column headers using GridBagLayout, and opening a URL connection to the server data.
(8/99 – 10/99) HP Mountainview
Using HPUX, C, Sybase 11.0, and Microsoft SQL Server 6.5, wrote C code, embedded SQL, PL-SQL stored procedures, SQL querries and updates in support of HP’s Unix Hardware Order Fulfillment System.
(2/99 – 5/99) PersonalDisc
(9/98 – 10/98) BreEZeWare, Inc.
Performed Object Oriented Design (OOD) Analysis on a custom 3-Tier distributed processing system which will be applied to a web based service. The service will be a significant adjunct to the scarce IT resources of small to medium corporations. The OOD Analysis generated inter-object messaging alternatives and attendant bandwidth, performance and development time attributes.
Developed software consisting of Java classes, fields and methods to mimic the desktop attributes of a target system on a client browser. The software used the Enumeration Interface to traverse an XML Document associating icon names with a .gif based icon representation. The software then used Microsoft AFC components to display each icon with name and a selection check box. The software associated a custom “ratio” layout manager with the mimiced desktop container so as to account for possible discrepencies between the target and client display resolutions.
(7/98 – 9/98) Theocom.
Using the GNU C++ compiler on the BSDI UNIX version 2.1, developed a CGI form mail program that successfully decodes the URL encoded text and and emails the content of the associated HTML form to the desired “secret” recipient. The key feature of the program is that the email address of the recipient remains secure, that is, it does not appear anywhere in the HTML page.
(3/98 – 5/98) Calico.
Using Visual C++, developed code in support of the integration of a Visio front end with Calico’s Concinity application. Developed a UML Object Oriented Analysis of existing code using the Rational Rose tool. Added methods and properties which sensing a Visio Drag and Drop event performed necessary state changes to local objects. Developed a special kind of .dll called a .vsl which is used to implement Visio addon features. Using VB 5.0, manipulated Calico’s Concinity application via OLE Automation to input parameters and receive results via inter-process communication.
(10/97 – 2/98) Neuronetics.
Did top down design and architecture of a project to embed the Neuronetics MindWizard product to implement an automated help desk application for the telephone industry. Performed preliminary database tradeoffs between MS SQL Server and MS Access. The software design controlled the questions to be asked of the user and the querries to be sent to the database, as well as the resulting diagnosis. In Microsoft Visual C++ 5.0, using MFC and OLE Automation, controlled the function of the MindWizard shrinkwrap software product. Using Class Wizard, added the Visual Logic Interface Class from the Type Library. Using CreateDispatch created the new instance of MindWizard and processed the SCODE return values. Set cause properties, initiated the Run method and Got effect properties of the MindWizard object. Displayed results in an MFC View based on CEditView. In Microsoft Visual C++ 5.0, using ADO, ActiveX Data Objects and MFC OLE techniques, developed prototype software for adding a database capability to the Neuronetics MindWizard shrinkwrap software product: Created and opened the Connection, Recordset objects. Created and loaded Field objects resulting from Queries.
Using VB 5.0, developed data structures, algorithms and Classes and Program modules that successfully demonstrated the interface of the MindWizard software product with Visio. Allowing MindWizard to activate Visio flowcharts with live data calculations. Using Visio’s VBA, developed Classes and Collections that stored the link and node relationships for a Visio flowchart. Developed procedures to generate Indices that sorted the Collections using indirect methods for speed. Developed a procedure to uniquely identify and separate node objects from link objects in a second pass. Parsed the process nodes according to a Top Down, Left to Right algorithm. (Also developed an algorithm to parse the process nodes by data dependency – this algorithm was characterized as “elegant” by my direct supervisor, Dr. Ram Gurumoorthy, in a report he prepared for upper management.) Executed the process nodes using Ole Automation to activate MindWizard and pass the results back to Visio for display in the data node at the appropriate connection point.
Using VB 5.0, supported development of an Ole Automation Client application which commanded the MindWizard neural net server to emulate the Kieras/Bovair cognitive simulation control panel for use by the NASA Human Machine Interface Design Group. Using VB5, created a custom toggle switch button from scratch using image bitmaps. Performed other GUI development tasks related to this project.
(11/96 – 9/97) THEOCOM.
(4/96 – 8/96) InterWAVE Communications.
Using Microsoft Visual C/C++, Finished porting a UNIX TCP/IP Client/Server – Server/Client application to Windows 95, NT, 3.1 & 3.11. Synchronized socket I/O for command/response proprietary protocol. Altered the WinMain and WndProc to initialize the app with a WM_COMMAND instead of in WM_CREATE. Posted a Windows message just before the message dispatch loop to IDM_INIT_APP. Added extern far function to flush the console output to the main window during file processing as a progress indicator. Added scrolling to the main window using SetScrollPos(), SetScrollRange(), ScrollWindow() API calls. Added several other features to the application including an MFC based filter window which was displayed in a separately spawned process due to the non-blocked TCP/IP socket I/O.
(9/95 – 11/95) I3 Design.
Developed VB Code for shrink-wrap sales force support product for a major software vendor on Win95 and NT. Altered SQL database querries for better performance and reliability. Dynamically updated progress bar under the timing control of the Windows API function – GetTickCount(). Activated DoEvents to allow Windows OS functions to proceed. Updated embedded Access Databases to conform to customer requests. Upgraded VB Code to support User required Menu Changes. Reconciled Standard and Custom Control Properties (Font, Bevel, BevelStyle) to be consistent. Using VB Debug Screen, isolated functional anomalies to form/module, object.method or object.property for Crescent Software’s “PowerPak Pro” Custom Control objects. For example csText masked data input control .ValidateMask, .Mask and .CharacterTable properties were updated for more user friendly functionality.
(3/95 – 6/95) Delta Airlines.
Developed Visual Basic applications that help Delta Airlines maintain their FAA documents. These applications, written in VB 3.0, perform client/server SQL database updates using DDE to a SUN/UNIX server hosting DOCUMENTUM, based on SQL for ORACLE 7.x, Microsoft OLE Automation controlling the Microsoft Word Basic object from VB and Far Point’s SPREAD.VBX.
One application in particular implements an “Integrated Solution” as described in the Microsoft Office Developer’s Kit (ODK). Using OLE Automation it commands Microsoft Word 6.0 to print a document that has been accessed via an SQL query to the DOCUMENTUM/ORACLE server the query uses the ANY keyword to perform an array oriented SELECT on the Database.
The application accomplishes this by presenting a pair of FAR POINT SPREAD VBX’s to the user on the main form load event. The user loads those documents to be printed into the right hand sheet from the left When the user presses the “Send to Word” command button, the App then performs a globally declared Windows API call to check if Word 6.0 had a running instance; if not, it creates a Word Basic object and sends object method calls to the Word Basic engine. Without any further user typing, the methods Open the existing Word document, and perform all the necessary WORD BASIC Commands to print the document list. The VB Word Basic object pointer is finally Set to “Nothing” to shut down the VB invoked instance of Word.
(12/93 – 3/95) Theocom.
1, Visual C++ MFC, AppWizard/ClassWizard, Document/View Architecture, CEditView based App, Dialog Boxes, GDI map modes: Fixed/Isotropic/Anti-Isotropic.
2. UNIX Client/Server FIFO’s/Streams/Pipes.
3. Windows NT Workstation PPP connection to World Wide Web via RAS and NetScape.
4. Developed Visual Basic Application “Your Seven Intelligences” Survey for SERJ Educational Services. Designed multi-question survey using two questionnaire navigation methods:
4.1 Next/Previous Command Buttons for sequential question navigation.
4.2 Question processing Command Buttons for random access question navigation.
Question Checkbox Controls provided feedback for question Frame completion history. Response Option Buttons requested mutually exclusive answers from students. VB “Sub Main”
programming technique used to initialize globals and provide comma delimited File I/O for data export to Excel for further statistical processing. Generated multi-color summary
bar-graph using the “Graph” Custom Control VBX by Bits Per Second Ltd. Used the VB Setup Toolkit to generate an application distribution diskette. (Setup disk based demos possible).
Other Distributed System Client/Server technology projects:
– Ported Enhanced Corrective Action SQL Schema to Access RDBMS.
– Visual C++ MFC, AppWizard/ClassWizard, Dialogs, GDI map modes:
– UNIX Client/Server FIFO’s/Streams/Pipes.
– Installed Windows NT Workstation PPP connection to World Wide Web via RAS and NetScape
(11/92 – 12/93) Network Equipment Technologies.
Analyzed database capabilities of Oracle, Sybase and Informix for use as relational DB application infrastructure. Developed an Excel oriented multi-platform Database Application. Proposed, analyzed, designed, implemented, tested, and documented ACTS, a distributed Client/Server database communication system used to track closure of manufacturing and supplier Corrective Actions (C/A). Designed all table schemas, implemented and tested update & join transactions and reporting functions.
AT&T QA rating in C/A category went FROM LOWEST possible TO HIGHEST possible score. This system was considered CRUCIAL in the ISO-9000 accreditation of N.E.T.. After delivery of the above system, N.E.T. PASSED ISO-9000.
Task-2. Automated Bill of Materials (BOM) communications between ViewLogic (Sun OS/OpenWin) and Maxcim (Vax/VMS) with Excel.
Project was successful.
(7/90 – 11/92) PENCON.
Developed music application in C for sale in the IBM-DOS compatible PC market. Demonstrations are possible. The SING application converts files that contain music shown in musical staff notation using the OEM font line drawing characters, to a structure array of Hertz-Milisecond pairs. The pairs are then played through any ordinary speaker connected to the computer. The speaker need NOT have any special multi-media card associated with it. The programming technique uses a pointer to the structure array. The music may be transposed in half steps up or down before playing. Whole, half, quarter, eighth, and sixteenth notes dotted, undotted and tripled are accomodated as are all standard key signatures.
(4/90 – 7/90) DEC/United Airlines.
Using C and SQL on the VAX/VMS RDB, designed, initialized, updated and maintained a multi-table schema transaction class- ification database supporting United’s maintenance labor data collection facility, AVMS (Aircraft Visit Management System).
(11/89 – 2/90) Kaiser Electronics.
Developed and coded Device Driver for IEEE-488 using C/UNIX/TCP/IP on HP9000 and M68020/VME based National Instruments GPIB-1014 card. Designed test stand for above using LabWindows and Intel 80286. Preliminary tests proved successful.
(10/87 – 10/89) CSC.
Group Leader ARDS ( Advanced Range Data System ) at Edwards AFB (80XXX). GPS satellite based MicroVAX/Ethernet network for for TSPI: FORTRAN/VMS(Internals)/DECNET, GRAPHICS: GPX/C/DATAVIEWS/WINDOWS. Network Management Architecture input for China Lake NW Center Banyan based LAN. Coordinated Operations and Maintenance Specifications for Secure Digital Communications System (T1/Fiber/Microwave) Edwards AFB Test Facility.
(4/87 – 8/87) RAMCOR.
Designed Automatic Test System for Cold Gas Servo for use in Sidewinder missile (HP-300 & IEEE-488).
(11/85 – 4/87) Ford Aerospace and Communications.
Communications Engineer for Fiber Optic Network for Fallon Electronic Warfare Range. Designed fiber layout and Cmux approach. Developed Fiber Optic costing model (T1/Lotus). Chief Communications Design Engineer for SAC Training Range (STRC) Network. (Satellite/80XXX/HDLC). TRS Lead Engineer: analyzed TCP/IP state transition matrix as application layer to network layer alternative VAX/VMS(SMG)/ADA at China Lake NWC.
(5/83 – 9/85) GTE Sprint Communications.
GTE Corporate Task Force on Network Services at GTE World HQ, Stamford, CT: Voice Mail, Electronic Mail (Telenet X.25), Directory Services and Service Management (X.400/Presentation Layer). Did Switch Call Sequence Flows (T1/ISDN/SSN-7), ISO Layer 1-7 Network Architecture, and costing estimates for each function. Previously manager of engineering Network Surveillance Programs. Fifteen People, three areas: Faults Processing (ASYNCH based), Switch Performance Reporting Systems, and Network Status Displays. Budget $3.0M. Processors: Tandem and IBM Series-1.
(1/79 – 5/82) Applied Technology.
Supervisor Advanced Communication Product Design. The group designs digital hardware in support of electronic warfare systems: ATAC-I/O Controller, ATAC-STD protocol unit (GPIB). Plans, reviews and reports on computer product R+D projects. Budget $750k. Past accomplishments include: Consultant in Ulm, Germany to Telefunken AEG; Principal Engineer on EW Array Processor; Proposal Manager for computer purchase by Marconi, London; Program Manager for Military Computer Family program for DoD.
(9/1972 – 12/1978) IBM.
Staff Engineer System Architecture Department. Designed 1553 protocol system for DBNS. Wrote Microcode and developed executive software for CELTS Distributed Signal Processor. System design for B-52 G/H proposal win. Marketing support for NRL, NOSC, AFAL, Army ECOM. IBM representative on EIA group for Computer Architecture. Principal Architect of S/ILM Computer. Microcode and redundancy analysis for Space Shuttle Guidance Computer, 4-Pi AP101-S.
B.S. Mathematics, University of Bridgeport.
M.S. Computer Science, University Of Massachusetts.
Graduate IBM Marketing Class.
“Conditional Syntactic Specification”, Proceedings of the ACM 1973 Conference, August 27, 1973.
“ILM Preliminary Principles of Operation”, IBM Number 73-559-013, September 20, 1973.
“Modular Bidirectional Shift Matrix”, IBM Technical Disclosure Bulletin, Disclosure Number EN873-0214, March 1974.
“System Intermediate Language Machine (S/ILM) Principles of Operation”, IBM Number 74-559-012, Sept 1, 1974.
“An S/ILM Example (with Selected Snapshots of Changing State)”, IBM Number 74-559-017, November 1974.
“APL Compress Array”, IBM Technical Disclosure Bulletin, Disclosure Number EN874-0207, March 1975.
“Structured Control Operators Influence on Microcode Emulation”, Proceedings of the Euromicro 1975 Conference, IBM Number 747000482, June 23, 1975.
“Structured Control Operators Implemented on an Intermediate Language Machine (ILM)”, Proceedings of COMPCON 1975 (Fall), IBM Number 75z000430, September 9, 1975. Also shown at IEEE 1975 Computer Elements Workshop, Dec 10, 1975.
“APL Functions Which Enhance APL Branching”, IBM Number 75-559-002, September 17, 1975.
“Computer Family Architecture (CFA) Concept Plan” White Paper submitted to Dr. Y.S. Wu, NRL, Washington D.C., IBM Number 75-559-016, October 15, 1975.
“IBM Model ML-1 Microstructure Emulation of the AN/UYK-20 Architecture”, IBM Number 75-559-015, Nov 18, 1975.
“Improved Multiplexing for Microcomputer Data Flows”, IBM Number 75-559-015, November 20, 1975.
“Planning a Computer Family”, M.L. Kushner and J.P. Dorocak, National Aerospace Electronics Conference, Dayton, Ohio, IBM Number 77TPA0025, May 17, 1977.
“An Array Processor for Electronic Warfare Application”, National Aerospace Electronics Conference, Dayton, Ohio, May 11, 1981.
“The Sprint Fault Processing System…” GTE Sprint Number 52630-83-1, November 11, 1983.