Alex Krotov
Toronto, ON
********@*****.**
PROFILE
Helping companies on API/backend side with Java as major platform, but not limited to it. The most recent tech stack was Java8/Play/Akka, microservices, NoSQL backend(Cassandra).
Also specialized in research, early adoption of modern tech stacks and migration towards them.
Overall, 15+ years of hands-on experience in design and development of n-tier applications, services and business processes (with pragmatic following of industry best practices and design patterns) helped companies to reach their goals/objectives. Gaining proficiency in containerized (Docker, k8s, service meshes), AI/ML based and cloud native solutions (GCP for now) design/development.
EXPERIENCE SUMMARY
15 years of Java server-side development (with decent recent experience in Scala).
12 years of experience in visualizing solution design, using both formal (i.e. UML, BPMN, ERD) and informal (i.e. mind maps) notations.
5 years of experience of working on projects with NoSQL backend such as Solr, Cassandra.
2 years of experience in security/authorization solutions design/implementation.
5 years of designing / implementation of RESTful web services / APIs (JSON-P/POX)/ microservices.
4 years of designing / implementation of SOAP web services (WSDL, XSD).
10 years in J2EE /Java EE development (mostly web-profile, Spring). Became certified enterprise architect SCEA for J2EE.
3 years of experience of active utilizing of application monitoring solutions; from JMX based (Codahale libraries) to APM suites such as Dynatrace (setup, administration).
4 years of experience in relational database design using Oracle database as well as design/development tools.
2 years of creating base SOA infrastructure and business process automation using TIBCO SOA/BPM suites such as iProcess, BusinessWorks; EMS, AJAX GI, Business Studio, BPMN (till 2010).
8 years of hands-on experience in XML including DTD/XSD design, XSLT, XPATH, XSL-FO.
Major clients: Telcordia, Thomson Gale, Singtel, AT&T, Telus, Capital One, RBC, BMO, CanWest, GlobeAndMail, Bloomberg, Rogers.
TECHNICAL SUMMARY
Methodologies:
Object-Oriented, Functional, Reactive system design; database design; OO design (anti-)patterns and best practices (GoF, GRASP, SOLID); UML; SDLC; Software Refactoring; Agile Enterprise Architecture; SOA; BPM.
Standards/frameworks:
Microservices, RESTful Services, SOAP Web-Services, J2EE/Java EE, Spring (DI, AOP, MVC etc), Google Guice DI, JAXB2, Struts(+tiles), Sitemesh, Hibernate, iBatis/MyBatis, Junit, ANT, Maven, Akka SBT, Gradle, Nexus, Artifactory, Confluence, Bamboo CI, Jenkins CI, Log4J, SLF4J, Perf4j, Castor XML, Apache FOP, Apache AXIS/ CXF, Jmeter, Django (till 2008), Microsoft .Net C# (till 2007).
Programming languages/formats:
JAVA 5-11, Scala2(intermediate), Python2-3(proficient), JSON, XML (XSD, XSLT, XSL-FO), WSDL, SOAP, C# (last used 2007), Groovy, JavaScript(proficient), JQuery, HTML.
Design development tools:
IntelliJ IDEA 2-2019, Plant UML, Star UML, Rational Rose UML, IBM RAD7, Togetherj,
Eclipse IDE 3-4, Sybase PowerDesigner 7-11, Erwin 4, XMLSpy,
TIBCO Business Works 5.6 (last used ~2010), TIBCO iProcess 10.6, TIBCO Business Studio 2-3,
TIBCO GI 3.5(AJAX IDE), Visual Paradigm UML 9-10, Octave, Matlab.
Version control tools:
GIT(+Github/Gitlab), CVS, Subversion, Star Team, Rational Clear Case
Application servers:
Play/Akka 2.3-2.6, Weblogic 7-11g, IBM WebSphere 5x, Resin, Jetty.
Operating systems:
MS Windows, Solaris, Linux, Mac OS (all as power user).
DBMS(SQL/NoSQL):
Cassandra 2x-3x, Solr 4x, Oracle 7.2-11g, MySQL, IBM DB2, Postgresql, MS SQL.
EMPLOYMENT/CONSULTING HISTORY
Feb 2018 – Present Research / Learning / Early Adoption (AI, big data, reactive streams, containers etc)
Exploring data science field (Stats, ML, Deep Learning, NLP); honing reactive cloud native apps/services
design skills; learning how to deploy microservices into containers (docket compose, k8s); planning to dive
into serverless and service mesh (Istio, Linkerd etc) areas; learning to deal with big data (Spark, Hadoop etc), including streaming architectures (reactive streams, akka streams), messaging (Kafka etc). Gaining practical knowledge in Google cloud (GCP).
Environment: Java11 OpenJDK, Scala 2.12, Python 3.6, Akka 2.5, Spring Boot 5, Docker, K8S, Kafka, GCP, IntelliJ IDEA, UML, Ubuntu, Gradle, Maven, SBT, Git
June 2015 - Feb 2018 Rogers (Telecom industry)
SERVER-SIDE R&D CONSULTANT (contract)
Reactive distributed systems design/development using Play/Akka; Dynatrace monitoring.
o Project Platform Modularization: Extracted a few functional areas into dedicated modules; reverse engineered and documented their design; refactored code with flexibility and easy to enhance in mind. The biggest module was Monitoring.
o Project Authorization Library (RAM): Designed and implemented solution for role and attribute based access management (RABAC) of Play/Akka based business portal. Cassandra used as a storage for subject and resource entitlements.
o Project Twirl based Java code generator: Created multi-package tiered Java code generator for CRUD like functionality, for next phase of authorization library.
o Project Microservices Modernization for BAS (Business Account Service) and other services (Genesis): Involved in ground up Play/Akka based microservices project design and adding authentication / authorization into solution.
o Project Dynatrace upgrade: Became Dynatrace SME from ground up, helped DevOps with upgrading and overall administrating of Dynatrace till new dedicated team formed and knowledge transferred.
o Project Endeca to UI friendly Structure Transform Service: Using the latest tech stack (Play 2.6, Akka 2.5 etc) created Endeca responses to UI(Angular) friendly Json format transformation service. It traverses through Endeca responses recursively, filters out only structures needed for UI and amends them further to make response concise and easy to consume by UI. For caching Cassandra was used.
o Project Multiple PoCs for tech stack early adoption and solution design validation.
Environment: Java8, Lightbend Play/Akka, Scala, Cassandra, Dynatrace, SOAP and RESTful Web Services/Microservices, Json, Apache Axis, Spring 4, JMX, IntelliJ IDEA IDE, XML, JAXB2, WSDL, Slf4j, Git (Github and Gitlab), Nexus, Bamboo CI, Ansible(basics), SBT, Maven, Encryption/JWE/PKI, Soap UI, UML, SSH, Bash, Linux, Mac OS.
May 2014 - April 2015 Quickplay (Media industry. Acquired by AT&T. Clients: Singtel, AT&T, Telus)
J2EE CONSULTANT (contract)
SOAP Web services, Java EE backend development.
o Project ATT ingestion: Added as an option AES DRM encryption to content script encoder workflow activity.
o Project ATT Uverse Xbox VOD catalog generator: Added new features to XML media metadata catalog generator such as UTM rules, view counters, categories hierarchy, genres, featured lists. Added JAXB code generation, JMX support, PERF4J stop watchers. Amended module structure to eliminate mutual dependencies, provide stronger system layering, to reach better cohesiveness and loose coupling. Performed multiple performance tests with detailed profiling, optimized code based on results. Helped Ops with setup/configuring/deployment on 6 environments (including 2 production).
o Project ATT Xbox keygen: Designed BPMN workflow for media playback key generator data migration between remote data centers; developed plsql package to automate migration steps with backup features, organized data migration from technical side and helped finish migration on reasonable time in all environments, including production.
o Project Singtel VSTB HAWK (part of HOOQ initiative, with up to 1bln potential customers in Asia): Under tight deadline pressure levels developed web service client library to Evergent UMS service 17 operations subset. For stronger resilience added asynchronous call support, configurable service call timeout, retry attempts etc. For monitoring system status on-the-go developed generic JMX counters library which allows seeing how many error/success operation calls executed for timeframe. Added and enhanced a few MVC actions in VSTB framework (such as user profile loading, heartbeat etc). Designed and developed UMS WS simulator with configurable success and error responses testing.
Note: To provide more balanced solutions to main projects explored/researched different topics, developed POCs for e.g. JPA, JAXB, CXF, Async WS, Restful clients, JMX, CSV loading and template based handling.
Environment: Java SE6-7/EE5(no EJBs), DBMS Oracle 10g, SQL/PLSQL, Solr, SOAP and POX/RESTful Web Services, Json, Apache CXF, Apache Axis, Spring 3, Hibernate 3, JPA, JMX, IntelliJ IDEA IDE, Eclipse IDE, XML, XSD, JAXB2, WSDL, Slf4j, Log4j, Perf4j, Git (with Stash), Nexus, Jenkins CI, Maven, HTTPs, PKI, Encryption, BouncyCastle, Soap UI, UML, Mind Maps, BPMN, Oracle Modeler, SQL Developer, Oracle Weblogic 11g, Tomcat, Bash, Linux, Win7 x64 Pro.
June 2011- May 2013 Globe&Mail (Media industry)
SR JAVA CONSULTANT (contract)
o Project WPU, subsystem MEX: Developed reporting framework for investor financial services. It is ~400 classes size system with 14 low coupled high cohesive modules, pluggable backend adapters feature, direct
Solr integration module. It supports RESTful web services with JSON/JSONP/XML responses. Custom taglibs were developed as well to mirror services for cases where JSP to backend interactions are needed. For interaction between presentation and middleware tiers RMI with custom fault-tolerance features is used (note: during last system refactoring RMI was replaced to JSON/SMILE). It embraced 50+ report groups with a few thousands fields in the whole; lookup and metadata services/taglibs, SSO(via security auth token), close to real-time quotes and other stock data load for Globe Wealth initiative. Typical service response was 60msecs with 30msec the lowest time observed. Load tests proven it can sustain multiple queries by 2500+ concurrent users per server (ubuntu10, resin3).
Environment: RESTful Web Services, JSON/SMILE, Spring 3, Java SE6/EE5, JSP(including custom taglibs), NoSQL (Solr, Cassandra), RMI, IntelliJ IDEA, Eclipse, XML, XSD, JAXB, Git, Github, Nexus, Artifactory, Confluence, Bamboo CI, Maven3, Gradle, UML, JavaScript, Jquery with AJAX-like JSONP, HTML, Struts(+tiles), SiteMesh, Caucho Resin3/4, Oracle Weblogic 11g, Tomcat7, Ubuntu 10(+ virtual machines), Win7 x64, VPN.
Sept 2010 - Feb 2011 BMO (financial industry)
SOA DEVELOPER/DESIGNER (contract)
Multiple bank accounts application web service design and implementation. Responsible of service WSDL
and backend process coordination engine design, backend web services integration.
Environment: WebServices, WSDL, JAX-RPC, XML, XmlSpy, IBM RAD 7, IBM Java SE5, IBM WAS 6.1, IBM DB2, UML, IBM Clear Case, Spring2.5.
April 2007 - March 2010 FUNDSERV INC (Financial industry)
SENIOR SOFTWARE DEVELOPER/DESIGNER
System architecture, software design, development; new technologies research, adaptation and customization.
Installed and configured TIBCO SOA/BPM suites on DEV, QA, UAT environments. Helped to setup, enhance and troubleshoot TIBCO engines in production for 2 years.
Project SP&S: Designed business processes and developed framework for customized reusable AJAX UI forms using TIBCO GI for automation of Client Banking Information Change Requests with approvals including 4 eye checks, periodical email notifications of interesting parties about particular steps to be done with links to customized forms to work on, web service calls to interact with external systems (via Business Works service implementations). These processes span across all major company departments and include C* level users. Special repository was developed to store process documents which to be uploaded via forms and to be checked in subsequent steps. Basic user interaction features added to help people understanding what needs to be fixed in entered data.
Detailed documentation with explanation of system architecture and usage guidelines including user and administrator manuals was written
Project Fundcom: designed and developed enhanced PMI and developed Account Level Redemption calculator.
Project ESG: designed and developed fund data generator and flat file to XML converter using JAXB, Spring, iBatis, J2EE 4; developed fund list xml generator (63M xml file in production); enhanced different features according to specs.
Involved in R&D of Truepass->RSA adaptive authentication system upgrade. Wrote POC of web service client using JAX-WS.
Project WSEUP: designed and developed configurable content synchronization utility using rsync, Java/JDBC, Oracle, Solaris for ESG Fundcom deployments.
Environment: TIBCO Business Works 5, TIBCO iProcess 10.6, TIBCO Business Studio 2, TIBCO General Interface 3, TIBCO EMS 4; MagicDraw 14-16, UML, BPMN, XPDL, SOA, WebServices, AJAX, XML, XmlSpy, MyEclipse 6-7, Java SE 5-6, J2EE 2.1, JAX-WS, JDBC, iBatis2, Spring2, JAXB2, Oracle 10g, Solaris10, shell scripts.
June 2005 - April 2007 INFOSYS (CMM level 5, Financial and Media industries;
Clients: Capital One, Royal Bank of Canada (RBC), CanWest, Bloomberg etc)
SENIOR PROGRAMMER/ANALYST
Software design and server-side development mostly using Java and J2EE.
Designed and developed multi-threaded job engine, folder monitor and permission manager modules for CanWest Acthive TID media asset management system (C#, .Net, XML, XSL).
Designed and developed a batch part of Content Management System (CMS) using Python based web framework Django for CanWest media publishing project; installed and configured the system on Redhat and Windows 2003 servers.
Worked on ‘RBC Express’ project. RBC Express is web/J2EE based portal to provide financial services to RBC corporate clients. It was initiative of improving quality of codebase (size was tens of megabytes). AQUA is code quality check utility developed by Infy team. Based on its findings in submitted code and own experience eventually ~4600 fixes were performed on that code.
(USA on-site, App Designer) Designed and provided offshore developers with prototype of core part of event subsystem for TCMS (Treasure Compliance Management System) project for Capital One.
Researched Web Services/J2EE solutions applicability (sessions, transactions, security etc) for a few initiatives.
Reviewed Java code for financial application (Bloomberg) and documented recommendations for application improvements.
Environment: Rational Rose 2003, JUDE, UML, Eclipse 3, J2SE 1.4, J2EE 1.3, Weblogic 8.1, JNDI, JavaMail, Struts, Entity-Relationship, Oracle, IBM WSAD, WebSphere 5.1, IBM DB2 7, Python, Django, Postgresql, MS SQL Server, SOA, Subversion, Linux, VmWare, C#, .Net, XML, XSL
Mar 2004 - Mar 2005 LUXOFT (ISO 9001, CMM/I level 5; Clients: Thomson Gale / USA / Media)
A global software services and IT company. To be acquired soon (2019) by DXC Technology.
APPLICATION DESIGNER
Designed, developed and maintained Product PDF Preview module and Reporting metadata-based Framework for world class J2EE CMS applications utilizing UML, J2EE, XML, XSL and Oracle technologies for the company Thomson/Gale.
Environment: Rational Rose UML 2001, ClearCase, ClearQuest, UML, IntelliJ IDEA 4, Java 1.3-1.4,
J2EE 1.3, XML, DTD, XSLT, XSL-FO, XML Spy, Power Designer 9.5, Entity-Relationship, Oracle,
Hibernate, Struts, Xdoclet, Weblogic7-8, Breeze Java2XML (JAXB), Documentum
Also, several other companies in IT consulting, banking, ecommerce
Environment: Java, J2EE, Oracle Developer, Oracle DBMS, PL/SQL, IBM Websphere, IBM MQSeries, UML, Rational Rose, IntelliJ IDEA, XML, XSD, XSL, XML Spy, Power Designer, CVS, Web Services, WSDL, SOAP, Apache AXIS etc
EDUCATION
MIPT (Moscow Institute of Physics & Technology)
Department - Telecommunication Networks and Systems
Research Base Institute – RSSI (Space Research Institute)
MS in Information Systems; Majoring in Applied Mathematics & Physics
Completed coursework for PhD in Information Systems
CERTIFICATES / COURSES
Sun Certified Enterprise Architect for J2EE (SCEA), Apr 2005, Step I – 89%, Steps II/III – 92%.
CMC certificate in “Communication Techniques for Strong Work Relationships”, 2008
BMO Information, Security & Privacy Matters Course, 2010
Open2Study, Introduction to Enterprise Architecture (TOGAF related), Dec 2013, Assessment score 100%
Proveit J2EE/JEE5 test, Jan 2014, Assessment score 77%
Google analytics course “Data makes sense”, Apr 2014, Assessment score 70%
IKM JavaSE6 knowledge test, Apr 2014, Assessment score 76%
Coursera Stanford Machine Learning (Certificate), Feb 2017, Assessment score 100%
EDX Berkeley Data8x Foundations of Data Science, Aug 2018, Assessment score 100%
EDX Harvard Stat110x course, Feb 2019, Practice score 83%
Hackerrank 10 Days Statistics Challenge, April 2019, 27/27 Master rank
EPFLx: scala-reactiveX Programming Reactive Systems, ~70% progress