|
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:
At a high level, the scope of CDP project includes:
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: 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 Senior Java Software Engineer May 2004 ‑ 2006. ABISoft Software Development Company Senior Java Software Engineer, Tools Group Head. September 2002 – April 2004. Bee Pitron
Unique Soft (BPUS) Company. Java Software Developer. August 2001 ‑ August
2002. Career Development Center (CDC)
Company. Java Software Developer. April 1995 ‑ October
2001. Ioffe Physico-Technical
Institute RAS. 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, |
|
|
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). |