ALEX SHPUROV

Software solutions engineer

DOB: 04/10/73

http://www.shpuroff.com

email: alex----shpuroff .com (replace dashes  please)

+1 416 857 0146

 

15 years experience in building comprehensive enterprise software development and integration.

 

Architectural Conceptions

- Aspect Oriented Programming (AOP)

- Inversion of control programming (IoC)

- Object Oriented Programming (OOP), GoF and Enterprise design Patterns

- Model Driven Architecture (MDA) meta-models, mapping, filters and interceptors

- Legacy Connectivity, Protocols, Screen Scrappers, Object Mappers (Wrappers)

- Enterprise service bus (ESB): Sonic ESB, Mule ESB, XA Transactions

- Service oriented Architecture and Web Services (SOA), SAML, WS-Security

- EJB & EJB Containers, SOA over EJB

- Search oriented architecture

- Distributed systems and large clusters, Round Robin, Reverse Proxy, parallel processing

- Enterprise Security. Assertions, SSO, XML Security

- Enterprise and processes architecture and patterns, UML

- Extensive use of code generating tools: Velocity, XDoclet, AppFuse, EMF

- Security: PKI, XML – security, assertions

- GIS applications and modules: Google – like java script maps over ESRI and other map servers.

 

Certifications:

1. SUN CERTIFIED J2EE Enterprise Architect (part I) SCEA

2. SUN CERTIFIED JAVA developer/architect SCJD

3. SUN CERTIFIED Web Services SOA Developer SCDJWS

4. SUN CERTIFIED J2EE Web Components Developer SCWCD

5. SUN CERTIFIED JAVA programmer SCJP

6. BrainBench: C/ C++, Java, Linux programming, Unix programming, WinAPI,

Visual C++, SQL, JavaScript, DHTML,XML, design patterns,

 

 

Programming Languages:

Java, C#, C/C++, Objective-C, Ruby, Python, PHP, Perl, Python

Delphi, Object Pascal, FORTRAN, VB, Assembler

Scripting: JavaScript, VBScript, TCL, AWK, YACC, Unix shells(Born, C, Korn..)

 

Operation systems

Sun Solaris, SGI IRIX, IBM AIX, HP-UX, Linux, MacOS, DOS, Mainframes, All Windows

 

Skills:

Presentation tier:  

DHTML, JavaScript, Applets, Ajax, DWR, Prototype, Rico, DOJO, DOM, SAX, SVG, VML, SWING, AWT, X-Windows, OpenGL, QT, KDE, Motif, ActiveX

Web tire:                       Wicket, GWT, ZK, Tapestry, JSF, Facelets, Struts, Struts 2,  JSP, JSTL, Taglibs, Tiles, Opensynphony XWorks, Velocity, Microsoft ASP.NET

Middle Tier:                   Spring, AspectJ, Web Services, JMS, JAXP, JAXB, JTA, JAXR, JAX-RPC, JNDI, JCA, WSDL, Scripting over Java (Java 6, Bean Shell), BSF, XML, XSD, XPath, XQuery, XSLT, EMF, MFC, OWL

Persistence:                  JPA, Hibernate, IBaitis, JDBC, ODBC, SQL, OLEDB, XA-transactions

Security:                       XML Security, SSL, SSO, SAML, XKMS, WS-Security, XML Digital Signature, JAAS, JSSE, Acegi

Communications:           MQs, JMS, TCPs(HTTP(S), FTP, IMAP, POP3,etc), UDP, RMI, IIOP, Corba, COM+, MPI, X-Windows, LDAP, MIME, SOAP, POSIX RPC, clustering and cluster dispatchers, lock managers, performance, POSIX and Windows native threads and native processes

Reporting:                     PDFs APIs (iText, etc), Crystal Reports, SQL Server, Access

SOA+ESB:                   XFire, Axis, ASP.NET, Mule ESB, Sonic ESB

GIS solutions:               ERSI ArcGis Server, OpenLayers, OGC (e.g. WFS,WMS)

Software licensing:         (FlexLm, etc.)

Portals:                         Aqualogic, JetSpeed, Sharepoint, LifeRay, portlets (JSR-168/268)

Databases:                   Oracle, MS SQL Server, MySQL, Access, Informix, DB2, etc…

Application Containers:  IIS, Apache, Tomcat, Jetty, Resin, JBOSS, WebSphere, MQ-series, Weblogic

Modeling and code

generation:                    UML, XMI, EMF, Rational Unified process, Visio, AndoMDA,  Appfuse

 

Development Environments

- Eclipse Europa, JBuilder, IntellJ, JDeveloper, Websphere, JAD

- Visual studio.NET

- Rational Rose, XDE, Visio

- Borland C++, Delphi, Borland C++ Builder

- SUN FORTE, SGI&AIX C/C++, GNU, CVS, SCCS, SourceSafe, Dimensions

- GDB, DBX, DDD, FORTE, TOTALVIEW, VALGRING

- Subversion, CVS, Perforce, Merant Dimension

- Maven, Cruise Control, Ant, JUnit, NUnit, JMeter, Emma Code Coverage

 

Languages:

English and Russian fluent, almost fluent in French

 

 

Cover letter

 

- Solid skills in the software architecture for heterogeneous systems, UML, designing software to be implemented big team of programmers at different locations.

- Tiers and applications for integration different platform independent software solutions in a solid software system. Legacy connectivity.

- Service oriented architecture (SOA), Methodology, Utilities, Implementations. XML Security, interoperability.

- Aspect oriented programming, AspectJ

- Distributed web application: J2EE, .NET, SOA products. Performance, interoperability, integrity, scalability, security

- Deep understanding all the software designs. UML, Design Patterns (GoF and J2EE).

- Deep knowledge of existing web portals, their software design and customization. Plumtree, Sharepoint, JetSpeed, portlets, JSR-168

- Security and applying roles for the data tier. Single single-on.

- Data models and mapping. Metamodels, XSD, EMF, XML and transformations, abstract data models, data sources, authorization, data tunnels, data buses

- Experienced in cluster distributes processing software and methods. Clusters, Grids.

- Distributed system design and development. Clustering, balancing, heterogeneous integration.

- Databases and mapping to classes. Hibernate, Sonic

- Experienced and trained in design the appearance of software, intuitive interface developing, porting/remaking old software. Usability.

- Search Engines and API. Methodology, implementations (e.g. FAST, Google)

- Compilers, interpreters and parsers. BNF, AST

- Very high skilled in bug fixing, effective debugging in distributed/embedded systems in one/several nodes for different machine types using cpu/memory emulators, memory leaks.

- Signal processing, Fourier transform, wavelets, convolutions, spectra, digital signal filters, wire and wireless data transmission, RSA and SSL data coding

- ESRI ArcGis map server and ESRI products, Google – like integration of maps and interoperability based on java script.

- Video/Audio processing and streaming. Wavelets, Filters

- Hardware architecture of modern computers

- Operation systems and their foundation, design and implementation, multi-CPU systems

- Legacy software: integration, support, porting

- Experienced in oil production area, oil predictions, efficient calculations, oil production business data processing, and UI tier

- Understanding geophysics, geologic and oil production approaches and applying math methods

- Well-organized, friendly, efficient, quick learner and performer, self-motivated, strong ability to plan, to organize and prioritize the work; and met the deadlines on time

 

 

Education: Tyumen Oil and gas state university. Finished in 1995. Master of computer science.

 

Trainings:

- March 2006, Sonic SOA integration, Washington, DC.

- June 2005 IBM Webservices approach, Single sign on, Washington, DC.

- April 2005 Portals, Plumtree portal development, Washington, DC.

- October 2004 Replacing TCL applications by JAVA. Connection to JAVA and C through TCL and scripts. XUI (XML User Interface) prototype.

Paris, France

- June 2003 Clusters architecture, heterogeneous clusters, APIs for Clusters, Clusters scriptwriting, MPI Clusters

Paris, France

- Jan 2003, Seismic matching and parallel processing on MPI Clusters

Villahermosa, Mexico and Paris, France

- May 2002 Machine-independent patterns programming, Frameworks

Paris, France

- April 2002 Internal co-ordination seminar on parallel signal processing technologies and software development

Paris. France

- November 2001 Training on signal processing and software development

Paris, France

- May 2001 Training on development of CASE technologies-based software

Paris, France

 

Publications:

 

Need to have maps on your Web page? It's simple!

http://freshmeat.net/articles/view/3104/

 

Enterprise maps –frameworks to develop ajax interactive maps with java annotations

http://sourceforge.net/projects/enterprisemaps/

 

 

PROFESSIONAL EXPERIENCE:


Route1 Inc, Toronto, Canada: Root Certificate Authority (CA), April 2008 - now

Sr. Java Developer

Security PKI solutions for the root certificate authority. Implementing front end and back – end for the root CA. SOA (+ XML security), Wicket for the front–end, spring annotations + JPA over IBaitis for the back end. Implementing security for DB layer based on hierarchical SQL queries over java mapping.

Remote access to the client’s desktop and secure TCP connections, certificates, digital signature, synchronous and asynchronous encryptions. Portlets security, Server side scripts, Rhino, Groovy, Lua. Parallel server – side processing including server –side scripts parallel execution. Pipes and other communication tunnels via threads, their synchronizations. Asynchronous and synchronous message/data delivery, late notification dispatchers. Implementing and using final automats and state machine.

Issuance a pair of public/private key, certificates and validation against CA.

CRI Solutions, McLean VA, August, 2007  - April 2008

Lead developer, Sr. GIS Developer

Project for US Department of Agriculture. Identify, quarantine, and treat infected areas.

My main challenge is Appfuse development, Enterprise Service Bus (ESB) and GIS maps with a possibility to edit it and make spatial queries from the map.

Appfuse allows to auto generate application components, it uses XDoclet, Velocity to do this. Application is based on the following: Struts 2, Velocity, Spring, XWorks, JPA and hibernate as its implementation.

ESB is a solution to expose most of business internal and external components to unified data format and make all component data model independent. The components are DBs, Gis systems, ASP.NET  and XFire and Axis web services and some functional components.

Client is auto generated j2ee component also exposed to ESB. The code generating tool is Appfuse.

Presentation tier is classes of javascript and Openlayers and Prototype are main frameworks. Eventually project has similar look and feel and performance as Google maps.

JavaScript is generated based on templates using Sun Java 6 scripting engine. Map server is ArcGis 9.2 map server.
Featuers are included: add/edit a GIS objects, spatial search, spatial select. To provide these features project has Prototype AJAX calls based on Java 6 scripting engine.



Razavi Applications Development  tech.,  ( 2005 -  2007)

contractor for Government of the District of Columbia                                           

Architecting and development enterprise GPS systems: EJB, SOAP, Spring, Xa transaction,  XFIRE, JSF

Developing high available GPS tracking system where cars (clients) send SOAP requests to central processing unit by one – way SOAP. N-Tire solution consisting of thin client,  cluster of web servers and cluster of application servers. Clients were done as a black box having custom Linux inside and a java program to send SOAP. Portal is JSF Application having a reference to app servers thru  business delegate to session facades.

---

Architecting and development enterprise systems within SOA ESB. ASP.NET, JAVA, AXIS, XFIRE, Spring, JSF, AspectJ, MS Access, Orcale and MS SQL are involved.

Development the connectivity between new systems and old ones. Exposing legacy systems as web services, making SOA interactions. Adopting aspect oriented programming for existing and new Java solutions. Creating secured web applications for public for distributed and firewall protected front-end and back-end systems. Back-end systems are mostly facades and they are exposed to front-end as web services. XML Security and Single sign-on.

contractor for Government of Tyumen Region, Russia, SOA Expert

                                    2006 (5 month)

Architecting the SOA system for the department of licensing of natural resources. Estimating of risks of adopting different solutions, low cost and effective systems development. Legacy connectivity in heterogeneous environment. Re-using the existing solutions within ESB. Security and restricted access.

contractor for Natural Conservancy                                                               2006 (7 month)

ERSI ArcMap extensions. C++/Java/VB, Oracle, Access

ERSI  Spatial software development. Spatial operations on different data. ArcMap Extensions programming. USA Nature Conservancy project. Operations on spatial polygons, creating reports on demand.

Implementing legacy software through Service oriented architecture (SOA). Sonic workbench integration. Java and XML mapping, JNDI access.

J2EE, XSD,XML,XSL, SOAP,WDSL,  UDDI,WS Security

Java/ .NET Portals expert.

I’m in charge of two projecs: GIS department, Open GIS standard developer based on ArcGIS, and its integration to Portal, including single sign-on, security, web service security.

Portal Development. Sharepoint and Plumtree portal customization. Global project for DC government to set up intranet portal. It consists of customized Plumtree portal itself, different web services providing various content both portlets and portal and single sign-on. My mission is customization the portal by adding new implementation, Federated Search Engines development (Plumtree engine, FAST and Google), WS development, WDSL specifications and implementations, global data tunnel implementation, filters for data tunnel, filters for J2EE. Various frameworks development like custom enterprise tags, etc. Both .NET and Java approach. Hi-tech development process includes Model driven architecture and Webservice oriented architecture as well as patterns decoupling.

 

General Geophysics, France (offshore)                                                         2001 20004t
Project Manager

Java, J2EE, C/C++, TCL GUI Applications development in Unix environment (Solaris 8, AIX 3.4, Linux RH, IRIX 6.5), Forte C++, GNU C++, FORTAN, shell programming, daemons programming, cluster programming.
Xwindows, Motif, Qt, sockets, TCP/IP, Oracle, Corba

Working for CGG, I have been dealing with a number of mainstream projects supporting Stratavisata Software and GeoCluster Software. Most of the applications are based on Core (the actual framework.) At first, I was involved in creating and developing Core, written both in C++ and JAVA. The goal of the Core is to make the software both unified and cross–platform and to provide communication via different machines and different languages, native and script-based (TCL, shells, etc). That means that we have our own patterns to make OS/machine- independent systems, including communication (drug & drop, data flows, message system, etc) and interface systems.

GeoCluster software performs complex geophysical computations but it is very slow. To improve performance, I used Cluster Technologies to develop software based on the MPI Cluster, which is available on SGI, SUN and Linux. So far I have done some of the MPI and other cluster-based implementations for heterogeneous networks of workstations and symmetric multiprocessors for Unix. Projects I lead and work on currently are as follows:

MATCALC –a full drag & drop GUI interactive signal processing application. It has many 2D visualisation facilities and some in 3D, as well. It was written in C++ and JAVA and is now within the Core. Project uses stdlib and XWindows with Motif. The multi-process drag and drop feature is also available. (C++, Motif, Xlib, Xtoolkit, Oracle, sockets, MPI Cluster)

As previously noted, I am involved in the interactive part of the GeoCluster project, with responsibility for several modules. One of them is XJOB, an interactive visual module (tool) for visually generating Jobs (algorithms or tasks, for example), which are then processed by other modules (BATCH).  It was designed for less technical users who can’t create the jobs themselves. The program was improved in accordance with CASE-technology.

All the projects are written to be deployed on various UNIX operating systems simultaneously (i.e., Solaris, Linux, Irix, AIX) and on different hardware platforms, such as SUN, IBM, Silicon Graphics, PCs, etc.
The next project is XPS. It is an Internet-based interactive part of GeoCluster for the purpose of getting access from/to the Oracle database. It consists of both Server and Client modules. The Client is an interactive socket- based application that carries out the functions of quality control and input/output/correcting the sets of given data. The Server is responsible for providing access to an Oracle database for each part of the Geovector project (processing modules), including batch modules and XPS client. Actually it’s a daemon and the connection between XPS server and any client goes via sockets. (C, Motif, Xlib, Xtoolkit, Oracle, sockets)

My workstation is SUN with Solaris 8.0, but I always test software on all required platforms. I have been using a C&C++ compiler with STL and Qt, Xlib, Motif libraries to provide the visual and interactive part of the modules I am responsible for. On a daily basis, I solve a number of problems from processing data to user visual interface and optimizing and adding new facilities.

 

 

 

PRIORITET Financial Company                                                                  September 2000 to 2001 Senior Web Developer

Intel platforms with Windows NT tech systems
MSVC, WinApi,  MFC, COM/DCOM,  Java, JavaScrips, DHTML, ASP,  TAPI, Oracle

Created several software applications based on Internet Technologies. One of them is an Internet store - http://www.ivitrina.ru. I designed and developed this site in ASP (JavaScript & COM) using MSVC and ISAPI technologies. The goal of the site is to provide an information system for goods and services in the Tyumen Region. Later on the site was ported on PHP due to requirements of hosting.

Created a web site for Prioritet, which is a part of Siberian Oil Innovation Corporation, http://www.priorit.ru

. Designed and coded this information system for their clients to provide online quotes, indexes and services, so it functions as an information portal for financials in the Tyumen region.

My next accomplishment was a TAPI voice data handling system. It is a telephony portal that provides clients with information such as personal account balance, stored documents, market quotes and financial indexes. It interfaces with the corporate database, retrieving data, processing queries and accessing online indexes from the Internet. It is built using the TAPI technology (the tool is MSVC). The basis of the system is the XML format control file (which looks like an ASP structure) where commands in tags are actions, wave patterns and queries go from OLEDB and ADO. It is a flexible system because all the actions are described in the XML file and the database accesses go through OLEDB.  This makes it possible to adjust the system very quickly and easily and makes it less time consuming to turn it on. An advantage of using both XML & ADO is that the user can configure the program to their own needs without involving the source code, just by changing the skeleton (XML) and adjusting the database to be coherent within the XML structure. The XML control file can use VBScript or Jscript. Communication in the program goes via COM/DCOM. Other modules could be plugged in to the system as well. (COM objects & Java scripts). Tool  - MSVC++.

PRIORITET, a leading financial services company in the Tyumen region, and their clients use this system successfully for retrieving various news and online information that is presented by automated voice applications over the telephone. Registered users can get voice access (with tone/pulse navigation) to their own personnel information securely through the access controls of the program.

September 1993 to September 2001 Siberian Oil Innovation Corporation

Senior MSVC programmer – team leader.
Intel platforms with Windows 3.x - NT tech systems
MSVC, WinApi, MFC, COM/DCOM, OpenGL, Oracle, Paradox, Borland C++, OWL

Position: Senior Analytical Programmer/Assistant Chief of the Programming Department)

Working as part of a team, designed, developed and coded software on the BASPRO project. Eventually, promoted to technical team leader. BASPRO is a suite of Windows programs for geological research and oil production analysis. The team of programmers and geologists have been involved in the project since 1993. BASPRO has grown from one 16-bit EXE module to a state-of-art software system, consisting of several programs for different purposes in scientific research. Currently BASPRO is a 32-bit software system using modern programming technologies such as ODBC, OLE, COM, OpenGL, ASP etc.

The main purpose of the project is geological analysis, oil production and prediction of oil extraction, 3D modelling and visualisation of geological objects such as cubes, surfaces and composite bodies. It also provides 2D visualisation of geological data in different shapes e.g., tables, graphs, well log diagrams, maps and correlation schemes.

From 1993 forward, I participated in all phases of the project including data, GIS data solutions, well log services, oil extraction and prediction of oil extraction. The project names means "Geophysical, Geological and Oil Field Development Databank" (BASPRO).

1993-1995
I made the original program for the prediction of oil extraction and estimate of efficiency after Geological – technological measures are applied to the wells. I used Borland Pascal 7.0 for Windows 3.1 for 1 year, and diverted to BC++ 4.5 with OWL, in compliance with customer requirements. The program includes the following modules: a module to retrieve original oil production data from common data storage (first Paradox, now Oracle; a module to approximate the of history of oil extraction from the wells by a unique formula, recently developed by the mathematicians of the company; a module to calculate predicted quantities of oil extraction, calculating the values of efficient visualization in various forms (tables, graphs, maps) and storing the results of the modelling in the database. The program is known as Charvi and is used by leading oil companies in Russia (TNK, UKOS, etc).

August 1995 – August 1997

Served in Russian Army, military unit is 6774, NOVOSIBISRK, RUSSIA

1997 – 1998
Developed and programmed the modules of correlation schemes and 2d geological and oil fields development maps. I used BC++ 45, BDE and Paradox. Developed the data structures and objects, their attributes, dictionaries, keywords and files. The project name is BASPRO Analytic and is an interactive version of BASPRO. I began as a member of the team and advanced to become a leader of the group. The software is still used as a convenient tool for the analysis of geological and oil fields raw data by the major oil companies of Russia, including TNK, LukOil, Siberian Oil Institute, UKOS, and some other leading Russian oil companies as well as a few small service oil companies in Russia.

Briefly BASPRO Analytic is a system of visualisation geological and oil fields development information. 1999
I was involved in software tool for creating of 3d visualisation since 1999 as a chief of a programming group. The program name is “BASPRO 3d”. The program carries out the visualisation 3d and 2d as 3d surfaces, cubs, and various geological profiles. The program solves the tasks for preparing data for reservoir simulation and visualisation of the results as well.

Developed a module for preparing data for reservoir modelling that enables a 3d display of the data on the screen, using MSVC, OpenGL, MFC and Oracle. The interface is ADO/ODBC.

Developed an original expert system to predict oil well production in Western Siberia. The program, developed in MSVC, MFC and ORACLE is able to compute a huge amount of information in a short time.