Michael Lutenko

Objective

Senior Software Engineer position working on leading edge of Java software development in system design and programming. Interesting work with professional and career growth in a dynamic software-development company.

Summary

Fifteen years of progressively responsible experience in software product development specializing in object-oriented technology, multi-tiered, distributed Internet applications and iterative and incremental development processes.

Knowledge of Internet technologies and protocols. Experience designing and developing distributed multi-tier enterprise applications, client-server applications and web applications with the J2EE platform. Experience designing and developing database applications. Experience applying numerical methods to solve problems.

Ability developing applications in team of developers. Ability to plan work, fulfill tasks on term with required level of quality, and write documentation and reports. Full system life cycle hands-on experience ‑ designing, coding, testing, performance tuning, installation, documentation, processing change requests, maintenance, end user training. Making optimal decisions in non-standard situations. Experience developing requirements specifications. Experience working directly with the customer.

Professional experience

 

January 2007 till present.

BridgeQuest Labs. Inc (www.bridge-quest.com)

Senior Software Engineer

 

PROJECTS

 

SEA/RDP

 

The first remote data protection application was SEA/RDP (our Eclipse based product). The purpose was to define the high design for Arsenal Digital’s Service Enabling Application (SEA) Desktop, related to the “PC Services 2.0” requirements. The primary goal for that release was to:

 

          Drive additional service revenue

          Enable a single PC solution (eliminating the need for Enterprise edition for PCs)

          Add features to better position us for winning large PC opportunities

          Advancing competitive differentiation

          Meeting competitive and market pre-requisites

          Meeting current partner requirements

          Meeting requirements for active business development opportunities

          Enabling the new VAR strategy focused on PCs

          Maturing the offering to improve customer experience, reduce churn, and reduce operation support

 

CDP/FPO

 

The next project was “A lower cost PC solution using an existing IBM product: Tivoli Continuous Data Protection (CDP)” – we were really enabling an IBM existing product into S3 - Software as a Service. Basically, as name sounds, it automatically backs up data files remotely as they change to a remote server - which currently they only support a WebDAV server (flat storage).

 

CDP is the newest phase in the evolution of file backup is real time protection. IBM Tivoli Continuous Data Protection for Files delivers a compelling solution offering a unique blend of continuous data protection and scheduled data protection in a single product. Tivoli Continuous Data Protection for Files is a solution for both file servers and user endpoints such as notebooks and workstations. Tivoli Continuous Data Protection for Files exploits the increasing availability of affordable disk storage by offering multiple disk-based target options for copies of your data. Instead of waiting for a scheduled interval, Tivoli Continuous Data Protection for Files backs up your files the moment they are saved, in real time. What's more, it does this effortlessly and transparently, in some cases eliminating the backup window.

 

From a resource perspective, Bridge Quest members were working on two projects at once: 4.0 Upgrade and CDP. For CDP, we were the resources that were most familiar with the server.webdav project, Java Script and some C++. We were required to modify the JS files found in the CDP installation. Bridge Quest members were 100% responsible for the following areas of the project:

  • WebDAV component
  • Our installer wrapping of CDP install, and added functionality of user prompts, interface to webDAV & server side for activation
  • Client side modification of JS pages to prevent some options from being modified
  • Other

 

At a high level, the scope of CDP project includes:

  1. Service enabling Tivoli’s Continuous Data Protection (CDP) into BCRS’s service platform.
    1. Customer Starts (for partner)
    2. Hosts – Start service
  2. Wrap existing CDP client offering
    1. InstallSheld installer prompt for critical pieces from host
    2. Modifying and lock down some configuration settings after new host/client installs
    3. Selection of Seat size.

 

Just like the case with RDPX on IBM Smart Cube, seeking “firm order” prior to device signup was a challenge. This was why a trial period was defined for RDPX on IBM Smart Cube. Different from “Smart Cube”, CDP was not include an upfront trial period and hence the need and requirement for obtaining “firm order”/contract signoff prior to customer creation/enablement.

 

Limitations within CDP allow for either an all configurations locked or none.

 

For the most part, re-used of old school “stream line provisioning” (a.k.a. VRS) forms, but with similar “RDPX on IBM Smart Cube” look and processing logic; along with a few added capabilities. A new installer was created to wrap the existing CDP installer. The CDP installer is run silently from the new installer.

 

FPO with Auto Update

 

We introduced core feature, which was absent before, into CDP/FPO – we developed auto updates. Auto update performs auto update of existent FPO application without human participation. It’s very convenient – we can implement new version of FPO and upload it to the update server – then existent FPO application will be updated.

 

Auto updates were implemented using AutoUpdatePlus. Implementation was done using AutoUpdate+ technology (http://www.autoupdateplus.com/). There are several parts of AU process. First - scheduler - it just invokes AUClient (from AU+). Second - AUClient from AU+ performs real update process (file downloading, dialog showing, running command etc...). We install AUClient with our installer - it's just file named AUClient under "C:\Program Files\Tivoli" folder. But AUClient doesn't run automatically - scheduler run it.

 

Many issues were solved during FPO/AU development – AU supports different OSes – Win XP, Vista, 7; permission issues were solved; scheduler issues; minor vs major updates, and many others.

 

FPO Seed

 

Given that the Auto Update components are independent from FPO/CDP, they could be installed using self extracting zip/exe into an existing FPO installation without AU. Once installed, the AU component would immediately pick up fact that a new release (remember we are refreshing the core CDP produce with this release) is available and drive AU.

 

With this task, we separately packaged all the AU components only (no FPO or core CDP) to be installed in the same location as expected using newest installer.

 

32 bit vs. 64 bit CDP/FPO Installer

 

Support for Seed Install which delivers Windows 32 bit or 64 bit CDP/FPO Installer was implemented using the concept of dropping a seed and allowing it to install the correct version of CDP installer, depending on the OS, for supporting 32 vs. 64 installers.

 

Using the patch concept, two possible packages is posted in our AU war. The patch component determines OS - 64 vs. 32 bit, then. AU occurs downloading the appropriate package, then installation for FPO occurs. In this scenario the activation screens for installation would only occur after AU of real package.

 

The direction was - the seed approach. Install seed, it detects OS, uses AU and that drives the installation of remaining component, which all happens prior to FPO activation to vault.

 

FPO AU in AIR/Flex

 

The auto update for FPO is build using technology from Adobe's AIR/Flex framework. This functions for the most part like RDP (our Eclipse based product). It contains an update package (site), which is deployed to some web server. It is the recommendation that we deploy to either the same server as start service or vault. Doesn't matter from a testing standpoint, since the client side only uses some pre-defined URL to look for auto update. The client component is downloaded via a new download page, including something called a badge. The badge takes care of downloading and installing the runtime associated with running an "AIR" application. We have essentially wrapped the FPO installer (which wraps the CDP installer, for the most part) with AIR. Therefore, you download our AIR application which starts up, displaying splash screen first, followed by FPO language selection dialog. Once the selection dialog appears, the rest of installation is as it was before.

 

In an already running OS, the system tray icon executes and functions as it did before. However, the short-cut that is installed (or at least our AIR portion of installation removes the old short cut placed by CDP installation, and AIR replaces with shortcut to startup self - the AIR application) will restart the AIR application on startup of OS. NOTE: The steady-state shortcut that opens browser of CDP settings does not change. Therefore, the only time an Auto Update is checked, is during OS startup. On OS startup, the AIR application is started, a splash screen is shown for about 2 seconds before being closed, and it queries to look for new release. If update not found, it continues by starting up filepathsrv, which displays system tray icon; just like before. If update is found, it's downloaded and a re-installation occurs silently. Once installed, the AIR application starts the new version of CDP/FPO.

 

PROJECT

 

Business On Demand ‑ businesses can now completely rethink the way they organize their workflows for new levels of flexibility, customer service, and operational efficiency.

 

Mission ‑ revolutionize the cost of serving customers by redefining how the business process is managed and executed.

 

Providing software and services to enable companies to design, execute, and alter – On Demand – business processes in the way that the company wants to do business

 

Designing and realizing distributed multi-tier enterprise Business Process Modeling applications with the J2EE platform as Senior Java Software Engineer (Tools Group Head) of ABISoft Software Development Company (http://abisoft.spb.ru/).

 

Links:

http://www.bpmn.org/

http://www.bpmi.org/

 

RESPONSIBILITY

 

Designing and realizing technological solutions. Installing, tuning and administrating Application/Web servers. Designing logical and physical database structure, administrating database. Developing views, stored procedures, functions, triggers, query optimization. Realizing projects specifications. Designing architecture and programming various tiers of distributed multi-tier enterprise applications. Developing requirements specifications, working directly with the customer, end user training, performance tuning, making optimal decisions in non-standard situations. Writing documentation and reports.

 

PROJECT

 

Development and deployment of distributed Internet applications using modern object-oriented development methods, languages (Java, C#) and component architectures (J2EE, .Net) as Java Software Developer of Bee Pitron Unique Soft (BPUS) Company (http://www.bp-us.com/).

 

Work experience:

 

January 2007 till present.

BridgeQuest Labs. Inc

(www.bridge-quest.com

Senior Java Software Engineer

 

May 2004 ‑ 2006.

ABISoft Software Development Company

http://abisoft.spb.ru/

Senior Java Software Engineer, Tools Group Head.

 

September 2002 – April 2004.

Bee Pitron Unique Soft (BPUS) Company.

http://www.bp-us.com/

http://195.201.39.206/bp-us/

Java Software Developer.

 

August 2001 ‑ August 2002.

Career Development Center (CDC) Company.

http://www.cdcgate.com/

Java Software Developer.

 

April 1995 ‑ October 2001.

Ioffe Physico-Technical Institute RAS.

http://www.ioffe.rssi.ru/

Research assistant at Gas-dynamic department.

The theme of theoretical investigation ‑ developing the moment method for solving the Boltzmann equation.

Analytical formulas derivation, programming in Fortran.

Publications ‑ monograph co-author, several preprints, articles, conference reports.

Education

 

High technical education (Saint-Petersburg State Technical University).

 

September 1989 ‑ February 1995.

Saint-Petersburg State Technical University.

The Faculty of Physics and Mechanics.

Department of Hydroaerodynamics.

Speciality ‑ applied mathematics and physics.

Degrees,
Certificates & Diplomas

 

  • 1995 The engineer graduation diploma

Computer skills

 

Programming languages and technologies:

Java 2 (JavaBeans, JDBC, RMI, Sockets, JAXP, NET, NIO...), J2EE (Servlets, JSP, JSTL, JSF, EJB, JavaMail, JMS, JNDI, JTA, JCA/Connectors...), Web Services (SOAP, WSDL, Axis), O-R mapping (Hibernate, JDO), HTML/DHTML/XHTML, CSS, JavaScript/JScript, XML/XSL (DTD/XSD, XSLT/XPath, SAX, DOM), XForms, SQL (Core SQL, T-SQL, Views, Stored Procedures, Functions, Triggers, Query Optimization), ASP, Perl, Pascal, Fortran, VB, C/C++, Lotus Notes, Flex, MSI (MS Installer), InstallScript, Accessibility.

 

Application/Web servers:

JBoss, BES, Sun J2EE RI, Apache Tomcat, Caucho Resin, Jetty, Apache Web Server, MS IIS, WebSphere, WebLogic.

 

DBMS:

Oracle, IBM DB2, MS SQL Server, MySQL, MS Access.

 

Team servers:

CVS, MS Visual SourceSafe, Borland StarTeam.

 

Other servers:

CommuniGate Pro Mail Server.

RHinoSoft FTP Server.

 

IDE:

Eclipse platform, Borland JBuilder, Stylus Studio, XMLSpy, Xelerator, InstallShield, Microsoft Visual Studio.

 

CASE:

Borland Together, Sybase Power Designer.

 

Modeling languages and technologies:

UML, Design patterns (GoF, J2EE patterns, best practices), OOP, OOA/OOD, coding standards, build automation, refactoring, extreme programming, AOP.

 

Open Source projects:

Apache projects (Ant, BSF/BSH, Log4J, Commons, Taglibs, Axis, ECS, Struts, httpclient, other frameworks...), SourceForge.net projects (htmlparser, htmlarea...), JUnit, QUARTZ, Stripes and others.

 

Network protocols:

DNS, TCP/IP, HTTP, SSL, FTP, SMTP, Telnet, specialized/custom protocols.

 

Operating systems:

Windows 95/98/NT/2000/2003/XP at a level of system manager, MS-DOS, Unix/Linux.

 

Software packages:

MS Office, MS Project, MS Visio, MS FrontPage, MS Web Application Stress Tool, Photoshop, CorelDRAW, Macromedia MX, TeX/LaTeX, JAWS.

Languages

Free manage of technical English language (written and oral) at an advanced level, sufficient for reading and writing technical documentation on projects, conducting correspondence with the customer, discussing technical questions by mail and by phone.

Personal

Personal description:

Analytical mind, communicability, benevolence,

ability to work in a team and independently, (self) learning ability,

creativity, creator/designer capability, sense of style, good taste,

accuracy, organized, punctuality, obliging,

activity, initiative, energy, industrious, executive,

purposefulness, persistency, ability bringing everything to an end,

orientation on result, responsibility,

honesty, decency, bona fides, self-demanding,

observance and maintenance of order and corporate culture, sense of humor.

 

Other:

General erudition, broad outlook,

ability to take decisions, flexibility, informal attitude to problem,

tolerant and patient attitude to code written by other developer,

ability to analyze existing code,

ability to listen to colleague's opinion,

wish and ability to independently solve problems, carry out research work, become familiar with new systems, monitor development of new technologies and products,

adequacy and sanity.

 

I am a participant of Java User Group SPb (JUG.RU), attend Borland seminars.

 

Hobbies

Music (play drums, guitar, piano), sports (football, ice hockey, table tennis ‑ I category, mountain skis, chess ‑ I category, running, swimming, volleyball, badminton, bicycle), English (active participant of “Karma English Conversation Club” in Saint-Petersburg, Russia).