Curriculum Vitae
Personal Information
Name:
Róbert, Krakomperger
Date of Birth:
Sátoraljaújhely, 24th Sept. 1984.
Address:
1083. Budapest, Tolnai Lajos 36. 2/1
Mobile Phone:
+36 70/-
E-mail:
-
Spoken languages
Hungarian:
English:
native
professional working proficiency
Education
2007 - 2009
University of Debrecen - Information Technologies (MSc.)
Sep. 2007 - Feb. 2008
Erasmus student at University of Twente (Enschede - The Netherlands)
Faculty: Computer Science
Program: Software Engineering Systems (MSc.)
2006 – 2007
Oracle Applications course by National Instruments (Debrecen)
2004 – 2007
University of Debrecen - Information Technologies (BSc.)
1999 – 2003
V. István Technical College of Economics and Information Technologies
Proficiencies
Main focus
Agile software engineering, enterprise software development, software
architecture and code quality, leading and mentoring
Expert areas
Spring, OO principles and patterns, code quality, web application
development, E-commerce
Recently used
● Languages: Java, Javascript, SQL, HTML, XML, UML, Bash
● Technologies/frameworks: Spring, Spring MVC, Spring data, Spring
security, Spring boot, JSP, Mockito, TestNG, JUnit, Angular, docker,
openshift cloud
● Methodologies: Scrum, Kanban
● Others: IntelliJ, Tomcat, Maven, Jenkins, Git, Checkstyle, Postgresql,
MySql
Work experiences
2018. Feb. - 2018. Jun.
Employer:
Crossover (http://www.crossover.com) / Aurea (https://www.aurea.com)
Project:
CX platform (https://www.aurea.com/library) - MQTT
Position:
Chief Java Software Architect
Role:
Developer
Tools:
Jira, Intellij idea, Git, clearcase, ant
Technologies:
Java 1.4-1.7
Details:
CX platform includes CX Process (BPM tool), CX Messenger (former
Sonic ESB), CX Monitor. My job was to integrate MQTT protocol into
CX process and Messenger. We worked in a two-men team, where my
colleague implemented the protocol on the low level in CX Messenger
meanwhile I integrated MQTT on the higher level in CX Process and CX
Messenger.
2017. Aug. - 2018. Feb.
Employer:
Crossover (http://www.crossover.com) / Optiva (http://optiva.com)
Project:
Backup and Restore
Position:
Chief Java Software Architect
Role:
Developer
Tools:
Networker 8, Networker 9
Technologies:
bash, perl, java
Details:
Optiva (former RedKnee) had to replace EMC Networker 8 with
Networker 9 due to incompatibility issues with environment upgrade.
However Networker 9 is a non-backward compatible version. Optiva had
tens of thousands of lines of perl code snippets together with some bash
and java tools implementing backup and restore functionalities using
Networker 8 in certain types of internal networks that might include
configurations, database nodes, filesystems, storage nodes and such. The
job was to refactor the existing code-base in order to work with
Networker 9. Main challenge was to reverse engineer the existing
features and integrate all of those with the new philosophy of NW9.
2017. Feb. - 2017. Jun.
Employer:
Crossover (http://www.crossover.com) / Aurea (https://www.aurea.com)
Project:
Project Template
Position:
Chief Java Software Architect
Role:
Full-stack architect, Developer
Tools:
Kanban-like internal methodology, Jira, Intellij idea, Git, Jenkins, Gradle,
Sonar, Docker, Lombok, swagger, logstash-gelf
Technologies:
Java 8, Spring boot, Spring MVC, Spring Security, Spring Data, HTML,
Angular, JUnit, MySQL, LDAP, JWT - json web token, Amazon AWS,
Amazon SQS
Details:
Project Template’s goal was to introduce a modularized, configurable
project base that can be used as a common template for future internal
projects in order to minimize the time and effort of briefing new projects.
The application consists of two main modules. An executable
multi-module spring boot application - serving as the template - with
simple features realized by a backend, a scheduler and a worker that are
running in separate docker containers so that can be scaled independently
meanwhile transparently communicating with each other using
messaging. On the other hand, there is a provisioning tool, that replicates
the template customized based on configuration - e.g package and
application names, integration points, subsystems, etc. The provisioning
tool integrates the newly created application into the whole internal
ecosystem that involves slack, amazon, Aline (internal quality gate),
Jenkins, github (including team, repository, branch and branch-protection
setup), meanwhile the generated application delivers the same features as
the template (unless otherwise configured).
2016. Sep. - 2017. Jan.
Employer:
EPAM Systems (http://epam.com)
Project:
EPAM Academy (project XM)
Position:
Lead software engineer
Role:
Full-stack architect, Development lead
Tools:
Scrum/Kanban, Jira, Eclipse, Git, Jenkins, Maven, Sonar, Vagrant
Technologies:
Java 8, Spring, Spring MVC, JSP, Apache-tiles, Tomcat 8, TestNG,
Postgresql, Hibernate, EHCache, Angular, gulp, EPAM Cloud
Details:
XM application is an online tool for running exams (e.g. after a training
program). My responsibility is twofold. In one hand, I worked out and
maintain the application’s architecture from the persistence layer up to
the frontend. On the other hand, I’m leading a small, core team that is
responsible for overall code and architectural quality, devops,
implementation of non-business functionalities (shared or reusable
components). We are working with 50 professionals (frontend, backend,
QA engineers).
2015. Jul. - 2016. Sep.
Employer:
EPAM Systems (http://epam.com)
Project:
MSM-CEC (Cheap Energy Club)
Position:
Lead software engineer
Role:
Development lead
Tools:
Scrum, Mingle, Eclipse, Git, Jenkins, Maven, Sonar, Loggly, Docker,
Vagrant
Technologies:
Java 7, Adobe AEM, Amazon AWS, TestNG, Angular, gulp
Details:
Project goal was to implement Cheap Energy Club website integrated
into an existing microservices architecture of MSM. We worked closely
together in three teams. Admin application, service orchestration,
frontend application. My responsibility was to deliver the frontend
application conform with the already existing approaches. I leaded a team
of ~15 professionals (including QA, Frontend, Java and AEM developers
with the help of a QA lead)
2014. Oct. - 2016. Sep.
Employer:
Blooment (http://blooment.org)
Project:
Mentain
Position:
Software engineer
Role:
Full-stack architect, Technical lead, Key developer
Tools:
Kanban, Kanbanize, Eclipse, Git, Shippable, Maven, Tomcat 7,
Checkstyle
Technologies:
Java 7, Spring, Spring MVC, ActiveMQ, Dozer, Freemarker, Hibernate,
EHCache, Javamelody, JSP, JAWR, Angular, STOMP over WebSocket,
Openshift
Details:
Mentain is an online platform that helps in managing mentoring
programs. My responsibility is overall from technical perspective
(architecture, devops, development, quality, delivery etc.).
2014. Aug. - 2015. Jul.
Employer:
Project:
Position:
Role:
Tools:
EPAM Systems (http://epam.com)
EPAM Academy
Senior software engineer
Project manager, Software architect, Technical lead, Key developer
Scrum/Kanban, Kanbanflow, Eclipse, Git, Jenkins, Gradle, Tomcat 7,
MySQL Workbrench, Checkstyle + PMD + Sonar
Technologies:
Java 7, Spring framework to create a 3 layer web application, Liquibase
for database migration, TestNG for unit and integration testing, HDIV for
security, Hibernate, REST, JAWR, Bootstrap, Tiles, jQuery and google
charts for front-end. Cucumber and Selenium for UI testing. EPAM
Cloud for hosting.
Details:
EPAM Academy is a training program of EPAM allowing experienced
developers to learn enterprise software development from
architecture/design to delivery built upon Java technologies along agile
methodologies. My responsibilities included reviewing training materials
created by the trainers, prepare candidates prior to the program and
mentoring the graduates after the program, before they get to new
projects. This meant to manage colleagues ranging from 6 to 20 people.
During this time, I managed to deliver a project “as a side-effect“ of the
training program: Automated interview system for Epam Systems. With
the web application the recruiters can create interviews for candidates,
who will solve programming puzzles. The puzzles are selected in an
adaptive way during the interview. The system evaluates the candidate’s
solutions, this way it helps the candidate selection process.
I had different responsibilities in the project. As a project manager, I was
responsible for delivery, maintaining motivation, specifying user stories,
keeping deadlines and ensuring quality. As an architect, I designed the
application architecture, technology stack and participated in
maintenance of production environment. As a technical lead I assisted the
leads of the teams in problematic questions from technical to
interpersonal perspectives. As a key developer I participated in
development of performance or business critical features. The team size
were varying from 6 to 20 member (from 1 to 3 teams) since the project
was implemented by EPAM Academy candidates so that they quickly
went to new EPAM projects. Fluctuation were a huge challenge.
The application is still in use as part of the interview process of EPAM.
2011. Aug. - 2014. Aug.
Employer:
EPAM Systems (http://epam.com)
Project:
Hotels.com (Expedia)
Position:
Senior software engineer
Role:
Development lead
Tools:
Scrum then Kanban, Jira, Perforce + Git, Ant + Unibuild + Ivy, Jenkins,
Checkstyle + PMD, AnthillPro then Bamboo
Technologies:
Spring, SpringMVC, Spring AOP, ActiveMQ, Axis, JSP, custom MVT
framework in Spring, Tomcat + Jetty, JQuery, TestNG + EasyMock,
EHCache, Freemarker, SLF4J + Logback, iBatis MS-SQL, Cassandra,
Redis etc.
Details:
Hotels.com was an E-Commerce project with more than 100 engineers
these days.
I became the development lead of my team (6 developers and several
QAs, UI engineers). My main responsibilities were to support my team in
technical questions, support business from technical perspective in larger
upcoming projects, analyse feasibility of business requirements in terms
of technical options/possibilities, high level estimates, maintain and
improve code quality, be main contact for other teams from technical
perspective, interview, ramp-up, mentor new team members etc. I was a
member of the small team (4 engineers) for 7/24 3rd level support.
Occasionally I also had some BA (business analyst) responsibilities: I
defined larger subprojects in terms of stories, roadmap, high level
estimates according to high level requirements considering priorities,
architecture, quality and technical feasibility.
By time our team has grown so much that it was required to split it into
several different teams. Recently we are 4 teams (approx. 20 developers
plus UI and QA engineers) responsible for nearly the same codebase,
working closely together. My role included supporting each team in
technical questions.
I used to be a deputy ScrumMaster and I also took part in transitioning
from Scrum to a Kanban-Scrum mixture in our team.
One of my main achievement was to vertically split our huge code-base
to form a separate application (out of our monolithic application) in an
automated way (I developed a tool that automatically identifies and splits
out components involved in our own functionalities).
In the meantime I formed trainee teams of juniors for the project so that
they could get used to the domain and project rules. As a result we got a
source of potential candidates to replace leaving colleagues. My
responsibilities included defining smaller but useful tasks that adds value
for the project itself, along with supporting them in technical questions.
Above my project work I participated in Promotion Committees of
EPAM (teams of senior engineers responsible for supporting Resource
Management by examining candidates who want to become senior
developer/team-lead).
2010. Jul. - 2011. Aug.
Employer:
EPAM Systems (http://epam.com)
Project:
Hotels.com (Expedia)
Position:
Software engineer
Role:
Key developer
Tools:
Scrum, Jira, Perforce, Ant + Unibuild, Jenkins, Checkstyle + PMD
Technologies:
Spring, SpringMVC, Spring AOP, ActiveMQ, Axis, JSP, custom MVT
framework in Spring, Tomcat, JQuery, TestNG + EasyMock, EHCache,
Freemarker, SLF4J + Logback, iBatis MS-SQL etc.
Details:
Hotels.com was an E-Commerce project with around 70-100 participatns
these days.
I was member of a SCRUM team responsible for improving and
maintaining a code-base that implements all core business functions
(booking hotels, post-booking communication) of the site. My
responsibilities were delivering new features, code review, bug-fixing
etc.
Above implementing smaller features my main challenge (first
subproject) was to introduce a large MVT (Multivariate test) in order to
check feasibility of a determinate business decision - burden was
increased by short timeframe, high visibility and new domain. The
outcome of the test layed out the path for business for years. As a result
we integrated a new 3rd party system as a 2nd backing engine for core
business. I took part in designing newly required APIs, defining technical
stories to abstract from 3rd party domain (refactoring) and supporting
integration team based on my experience in the business domain.
2010. Feb. - 2010. Jul.
Employer:
EPAM Systems (http://epam.com)
Project:
Hotels.com (Expedia)
Position:
Software engineer
Role:
Developer
Tools:
Scrum, Jira, Perforce, Ant + Unibuild, Jenkins, Checkstyle + PMD
Technologies:
Spring, SpringMVC, Spring AOP, ActiveMQ, Axis, JSP, custom MVT
framework in Spring, Tomcat, JQuery, TestNG + EasyMock, EHCache,
Freemarker, SLF4J + Logback, iBatis MS-SQL etc.
Details:
Hotels.com was an E-Commerce project with around 70-100 participatns
these days.
I was member of a SCRUM team responsible for Mobile web-view of
Hotels.com site. My responsibilities were fixing bugs, implementing new
features, writing automated tests (selenium + custom framework), code
review etc. I created a proof of concept of an Android application that
adapts a set of features of the desktop site.
2009. Oct. - 2010. Jan.
Employer:
EPAM Systems (http://epam.com)
Project:
Mobilkom
Position:
Software engineer
Role:
Key developer
Tools:
Scrum, SVN + Mercurial
Technologies:
JavaSE, OSGI, Eclipse platform, Domain Driven Design, JUnit +
Mockito
Details:
The project had several different aims. At the first priority was to support
Mobilkom getting experienced in nearshore cooperation. The subject of
the team on EPAM-side was to develop unit tests to increase code
coverage of the CRM application implemented by Mobilkom. In one
hand our team created several reports related to the Mobilkom's codebase
(e.g. different measurements, coverage, code review etc.), while we were
implementing unit tests requested by Mobilkom. Finally our reports have
been approved by the customer, our unit tests have been moved to their
codebase, thus the code coverage became higher. Mobilkom considered
experiences at cooperation useful and valuable.
As a key developer my responsibility was to synchronize the code base
by handling code repositories and providing our deliveries as patches. I
participated in developing unit tests along BDD. Above these
responsibilities I performed code reviews, created some bug reports
highlighted by unit testing. I created a Proof Of Concept related to
testability problems of UI components found in Mobilkom's application. I
participated in design analysis and I had a role in customer contact: I
attended a small group that visited Mobilkom at the start of the project
and later I took part in introducing Mobilkom's representatives to our
codes.
2009. May - 2009. Sep.
Employer:
Oghma (http://oghma.hu)
Project:
retailSMS
Role:
Senior developer, architect
Tools:
Eclipse, Trac, SVN
Technologies:
Postgresql, Hibernate3, Struts2, JSP, JavaScript and JQuery, Ajax
Details:
J2EE webapplication design and development
2008. July - 2009. April.
Employer:
Oghma (http://oghma.hu)
Project:
mCitizen
Role:
Senior developer, architect
Tools:
Technologies:
Details:
Eclipse, Trac, SVN
Postgresql, Hibernate3, Struts2, JSP, JavaScript and JQuery, Ajax
J2EE webapplication design and development
2007. Oct. - 2008. Feb.
Employer:
University of Twente (http://utwente.nl)
Project:
StreetTIVO
Role:
developer
Technologies:
C++, KDE/Qt-3, monetDB
Details:
MythTV plugin development for Linux
2007. May - 2007. Aug.
Employer:
Xsys (http://xsys.hu)
Project:
Questionnaire template engine
Role:
Webapplication developer
Tools:
Eclipse, SVN
Technologies:
Postgresql, SpringMVC, JSP, Apache Velocity, JavaScript and Dojo,
Ajax, XML
Details:
J2EE webapplication development
2006. May - 2006. Oct.
Employer:
National Instruments (http://www.ni.com)
Project:
Supporting HR
Role:
Programmer Analyst (intern) under Human Resources
Tools:
Toad, Perforce
Technologies:
Oracle Applications, Oracle Forms, PL/SQL, SQL, SQR
Details:
HR oriented database development used in Oracle Applications.
Lecturing/mentoring experiences
2015. Mar. - 2017. Jan.
Place:
EPAM Systems
Position:
Lead software engineer
Subject:
Spring MVC
Details:
Four days long training that covers Spring MVC architecture, request
processing lifecycle, various features of the framework, web-application
security, REST.
2013. Jun. - 2014 Jan.
Place:
Position:
Subject:
Details:
EPAM Systems
senior software engineer
Senior mentoring/coaching program
I participated in a mentoring/coaching program as a mentor/coach. Goal
was to help a selected candidate developer in reaching senior level. The
program covered improving soft and leadership skills along with fine
tuning technical proficiencies.
2010 Place:
Position:
Subject:
Details:
EPAM Systems
software engineer
Professional Unit Testing and Mocking
How to write good quality unit tests. Best practices, testable code,
mocking, code quality. I held these trainings in two forms: 2 days version
for junior developers (avg. 2 occasions per year) and 2 hours shortened
version mostly for regular and senior developers (one occasion in each
quarter).
2008. Feb. - 2008. Jun.
Place:
University of Debrecen (http://www.inf.unideb.hu)
Position:
demonstrator
Subject:
Programming environments (seminar)
Details:
Version control systems, bash shell, build automation, IDE, Java in
different environments
2008. Sept. - 2009. Jan.
Place:
University of Debrecen (http://www.inf.unideb.hu)
Position:
demonstrator
Subject:
Technologies of system development (seminar)
Details:
Project specification, system requirements, system modelling (UML)
2009. Feb. - 2009. Jun.
Place:
University of Debrecen (http://www.inf.unideb.hu)
Position:
demonstrator
Subject:
Programming environments (seminar)
Details:
Version control systems, bash shell, build automation, IDE, Java in
different environments