Robert Falesch

Robert Falesch

Objective

  • Outlet for creativity, feeling of contribution...

Prefer a smaller company or small division within a larger organization.  Those contexts tend to offer greater variety and place greater demands on one's creativity and skill in organizing the personal workflow.  Appreciate most those projects which encourage design and maintenance of testing hooks -- unit test and system test -- during all phases of the development cycle.

  • Day-to-day task structure...

Thrive in any mode of task structure, including solo, team, and paired-programming. XP-mode is appreciated, as it can be stimulating for individual developers and can nurture teams that become very responsive to evolving user requirements.

  • Position, rank in organization...

Prefer full time devotion to tasks of design, test/debug, integration, QA, documentation, and delivery followup, but also have experience in project leadership. 

Summary

Wide range of experience

(software, firmware, and hardware)

    Hardware engineering

  • Module-level, glue-logic (SSI and MSI devices - small scale, medium scale integration)
  • MPU-support devices (LSI - large scale integration) .
  • Inter-system interface/communications logic (minicomputers, hardwired controllers, and microprocessor systems, in embedded and PC-based applications).

    Software development

  • Embedded products (application-level code and system/interrupt level)
  • Multi-user client-server apps (application and system level)
  • Distributed web applications with RIA characteristics (front-end, middle-tier, and back-end development).

Diverse industries 

    Product areas

  • Radio-communications
  • Consumer electronics
  • Telephone call-completion and traffic analysis
  • Health care (clinic / hospital in-house order-entry and census-mgnt. systems)
  • Financial risk-management. 

Skills

Skills

Embedded / Assembler

Some very early projects   Medelco:  A dedicated, hardwired message switching/order-entry system was to be made more flexible and intelligent through interface to a general purpose computer.  The hardwired system would then take on database attributes and could provide inquiry and reporting functions, ad-hoc and canned, while maintaining its efficient message throughput.  In this very small company, all levels of the project were my direct responsibility and included designing and testing the digital logic of the hardwired controller and the minicomputer bus-resident controller, the device drivers, the executive, and the applications software. Tkno-FEP:  I had sole responsibility for the development of an 8085-based communications front-end processor.  Major aspects of this embedded product were modem-handling, data validation at the UART and frame-levels, and communications with the host which involved the classical data-transfer and control handshake functions. TMS-TE500:  A new communications protocol was to be implemented in an existing embedded MPU product.  I designed (including a suitable test-data/protocol generator), coded, and tested the new software.  Also involved was a new modem controller adapter card which I designed and for which I wrote the drivers.   Chameleon:  I designed digital circuitry for a 68HC11 embedded project, specified the software and functional requirements.  Also selected the switching 7 watt DC-DC converter (CALEX), and the modem (XECOM), and designed all glue and interface logic.

OS/2, Presentation Manager

Older Projects under OS/2 I've designed and coded several multi-threaded OS/2 data collection applications.  Some used commercial data-communications packages.  The central technique I use is a finite-state methodology, table-driven, to identify and parse the input and invoke the appropriate validation suite.    SDC Risk:  An application which accepted stock-trades from Lotus-Signal® and performed the front-end processing for a financial risk management system hosted by OS/2-PM.   Allegro-Sugarland:  I specified and coded a major data-collection subsystem, whose target and development were OS/2.  This multiple communication-port application is the collection node of a LAN-based MIS system which polls data solicited or unsolicited, interactively or in batch, on groups of eight simultaneous asynchronous channels under the control of a communications coprocessor.  It maintains a schedule of polls required on a per site basis, validates the raw data, generates error notification and retries.   SDC: I was technical lead on a migration project to Windows-NT/2ooo from OS/2-PM.  The OS/2 product depended upon an ISAM file manager by dbVista (Raima DataManager).  The only native database manager available to us at that time (pre-release) under Windows was the Microsoft SQL Server, and the development cycle to convert to it was deemed prohibitively long for our initial roll out.  I then conceived of a methodology to utilize named pipes to communicate from the ported PM programs running as native WIN32 applications, to a character-based OS/2 application, running under the NT kernel, which, in effect, functioned as an OS/2 Raima database server running transparently under Windows.  This trick of encapsulating an OS/2 process and thus retaining the original OS/2 database API under Windows enabled us to make our initial roll out, with respectable runtime performance.

Flash AScript, Flash Remoting

I designed and participated in about half of the coding for the browser-based Flash front-end of a large multi-user web application (again, the “Willow” product).  Communication to the ASP.NET server was via “Flash Remoting”, which serialized to standard .NET data objects and which allowed the front end developers to use normal built-in Flash data and communications classes. This involved heavy dependency on .NET’s XML properties and the Dataset class.  I took over the final development and all the maintenance of the server-side code as well.

Java

One non-trivial project   Pre-Willow:  I designed, coded, and implemented a series of Java browser applets as a prototype / proof-of-concept in preparation for the “Willow” product.  This also involved the appropriate server-side code (C++/MFC) which instantiated a service socket and server thread for every incoming connection request.  The IDE was NetBeans.

C#, .NET, ASP.NET

My major C# / .NET Project   Willow Project:  For the same client (see “CNAMS Product” in the C++ section) in a team development (as team leader), I recently finished a web based design (ASP.NET, Flash Remoting) which collects streams of SS7 link-loading records from up to forty-eight remote data probes (the client’s bread-and-butter dedicated telecom collection device) and presents the data graphically in near-realtime, saves the data for histogram and archival purposes, and applies realtime thresholds which generate alerts of various types.  This is the “Willow” project referred to in some of the sidebar examples.

MFC (Microsoft Foundation Classes)

(MFC projects are highlighted above in the C/C++ section)

C/C++

Some C++/MFC Projects   FEP Project:  I performed the major design and coding for a new PDP-11 based data-collection front-end subsystem for an existing telephone traffic reporting system.  Initially the system dialed up remote sites on various collection schedules and intervals.   Printing Press: I designed a Windows server application which controls ink delivery to newspaper printing presses.  Multiple nodes are used in a TCP/IP based LAN, and the processes communicate via a socket interface.  Embedded MPUs (68HC16) which control digital ink pumps are multi-dropped from the Win32 systems and form secondary LANs on a proprietary protocol.  I designed and coded the class library (atop MFC), wrote all of the user interface code and much of the communications code. CNAMS Product: Most of my recent experience has been team-based, but as a solo developer, I designed a Windows-XP based system for a client who provides telephone call-collection systems to utility companies and regional/long distance carriers.  This system collects data from streams transported over proprietary protocols or TCP/IP sockets, and ultimately inserts reduced data records into an Oracle database.  Installed systems typically handle 70 to 100 million calls per day, while performing realtime analysis and record merging in realtime.  I paid careful attention to software reuse and extensibility in this design.  Performance was an issue, and great dependence on multithreading yielded a design with excellent throughput characteristics.

Work History

Work History
Jul 1992 - Present

Principal Consultant

Allegro Systems
Sep 1989 - Jul 1992

Software Developer

Systems Development Corp.
Apr 1981 - Sep 1989

Software Developer

Tekno Telecom, LLC

Education

Education

Assoc.

DeVry Institute of Technology