Senior Java backend developer with 13-years experience in the creation of web- and distributed applications
- Main technology stack - is Java with a standard set of frameworks for backend development
- Have hands-on experience with Git and CI tools
- Able to use Unix command line in the scope of usual backend tasks
- Have knowledge of common algorithms and data structures
- Able to cover code with a wide range of tests: unit / integration / functional / performance
- Have some experience in math, physics and numerical modeling
- Likes clean & tested code, refactoring, write documentation
- Telegram:
@andreipunko
- E-Mail:
andd3dfx@gmail.com
- Skype:
andrei.punko
- Github: https://github.com/andrei-punko
- This CV: https://raw.githubusercontent.com/andrei-punko/cv/master/CV/pdf/Andrei_Punko_CV_(eng).pdf
- Belorussian State University. Faculty of Physics. 5 years of education
- Qualification "Physicist-Researcher"
- Specialization "Solid-state physics"
- English - B1 (Intermediate)
- FinTech
- Entertainment
- Blockchain
- Documentation
- Travelling
- Java 6-17 and a bit of: Groovy, Kotlin, Go, Lua, C, Python
- Spring (Core, Boot, Data, Rest), Jackson, MapStruct, Lombok, Akka, Quartz, Camel
- JPA, Hibernate, iBatis, Liquibase / Flyway, SQL
- H2, Oracle, PostgreSQL, Redis, Tarantool
- JUnit, Mockito, JMock, Wiremock, Testcontainers, Spock, Gatling, k6
- Maven, Gradle
- Nexus, JFrog
- Jenkins, TeamCity
- ActiveMQ / RabbitMQ
- REST API, Microservices, ELK, Grafana
- AWS, Docker, Openshift
- Corda DLT (certified Corda developer)
- Software Development Principles and Concepts, Design Pattern (MVC, MVP, SOLID)
- Intellij IDEA, Postman, SoapUI, DBeaver, SQL Developer
- Git, Gitlab, Bitbucket and a bit of: SVN, Perforce
- JIRA, Rally, Confluence, Swagger, ClickUp
- Location: Minsk, Belarus
- Timezone: GMT+3
- Likes: coding, swimming
- Not interested in projects related to gambling, casino, forex, dating or other immoral activity
- Position: Senior Software Engineer
- Customer: Sberbank (Russian bank)
- Project: Development of microservices for backend of a bank
- Team Size (devs): 8
Environment:
- Java 15/17
- Spring (Boot, Rest, Data), Lombok, MapStruct, Docker, PostgreSQL, Liquibase
- JUnit, Mockito, Testcontainers
- Gradle, Jenkins
- Git, Bitbucket
- Intellij IDEA, DBeaver
- OpenAPI, Swagger
Tasks performed:
- Integration with external REST APIs
- Development of new APIs using OpenAPI approach
- Code refactoring & review
- Position: Senior Software Engineer
- Customer: Altir (American startup)
- Project: Migration of Python-based service to Java for Soundful product
- Team Size (devs): 1-3
- GitHub profile on a customer account: https://github.com/apunko-altir
Environment:
- Java 11, Python 3
- Spring (Boot, Rest, Data), Lombok, MapStruct, Docker, PostgreSQL, Liquibase
- JUnit, Mockito, Testcontainers, JMeter
- Gradle, Jenkins
- AWS S3
- Git, GitHub
- Intellij IDEA, PyCharm, Postman, DBeaver
- ClickUp, Swagger
Tasks performed:
- REST API design & implementation
- Migration of Python code to Java
- Implementation of hybrid tests for comparison results of run migrated Java code and Python code
- Documentation preparation, knowledge transferring, code review, preparation & showing demo
- Organization of knowledge transferring sessions
- Manage team of 3 people
- Position: Lead Software Engineer
- Customer: VTB (Russian bank)
- Project: Development of ATM backend (7 services)
- Team Size (devs): 9 (half year), 3 (half of year)
Environment:
- Java 11, Lua
- Spring (Boot, Rest, Data), Lombok, MapStruct, OkHttp, Tarantool, Docker
- JUnit, Mockito, Wiremock, Testcontainers, JMeter, Sonar
- Gradle (composite build), TeamCity
- OpenShift, Grafana, Prometheus, Fluent Bit, Jaeger
- Intellij IDEA, Postman, Git, Bitbucket
- Jira, Confluence, Swagger
Tasks performed:
- REST API design & implementation
- OpenShift services configuration adjustment
- Setup of logging, monitoring, tracing, audit for services
- Documentation preparation, knowledge transferring, code review
- Participation in performance testing
- Position: Senior Software Engineer
- Customer: Amazon
- Project: Development of software for a home security device
- Team size (devs): 5
Environment:
- Proprietary framework for web-services development
- Proprietary build tool
- Git, Docker
- AWS cloud
- Intellij IDEA
Tasks performed:
- Implement API & tests for it
- Development of some CI pipeline parts
- Painful usage of proprietary tools on VM environment
- Position: Senior Software Engineer
- Customer: Epam Systems (Outsource company)
- Project: Development of Blockchain-based app prototypes, based on Corda DLT for potential customers
- Team size (devs): 3
Environment:
- Java 8, Groovy, Go
- Spring (Core, Boot, Rest, Data), Lombok, MapStruct
- Corda, Hyperledger (Composer, Fabric)
- H2, PostgreSQL, LevelDB
- JUnit, Mockito, Spock, Gatling, k6
- Gradle, Jenkins (with DSL)
- Git, Gitlab
- Intellij IDEA
- Confluence, Swagger
Tasks performed:
- Design and implement REST API
- Functional/Performance tests implementation
- Demo preparation & demonstration
- Documentation preparation
- Passed Corda certification (private blockchain)
- Developed several Blockchain-based application prototypes
- Position: Senior Software Engineer
- Customer: QVC (German retailer / TV-shop)
- Project: Support development effort for QVC company
- Team size (devs): 3
Environment:
- Java 6
- Jackson, iBatis, JiBX, Spring (Core, Rest)
- JUnit, Mockito
- Oracle Siebel CRM, IBM WebSphere
- Maven, Jenkins
- SVN
- Intellij IDEA
- JIRA
Tasks performed:
- Implemented integration with external Payment Authorization API with security certificates support
- Implemented batch jobs with required business logic
- Documentation preparation
- Position: Senior Software Engineer
- Customer: Microsoft
- Project: Development of doclet for creation of Java docs using DocFx approach from Microsoft
- Team size (devs): 1
- GitHub repository on a customer account: https://github.com/docascode/docfx-doclet
Environment:
- Java 11
- Jackson
- JUnit, Mockito, Jacoco
- Maven
- Git, GitHub
- IntelliJ IDEA
Tasks performed:
- Design application architecture
- Implementation of doclet using modern approach introduced in Java 9
- Position: Senior Software Engineer
- Customer: Epic Games (Developer of games and tools)
- Project: Play an owner role of one of microservices for Epic Games Social Platform
- Team size (devs): 10+
Environment:
- Java 8
- Spring, JPA, Hibernate, JAX-RS
- JUnit, Mockito, Gatling
- PostgreSQL, Redis
- AWS (EC2, Route53, Elastic, Aurora, CloudWatch)
- Git, GitHub, Perforce
- Gradle, TeamCity
- IntelliJ IDEA
- JIRA
Tasks performed:
- Made DB performance optimizations
- Design & implement Cursor API (client cursor as alternative to pagination)
- Migration VCS from Perforce to Git. Setup of CI for that (jobs, pipelines, notifications)
- Position: Senior Software Engineer
- Customer: Intercontinental Hotels Group (Worldwide hotel network)
- Project: Development of a loyalty system for IHG hotels network
- Team size (devs): 40+
Environment:
- Java 8, Groovy
- Spring (Core, Boot, Rest, Data, Security), Akka, JPA, Hibernate, GWT
- JUnit, Mockito, JMock, Spock
- Oracle, Liquibase, Flyway
- ActiveMQ, RabbitMQ
- Git, Bitbucket
- Maven, Gradle, Jenkins
- IntelliJ IDEA, SoapUI, SQL Developer, DBeaver
- Rally, Swagger, Stash
Tasks performed:
- Design and implement REST API
- Development of tool to perform members migration from an external system into an existing loyalty system with applying to them benefits, tier-level changes, etc. according to business rules
- Functional tests implementation
- Demo preparation & demonstration
- Position: Java Developer
- Customer: Extra Energy (British energy provider)
- Project: Development statistics collector from smart electric counters for European energy supply provider
- Team Size (devs): 3
Environment:
- Java 8
- Spring (Boot, Data, Cloud, Integration)
- JUnit, Mockito
- JPA, PostgreSQL, Liquibase
- Maven, Jenkins
- Git, Bitbucket, Docker
- Intellij IDEA
- Jira, Confluence
Tasks performed:
- CI setup
- Involved in architecture design activities
- Participated in R&D activities
- Position: (Junior -> Middle -> Senior) Software Engineer
- Customer: Intercontinental Hotels Group (Worldwide hotel network)
- Project: Development of a loyalty system for hotel network
- Team Size (devs): 40+
Environment:
- Java 6/7
- Apache CXF, Spring, Apache Camel, Quartz, GWT
- JUnit, JMock
- Oracle, JPA, Hibernate
- Maven, Jenkins
- Git, Bitbucket
- JMS, ActiveMQ
- SoapUI, NetBeans / Eclipse / IntelliJ IDEA
- Rally
Tasks performed:
- Designed & developed set of Quartz jobs
- Adapt existing/Developed new UI components for 2 UI Apps (using GWT)
- Add support of second (Chinese) language to the existing UI with translation ability
- Developed tool for batch tokenization of 180 million credit cards
- Mentoring & support of new team members
- Position: Junior Software Engineer
- Customer: -
- Project: Studying in Java laboratory
- Team Size (devs): 1
Environment:
- Java 6
- Spring, JPA, Hibernate, SQL, JavaScript, jQuery, JSF
- Oracle
- NetBeans, Tomcat
Tasks performed:
- Implemented 10 typical Java-laboratory tasks & bonus task - "Reversi" game