No Title
cv: 5181 bekijken ------------------------------<-<- pagina terug
  • Reageer per email
  • Bel voor bemiddeling
  • Naar alle CV's

Software architect en ontwikkelaar

1 mei 2007
Delphi opdracht

1973-1979 Moscow Institute Of Electronics Technology
M.Sc. in Electronics Engineering (Summa Cum Laude)

Fluent English, native Russian, intermediate Dutch

Object-oriented programming
Design patterns, UML
RAD & XP methodology
Goal-directed UI design
Complete program life-cycle

LANGUAGES: Object Pascal, PHP, C++, HTML,JS, Prolog
TOOLS: Borland Delphi/Kylix, WinCVS, Subversion, VSS, PVCS, Perforce
DATABASES: Firebird, ADO/Access, MySQL, Oracle, MSSQL, Paradox
METHODOLOGIES: OOP, refactoring, design patterns, extreme programming, UML, goal-directed UI design
KNOWLEDGE DOMAINS: Diagram editing, conversion, porting/reverse-engineering legacy applications, databases, Internet, GIS, resource planning, discrete simulation
HARDWARE: PC, VIA Mini-ITX MS160 search co-processor board, DEC PDP, DEC VAX

October 2005 - present

Mendix - Software house
As software developer upgraded existing suite of diagram editors (ERD/Workflow/WebForms) developed by TUDelft students to a commercial status by fixing bugs and implementing new features. Refactored duplicated code dealing with graphical output in three editors into a single generalized viewport engine. The resulting viewport was lightweight enough to depict complicated drawings without flickering even with full content dragging and fast enough to allow proportional resizing of tables in Forms editor in real time. Subsequently refactored first monolithic version into a second generation which used plugin editors communicating through software bus.

June 2004 - September 2005
HEXAPOLE - Industrial automation
As Software Developer maintained various Delphi applications. One of them used Excel as a reporting engine and needed speedup for complex reports which could take 2 hours for generation. As a result of optimization report generation was speeded up by a factor of two. For another distributed application for car dealerships developed automatic version updates over the Web, using either a static list on a Web-page or a Web-service.

Ported a large legacy application (142 executables) for a reseller. The port was from Turbo Pascal and flat files under DOS to Delphi/Firebird under Windows. This included reverse-engineering of missing source code. About 10% of the 580 source units were proprietary (of now defunct company) and missing. Porting commenced in two steps. First, compatible UI layer was implemented with the help of Windows console API, so that application could still run off flat files but in a Win32 environment. Second, a compatible database layer was developed so that flat-file access was translated into Firebird SQL behind the scenes. As a subproject a data pump was implemented to facilitate porting of current customer data to Firebird. To improve robustness of recovered user interface burn-in test functionality was implemented (automatic key presses generator and logger).

Created a data-pump to recover data from a legacy application being ported to Delphi. This was a warehouse application written in Amber Software framework for DOS (proprietary and undocumented data format). Data inconsistency resulting from manual input (mistyping, license plates merged with company name, etc.) was cleaned up.

December 2003 - July 2004,
COPE IPS (Leiden) - questionnaire software for the Web
As Software Developer did customer-requested modifications for an PHP-based questionnaire system. In just 4 months secured the release of the new version of the company's flagship questionnaire product Quaestio, written in Delphi (4 Mb of source code): upgraded questionnaire designer viewer to a polymorphic one, using either IE ActiveX or imbedded HTML viewer (for backwards compatibility), upgraded question navigation tree from Microsoft control to an open-source product with significant increase of flexibility (added drag and drop of question groups), improved speed of processing large questionnaires (20s processing time against 2 min with old version), revised product documentation written in XML (DocBook).

September 2003 - December 2003,
DD Informatica (Hoofddorp) - workflow management systems
As Software Developer performed modifications to an existing suite of products to create a custom workflow system for use in invoice procurement process at municipality Groningen. Developed a front-end for entering scanned invoices into the system. Developed an extension to existing passive document object to allow it become active, that is, carry data that can be acted upon en-route.

July 2003 - August 2003,
Developed a suite of tools to facilitate job search on the Internet:
Web-site spider to search for a set of keywords (e.g. Delphi;Oracle)
Google job queries database highlighting changes (new sites in query results)
Extraction of employers data from online databases

December 2001 - June 2003,
ARS Traffic & Transport Technology (Den Haag) -
Custom software development house for transportation industry.

As Software Engineer developed parts of a custom GIS for the exceptional transport authority (RDW/TET). Designed and implemented a mapping engine for displaying geographical information and user-level data (routes and their restrictions) using Delphi and Oracle. Implemented conversion of data and shapes to be used from Teleatlas database (Multinet).

Major achievements were:
Ensuring acceptable performance, given the large amount of data involved (150 Mb shapes, 300 Mb Oracle data), and also building flexible enough architecture that could adapt to constantly evolving customer requirements. The resulting response time with the database of the complete Netherlands was less than 2 seconds in the worst case.
Solving unanticipated problem of yearly geographical updates from Teleatlas: first, the format of tables and even database structure itself changed significantly between 2001 and 2002 updates. The second problem was even more fundamental: user data, connected to old road segment identifiers, had to be recovered, as about 10% of 1.5 million road segments in the Netherlands were changed both in geography and identification. Object-based design of conversion routines helped with adapting to source data change and use of geometrical matching allowed for semi-automatic recovery of the bulk of data.
Having a flexible architecture, so that it could be adapted quickly to suit other projects, where a different amount of zoom levels and map resolution was required.

In a transport planner project for freight railroad operator designed domain objects and developed an underlying object persistence framework (OPF). Using a centralized mechanism for object storage achieved two goals:

shorter development time (all objects inherited the same mechanism, rather than used custom SQL to interface with MS Access - the development DBMS)
made persistence independent of the underlying DBMS, so that it could be easily ported to SQL Server, or, in fact, could operate on several different databases as was expected from the customer environment, already operating two legacy databases.

Advised a PDA-based mileage registration project on aspects of design and user interface. This project was aimed at a mass market so guidance on goal-directed user interface principles was important.
In all projects interfaced to remote development teams in company's subsidiary in India, acting as a technical lead for aspects of the project that were delegated there.

August 2001 - September 2001,
Every Angle (Gouda) - SAP supply chain visibility

As a Senior Delphi Developer did pair-programming (XP style) of a custom database driver in Delphi to improve performance as compared to BDE and Advantage. Implemented performance tests to obtain figures of 25% increase in speed for locate by key and 300 % for direct record access. Could not achieve more because of a sudden company bankruptcy.

June 1999 - July 2001,
Mascot Systems (Amsterdam) - software consultancy.

As a Software Engineer was assigned to the Simula project designed to lower the TCO for KPN Telecom's in-house developed billing applications by predicting their performance with the anticipated increase in load on the communication infrastructure. In this capacity did research, testing, development and knowledge transfer.

Distributed application performance research:
Assigned to the task of identifying bottlenecks in the KPN Telecom's distributed billing applications did performance testing and collected a large amount of test data, using a variety of sources, including application log files, Oracle traces, network traces, servers load. Analyzed test data and identified several important bottlenecks. This allowed the development team to take corrective action in regards to performance.
Introduced the concept of performance regression testing (when none existed before) which increased customer confidence in each new software release.
Analyzing three intrinsic stages of processing performed by corresponding types of executables introduced the concept of optimal configuration where the numbers of executables at each stage were matching in performance thus allowing for highest possible overall performance.
Developed a discrete simulator program that clearly demonstrated that a major bottleneck was not in the processing elements themselves but rather in a central control application.
Researched and implemented ways of fine-tuning Windows NT platform for higher performance (network, memory cache settings).

Distributed test development:
To overcome severe limitations of manual performance testing has developed a test-bed in Delphi which automatically ran tests of distributed applications with varying configurations. Through subsequent refactoring and generalization the test-bed was made to run three quite different applications developed at KPN Telecom. Major achievement was mastering DCOM technology to allow running a distributed application on a PC network.

To find optimal configuration developed adaptive testing algorithm, whereby test progress was directed by preceding test results. For a full testing of a 3-stage configuration of 32 elements one typically needed about 450 tests, each taking 2 or more hours. Faster convergence resulted in 15-20 tests - a huge time saver.
To overcome analysis backlog due to huge amounts of test data developed a visual test analyzer. The program computed vital statistics and visualized the test progress in different aspects so that processing speed, unusual behavior and test quality could be quickly assessed at a glance between dozens of tests amounting up to 100 Mb data logs.
Created several data converters to supply the necessary test input.
To facilitate unit testing of the software developed created a utility to automate creation of Delphi unit tests for the open-source DUnit test environment.

April 1993 - June 1999,
MedIT (Oslo/Norway) - software shop for telemedicine applications

As a Programmer/Analyst, analyzed, designed and developed a general-purpose human resource planning engine in Turbo-Pascal. Major achievement was modelling a heuristic planning algorithm and optimizing it to have reasonable response time on a 386 PC (a minute for 8 nurses/6 weeks with 1-hour resolution). Later ported this engine to Delphi/Win3.1.

Ported legacy Pascal code for a hospital-planning program to Turbo-Pascal 5.5. Achieved nearly 50% code reduction due to use of structured methods.
Analyzed, designed and developed in C++ a manual planning program for Norwegian hospitals. A custom spreadsheet closely mimicked paper-based planning method used by the nurses. Because of limitations in resource usage application was written to the raw Win32 API without any interface libraries.
Analyzed and together with another programmer implemented in C++ a forms management system for promotion of non-numeric search coprocessor board from MRT Micro (Norway). The major achievement was implementing an OO wrapper library around the search hardware that allowed transparent use of its hardware capabilities. Using Turbo Debugger uncovered a major bug in hardware driver without source code.
As a Senior Software Developer guided by a system analyst designed and implemented in Delphi/Interbase a wholesaler C/S system with HTML reports. Major achievement was extending functionality of standard VCL components so that any on-screen table could produce an HTML report, capturing master-detail data with linked HTML pages.

April 1991 - April 1993,
Computer Networks Design (Moscow), software house

As a Software Engineer designed and implemented a file transfer program that could read/write legacy VAX Files-11 diskettes on a PC. Major achievement was equipping a program with a character-based windows interface.
As a Software Programmer, designed and developed in Turbo Pascal a thesaurus for document management system. Major achievement was a custom hierarchical database that worked reasonably fast with 10,000 records on a 286 PC. The solution was an engine to store/process efficiently in segmented memory trees of up to 30,000 nodes.

June 1990 - March 1991
ITECS ed(Moscow), software house

As a Software Engineer implemented in Turbo Pascal several add-on programs for a schematics editor: schematics library manager, a program for printing vector schematics sheets on a 9-pin Epson printer. Major achievement was converting vector graphics to raster images at different resolutions and the ability to have a complete drawing made by gluing together individual A4 sheets.

September 1983 - June 1990
Microelectronics Research Institute, Moscow

As a Software Support Engineer developed several formatting programs to assist hardware developers in document preparation. Among them a character-based pseudo-schematics editor.

As a Software Engineer developed a custom parts database to produce a complete bill of materials given specifications for a electronics hardware. Major achievement was using Datatrieve-11 as storage and as a front-end, while complex hierarchical calculations (including two-dimensional sorting of component usage statistics) were made in Pascal.
As a Lead Software Engineer developed several add-on in Fortran and Pascal programs for an in-house VAX/VMS-based CAD system dealing with circuit nets analysis, comparison and transformations and producing control tapes for automatic testing equipment. Major achievement was creating a program to analyze circuits of unlimited size by implementing a persistence mechanism with a b-tree.

May 1982 - September 1983
Radio Research Institute, Moscow

As an Engineer - Technologist supported a semiconductor design CAD CALMA GDS-II on a Data General computer. Wrote utility programs in an imbedded high-level language.

April 1979 - May 1982
Molecular Electronics Research Institute, Moscow
As an Engineer - Technologist supported e-beam lithography system Z20 (Carl Zeiss) which was controlled by a PDP-8 computer. Control software consisted of several paper tapes loaded and run sequentially. Major achievement was using extra banks of memory and machine code programming that allowed integrating all three programs so that topology input from Teletype could be viewed almost immediately in e-beam fluorescence in vacuum chamber.