| Objective |
A senior software development position, working on distributed
applications, utilizing extensive experience
in OOA/OOD/OOP, concurrent and distributed systems, and enterprise
applications.
|
| Skills |
| Areas of Focus: |
API Design and Documentation,, Concurrent System Design, Database Design and Programming (ORACLE), Operational Research (OR), Combinatorial Optimization
|
| Technologies: |
J2EE, EJB, JSP, JDBC, Java Threads, JSTL,
Swing, UML,
Object-Relational Mappers, XSLT
|
| Languages: |
Java, XML, SQL, PL/SQL, Visual Basic,
C++, Python, HTML,
JavaScript
|
| Application Servers: |
BEA WebLogic,
ORACLE Application Server (OC4J),
Orion Application Server,
Apache Tomcat
|
| Operating Systems: |
Windows, LINUX, Solaris, HP-UX
|
| Database: |
ORACLE, MS Access
|
| Tools: |
NetBeans, JBuilder, Eclipse, Rational Rose, RapidSQL, ER/Studio,
Visual Cafe, Visual Age,
MS Excel
|
| Domain Expertise: |
Transportation Logistics, Geographic Information Systems (GIS), Insurance Underwriting and Operations, CAD/CAM
|
| |
| Work experience |
Feb 2001 - present |
TransDecisions, Inc., acquired by
Servigistics, Inc.
Natick, MA
Senior Software Engineer
As one of the first employees of TransDecisions, contributed to all company products at
multiple levels, from DB design and data processing code to GUI and Web Components,
leading up to a successful acquisition of the company in May
2006 by Servigistics, Inc.
Currently responsible for the maintenance and expansion of the routing and scheduling solutions
for the field service and transportation logistics markets.
Fleet Optimization Web Service
Fully responsible for the fleet optimization module, used in
a number of Servigistics products, as well as directly by
several customers. The Fleet Optimizer builds optimal
schedules for fleets of vehicles performing such types of
work as pickup/delivery, waste management, repairs, etc.
Complex constraints are considered, such as time windows,
job priorities, job dependencies, and
customer/crew/equipment compatibility rules. The Optimizer
further tracks the progress of the fleet during the day and
optimizes the schedule for the changing conditions, such as
traffic, routes running late/early, job cancellation, etc.
- Analyze business requirements and customize the
optimization engine for various business domains.
- Design and document public XML
and Java API.
- Select,
implement and tune combinatorial optimization
algorithms.
- Set up and maintain a hosted service providing fleet optimization
functionality to the enterprise systems of
several partner companies.
Clustered Task Management framework
Designed and implemented a concurrent processing framework,
which distributes CPU-intensive processes over a cluster of
servers. The framework provides load-balancing,
prioritization of processes and asynchronous scheduling of
computation-heavy processes for use in web services and
stand-alone applications.
- Implemented a sophisticated concurrent processing
framework, which optimizes the utilization of computing
resources by various CPU-intensive processes. The Task
Management Framework partitioned computing problems into
independent tasks and executed them concurrently on a
cluster of servers, using Java threads.
- Used advanced capabilities of Java threading libraries
and language features.
- Supported nested and dependent tasks, timed activities
(triggered at a preset time), and persistent tasks
(surviving the life of the cluster). Supported numerous
resource management policies, such as various kinds of
timeouts, as well as task cancellations by client.
- Guaranteed load-balancing and failover capability in a
clustered setup, synchronized by an
ORACLE database. Wrote PL/SQL procedures for storage, retrieval and synchronization
of computation-heavy asynchronous tasks.
Supported the addition of processing
nodes to and the removal of nodes from the cluster in a
way transparent for the API client.
- Introduced numerous assertions and error recovery
mechanisms in order to ensure reliability.
- Developed tests and successfully debugged complex
liveness problems, eventually bringing the framework to a
bullet-proof state (zero reported bugs for over a year).
Geographic Data Loaders
- Developed a data processing component that compiled
several complex street databases, distributed
in un-indexed Shape File format
into a heavily indexed format, to speed up information
retrieval.
- Optimized the indexing of nearly 20 GB data sets to
run in only a few hours on a typical workstation.
Fleet Sales Demo
- Designed and developed a fully functional web
application that demonstrated fleet optimization
capabilities of TransDecisions products. The web
application was developed using JSP and
JSTL technologies,
running under the Orion application server. The
optimization components were deployed in the
EJB tier.
- Designed the database schema to maintain the demo
application's state, using the ORACLE RDBMS.
- Developed all layers of the application, from
HTML to
JSP to O/R mapping code using
JDBC.
ORACLE-based Location Service
- Loaded 40 GB worth of geographic (street) data for the
entire US, provided by Navteq, into an ORACLE database.
- Analyzed relationships and created stored procedures
in PL/SQL and queries to locate addresses, intersections,
points of interest, etc.
Ported Oversize Truck Routing Solution to EJB
- Re-architected TransDecisions' truck routing solution
to run under the BEA WebLogic application server.
- Cleaned up the component infrastructure and packaged
components as EJB, to facilitate scalability and
distribution.
- Assisted in deploying the solution at Delaware DOT.
|
Jul 2000 - Jan 2001 |
OneShield
Burlington, MA
Software Engineer
Member of a team developing a hosted application for selling
insurance online, based on IBM WebSphere,
VisualAge for Java 3.0,
Apache Xerces, and
Workflow technology.
As a key member of the Presentation team, was responsible for
the entire Presentation Logic component.
- Implemented a single point of entry servlet, interfacing with
the EJBs, processing
HTTP parameters and forwarding requests
to JSP for display.
- Designed and implemented a mechanism for synchronizing
user's navigation inputs (such as going back in the
browser) with the state of the workflow engine.
- Designed and implemented objects that
represented the session state. Implementing the mapping
of workflow tasks to the JSP used to display
the response.
As a member of the Middle Tier Team, developed various services executed
in the EJB tier.
- Participated in the definition of
XML objects to
represent Application for Insurance.
- Responsible for the component that performs the
transformation of relational data (from
ORACLE)
into XML objects (DOM), for subsequent
XSLT processing.
- Investigated the use of entity beans for performance
improvement.
- Designed an algorithm that allows to
build a complex tree in a single pass
without relying on the sequence of results from a single,
unordered query (for highest performance).
|
Nov 1999 - Jul 2000 |
Parametric Technology Corporation
Waltham, MA
Associate QA Engineer
Responsible for all aspects of the development of Pro/J-Link,
a C++/Java API for customizing
the company's flagship product, Pro/ENGINEER.
- Implemented access classes in C++. Defined interfaces
to new classes in IDL (Interface Definition Language).
- Created demo programs for sales support, such as a demo of
the ability to manipulate
Pro/ENGINEER inside a Web server by using
Java Servlets
and Pro/J-Link.
- Wrote test plans and implemented tests for Pro/J-Link. The tests
were Java programs that exercised various features of the API.
- Wrote documentation for the API.
- Enhanced and maintained a number of Web-based tools used by the QA department,
such as Web-based reports on the data stored in the corporate
bug database (ORACLE).
|
Apr 1998 - Nov 1998 |
Brigham and Women’s Hospital
Boston, MA
Biological Research Technician
- Designed and implemented a cryogenic
storage database using
Microsoft Access. The application allowed the user to
search cryogenic vials in the storage tanks.
Designed the UI to match
the various layouts of the storage tanks.
- Assisted in various laboratory experiments.
|
May 1997 - Sep 1997 |
Whitehead Institute for Biomedical Research
Cambridge, MA
Electron Microscopy Technician
- Maintained computer-based microscopy systems and
trained users to work
with the software.
- Prepared tissue samples for viewing under the
electron microscope.
|
Jun 1996 - Sep 1996 |
Parametric Technology Corporation
Waltham, MA
Software Quality Engineer
- Designed and implemented interactive and
programmatic tests for Pro/INTRALINK development tools.
- Tested and kept track of implemented features;
produced a progress report for my supervisor.
- Performed C++ software clean-ups.
|
| Education |
1996 |
Worcester Polytechnic Institute, Worcester, MA
Bachelor of Science in Biotechnology With High Distinction, GPA 3.9 (out of 4)
Awarded the Stephen Salisbury Prize in 1996.
|
| Projects |
Interactive Qualifying Project: Tutorial Design Application
Designed and implemented an application that allows an
instructor to
create a computer-based exam, and then grade
students on this test. The application allows to design
multiple-choice questions, as well as
add pictures and markups, such as text and arrows.
The application is implemented in Visual Basic.
|
| Personal |
Fluent in English, Russian.
US citizen.
|