Viacheslav Kabanovich
Pleasant Hill, CA, ***** • USA citizen
925-***-**** • ************@*****.*** • https://github.com/scabanovich • https://www.linkedin.com/in/viacheslav-kabanovich-40742810a
Professional Summary
•Over 24 years of overall experience in IT field, analyzing, designing, and developing java-based enterprise applications using cutting-edge technologies.
•Strong experience in developing large scale, highly available applications
•Clear understanding of Object-Oriented Programming semantics and Design Patterns.
•Experience in full development life cycle through OO Analysis / Design using UML, to implementation, testing, deployment, and support.
Technical Skills
Programming languages and technologies
Java SE, Java 8 / Java 21, Spring, Swing, JIDE, Eclipse (OSGi, Core, JDT, PDE, WTP, EMF, GEF), Eclipse RCP, J2EE (CDI, Servlets, JSP, Facelets, JSF, EJB3), UML, SQL, NoSQL, XML, HTML/CSS/JavaScript
Frameworks and Libraries
Spring Boot, Spring, MySQL, MongoDB, JBoss Seam, JBoss RichFaces/Ajax4Jsf, JPA/Hibernate, Jawampa, Kafka, Redis, JUnit
Development Environments and Tools
Eclipse, Microsoft Project, OpenProject
Application/Web Servers
Apache Tomcat, JBoss AS/WildFly
Source Control
CVS, SVN, Git
Bug tracking systems
JIRA, Bugzilla
RDBMS
MySQL, Derby, MariaDB, PostgreSQL
Build Systems:
Ant, Maven, Gradle, Tycho
Professional Experience
Jan 2021 - Jan 2025
Nisum www.nisum.com, Fremont, CA
Senior Software Engineer
Technologies: Java 8 / Java 21, Spring Boot, Spring, JPA/ Hibernate, REST API, Kafka, MariaDB, PostgreSQL, Redis, Microservices, Microsoft Azure, PCF, AKS, Junit, Jenkins, CDP, Splunk, GCP
Project: Loyalty at GAP
Project Description:
•Loyalty programs aim to personalize and strengthen engagement and loyalty of GAP customers, drive incremental financial upside, deepen understanding of customers, build customer loyalty (frequency, sales, and NPS), and enable access to the payment networks as it relates to the brand credit card program. We want to offer Gap Inc. customers differentiated experiences through connected digital interactions (e.g. personalized acquisition, seamless reward redemption, and payment experiences).
Responsibilities:
•Worked on Loyalty integration that migrated personal data to new Profiles service (external to Loyalty) and member/card to the new schema inside Loyalty (2021)
•Implemented matching Kafka consumer in one-time (migration) and on-going (new enrollments) flow
•Implemented card enrollment Kafka consumer
•Implemented changes to member service for new (integrated Loyalty) REST API
•Monitored one-time migration of data to integrated Loyalty and responded to issues with quick code and data fixes
•Monitored on-going enrollments and implemented fixes for detected issues
•Resolved tickets for customer data issues
•Worked on migration of Synchrony card data to Barclays card data (change of vendor) (2022)
•Implemented one-time matching Kafka consumer to match card data published by Barclays to Synchrony card data in Loyalty and move it to new schema in Loyalty
•Implemented in member service, on-going matching consumer, card enrollment consumer, and other relevant applications support for new card data
•Monitored card migration and fixed both code and data issues
•Implemented Redis cache in member service (2023)
•Implemented self-merge service, collected data for it for eligible members on Loyalty side, and initialized tables (one-time)
•Implemented internal merge service with endpoints facilitating work on customer data to resolve data issues
•Implemented error handler service to store errors permanently in the database (instead of Kafka error topics) and refactored error handling in consumers
•Implemented encryption of error messages that include personal data
•Designed and created internal application (Loyalty Tool) that in a generic way provides convenient interface for executing REST API calls on large sets of data, and applied it for the collection of Loyalty API calls needed to analyze data consistency and resolve data issues efficiently (compared to Postman)
•Implemented POC support for inactive members in member service
•Migrated applications from Java 8 to Java 21 (2024)
•Migrated secrets from application.yml to AKV, next at migration PCF to AKS moved secrets to AKS AKV
•Migrated logging and alerts from Splunk to Google Cloud Platform, designed and created JavaScript/HTML page to generate a GCP query by Java code of logging, or by a sample from logs
•Migrated build from Jenkins (deploying to PCF) to GIT actions of CDP (deploying to AKS)
•Fine-tuned procedures of analyzing and resolving data issues.
Sept 2020 – Dec-2020
Nisum www.nisum.com, Fremont, CA
Senior Software Engineer
Technologies: Java 8, Spring Boot, Spring, JPA/ Hibernate, REST API, Kafka, MySQL, MongoDB, Microservices, Microsoft Azure, Junit,
Project: Micro Social Network
Project Description:
•Backend for a social network split into two RESTful microservices: (1) users with friendship relations, (2) posts with comments and ‘likes’.
Responsibilities:
•Design REST API for microservices (BDD)
•Store users and friends in SQL database (MySQL)
•Store posts, comments, likes in NoSQL database (MongoDB)
•Authenticate with JWT issued by users service
•Write JUnit tests (TDD)
•Deploy the microservices to Microsoft Azure
•Use Agile/Scrum project management tools
Nuix nuix.com, Novato, CA Jun 2017 – Apr 2020
Senior Software Engineer
Technologies: Eclipse, Java 8, SQL, Hibernate, Swing, WebSocket, WAMP, REST API, JMS, JAX-RS, Netty Server, XML/XSLT, JAXB, JUnit (TDD)
Environment: Windows 10, Linux Ubuntu, Mac OS.
Project: Enterprise Collection Center
Project Description:
•Large organizations engaged in eDiscovery or big investigations need to collect data from many devices and storage platforms, often from disparate, remote, and difficult-to-access sources. Nuix Enterprise Collection Center makes collecting, processing, and producing this data simpler, faster, and cheaper. It is easy to use, provides a single integrated workflow from collection to production, and is non-intrusive so employees can continue working productively.
Responsibilities:
•Design data bean model common for all components using functional programming of Java 8
•Design components and implement them with Java 8:
•ECC Server, implemented with Netty Server.
•Derby database accessed by the server with ORM.
•Admin Console, desktop application (Swing) accessing server through WebSocket.
•REST API to services provided by the server implemented with JAX-RS.
•Migration of Admin Console functionality to Web interface (to be implemented with Spring).
•Authentication and authorization (OAuth2, OpenID)
•Provide high performance of Server, processing thousands of requests per seconds from clients reporting updates to database.
•Admin Console, displaying thousands remote clients changing state in real time.
•Design command tools for diagnostic and recovery of the encrypted database (both high level with ORM and low level with JDBC/SQL).
•Write unit tests to each component and functionality (Junit)
•Work with version control (SVN)
•Use Agile project management tools (JIRA, Confluence)
•Collaborating with the team to identify and fix technical problems
•Take up the responsibility of the entire project (Admin Console since 2017, ECC Server since 2018)
•Working on identifying the project risk and planning mitigation action with the PM at project level
Red Hat www.redhat.com Feb 2016 – Apr 2017
Contributor to software development
Technologies: Eclipse, SWT, OpenShift, JUnit (TDD), Git
Environment: Linux Ubuntu
Project: JBoss Developer Studio / JBoss Tools / OpenShift
Project Description:
OpenShift is Red Hat's Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment.
Responsibilities:
•Contributing to UI tools in OpenShift.
•Maintenance / bug fix for other projects in JBoss Tools (Common, JST, JavaEE).
Exadel, Inc. www.exadel.com, Walnut Creek, CA Feb 2011 – Jan 2016
Senior Software Engineer
Technologies: J2SE, J2EE, Eclipse, Eclipse RCP, GEF, CDI, Hibernate, Spring, JUnit (TDD), Git.
Environment: Windows, Linux Ubuntu
Project: JBoss Developer Studio / JBoss Tools
Project Description:
•JBoss Developer Studio is a set of eclipse-based development tools that are pre-configured for JBoss Enterprise Middleware Platforms and Red Hat Enterprise Linux.
•JBoss Tools is open source project that supports JBoss and related technologies such as CDI/Weld, Hibernate, Seam, JBoss AS/WildFly, JSF, (X)HTML, JBoss ESB, JBoss Portal and more.
•See http://tools.jboss.org/ for details.
Responsibilities:
•Design and development of tools: CDI mod-el/builder/validation/content assist, Seam model/builder/components view/config file editor/validation/content assist, JSF and JSF 2 model/builder/config file editor/validation, Batch model/builder/contribution to job file editor, ESB config file editor, and other components of JBoss Tools.
Exadel, Inc. Moscow brunch. Russia Nov 1999 – Jan 2011
Position: Senior Software Engineer
Technologies: J2SE, J2EE, Swing, Eclipse, GEF, Struts, Hibernate, MyFaces, Oracle ADF, Spring, JUnit (TDD), SVN, Git
Environment: Windows 2000, Fedora Linux.
Project: JBoss Developer Studio / JBoss Tools
Project: Exadel Studio Pro
Project Description:
•Exadel Studio Pro was an advanced enterprise-level Web application development environment for leveraging open source, J2EE, and AJAX technologies within the Eclipse environment.
•Combining visual and source-oriented development approaches with sup-port for multiple open source technologies, including JSF, Struts, Hibernate, MyFaces, Oracle ADF, Shale, Spring, and others, Exadel Studio Pro enables developers to work easily with multiple frameworks all within one environment.
Responsibilities:
•Software design and development: Common model for views/editors known as Xmodel, Struts model/config file editor, JSF model/config file editor, Hibernate config file editor.
Education
•PhD in theoretical physics from Moscow State University, Moscow, Russia 1991