Skip to content

Yevhen-Tkachenko-1/Software-Engineer-Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Software Engineer Portfolio

picture

Welcome to Developer's page!

The portfolio would be interesting for any IT specialist such as Researcher, Recruiter, HR, PM or Technical.
Even if you have my CV, it's a good idea to review the following topics for more details:

Updated June 2024

About

picture

Having Java as a primary skill, I've been doing commercial development for 6 years so far. During this time I've come across different apps such as Backend, Cloud, Frontend, Desktop. Working on these apps, I've got considerable experience with Java 8-17, JavaEE, Spring, AWS, SQL, NoSQL, JavaFX, Git.

Regarding responsibilities, I'm familiar with all the main stages of engineering. Working on Technical Research, Software Design, Implementation, Testing, Deployment, I showed quite efficient work on the Full Cycle development. Achievements are 3 apps implemented from scratch and with 4 others I worked on support and extension.

Thanks to fluent English and good soft skills, I'm an efficient Team Player even in case of international teams. Specifically, I have more than 3 years of cooperation with foreign colleagues and stakeholders. I consider myself as a responsible person and also take care about others. I have production experience of Team Leading and was a Mentor for education programs. In addition to team membership, I have more than 2 years of independent work as a Key Developer.

I'm always open to Feedback about my work. On each project, my professional and personal qualities met or even exceeded expectations. At the same time, I see the ways for self-improvement and continue working on my hard, soft, and leadership skills. Currently, I'm recognized as a Senior and for the future I plan to take Lead Software Engineer position.

Project Feedbacks

picture

The table shows you context around. Please, follow links to see actual Feedback pages:

Date Company Feedback Link Reviewers Description
May 2024 Global
Logic
Annual Performance Review Project Manager (GlobalLogic)
Project Director (GlobalLogic)
As part of regular Performance Review
Sep 2023 EPAM
Systems
Half-year Feedback Summary Product Owner (customer)
Team Lead (customer)
Scrum Master (customer)
Tech Lead (EPAM)
Summing up the entire work path on a project
Mar 2023 EPAM
Systems
Half-year Feedback Summary Product Owner (customer)
Scrum Master (customer)
Delivery Manager (EPAM)
As part of constant feedback process
Sep 2022 EPAM
Systems
Half-year Feedback Summary Product Owner (customer)
Team Lead (customer)
Scrum Master (customer)
As part of constant feedback process
Jun 2022 EPAM
Systems
Level-Up Feedbacks Team Lead (EPAM)
Tech Lead (EPAM)
As part of Level-Up assessment preparation
Jun 2021 EPAM
Systems
Half-year Feedback Team Lead (EPAM) As part of constant feedback process
Jan 2021 EPAM
Systems
Quit Feedback Developer (EPAM) Summing up the entire work path on a project
Sep 2020 RINANU* Quit Feedback Project Manager (RINANU) Summing up the entire work path on a project

*RINANU is Ukrainian Product Department that produces Radar Station Prototypes including scientific research, hardware and software implementation.

Project Challenges

picture

The table shows you context around. Please, follow links to see full Stories:

Year Company Story Link Major Points Achievements
2021 EPAM
Systems
My first Cloud Development POC, Refactoring, End-to-end Testing, Deployment Automation Implemented and released AWS-based Microservice
2021 EPAM
Systems
My first App Improvement Bug Fixing, Refactoring, Extension, Local Testing, Remote Debug, Knowledge Transfer Improved and released AWS Lambda
2020 EPAM
Systems
My first project at EPAM Requirements Clarification, Research, Development, Team Leading, Demo Implemented Java Tool
2019 RINANU* My first Complex App Technologies Research, Requirements Clarification, Architecture, Development, Maintenance, Expansion, Integration Testing, Packaging, Cross-Platforming Implemented complex Desktop app
2018 RINANU* My first Commercial App Technical Research Implemented simple Desktop app

*RINANU is Ukrainian Product Department that produces Radar Station Prototypes including scientific research, hardware and software implementation.

Rated Skills

picture

Category Skill Level* Project work
Core Languages Java 8 expert 6 years
Java 9-17 intermediate 1 year
C# entry 1 month
C/C++ entry 6 months
TypeScript entry 6 months
JavaScript entry 2 month
Kotlin theoretical
Development Areas Backend advanced 3 years
Desktop advanced 2 years
Cloud intermediate 1.5 years
Microservices intermediate 1.5 years
REST API intermediate 1.5 years
Monoliths intermediate 1 year
Databases intermediate 1 year
Fullstack entry 1 year
Frontend entry 6 months
Backend Spring Core advanced 2 years
Spring Boot intermediate 1 year
Java EE intermediate 1 year
Spring Data entry 6 months
Spring Web entry 6 months
Apache Kafka entry 4 months
Databases SQL advanced 2.5 years
OracleDB intermediate 1.5 years
NoSQL intermediate 1 year
PostgreSQL intermediate 6 months
InfluxDB entry 6 months
DynamoDB entry 3 months
Hibernate entry 1 month
Clouds AWS Platform intermediate 1.5 years
AWS Java SDK intermediate 1 year
AWS Lambda intermediate 1 year
AWS DynamoDB entry 3 months
AWS SES entry 2 months
AWS SQS entry 2 months
AWS SNS entry 1 month
AWS CloudWatch entry 1 month
AWS EC2 entry 1 month
AWS S3 entry 1 month
AWS ECS theoretical
AWS EKS theoretical
Frontend JavaFX advanced 2 years
UI/UX intermediate 1.5 years
2D/3D graphics intermediate 1 year
JSON/XML intermediate 1 year
HTML/CSS entry 6 months
AngularJS 2 entry 6 months
Vue.js entry 2 months
Testing JUnit advanced 3 years
Postman intermediate 1 year
JMockit entry 6 months
Mockito entry 5 months
JProfiler entry 1 month
OpenTelemetry entry 1 month
Jaeger entry 1 month
CI/CD Git advanced 3 years
GitLab intermediate 2 years
JBoss intermediate 2 years
Gradle intermediate 2 years
Maven intermediate 1.5 years
GitHub intermediate 8 months
Docker entry 8 months
Kubernetes entry 6 months
Terraform entry 6 months
Azure DevOps entry 6 months
Software & Tools Windows advanced 5.5 years
IntelliJ IDEA advanced 3.5 years
Eclipse IDE advanced 2.5 years
Jira advanced 2.5 years
SQL Developer intermediate 2 years
Command Line intermediate 2 years
Confluence intermediate 2 years
Linux intermediate 9 months
Tilt Dev intermediate 6 months
pgAdmin entry 4 months
VS Code entry 4 months
Node-RED entry 2 months
GitHub Copilot non-project
General OOP expert 5 years
Clean Code expert 4 years
Mathematics expert 3 years
Design Patterns advanced 3 years
Scrum advanced 2.5 years
Product Development advanced 2.5 years
Kanban intermediate 2 years
Outstaffing intermediate 2 years
Outsourcing intermediate 1.5 years
Waterfall intermediate 1 year
Multithreading intermediate 1 year
Domains Radar Stations advanced 2.5 years
Banking System intermediate 2 years
Performance Analysis intermediate 1 year
Asset Management intermediate 8 months

*used next levels:

  • theoretical or non-project - limited by self-education and pet project work. Able to work in slow pace with help of documentation and colleagues.
  • entry - several months of project work with basic theoretical knowledge. Able to work in moderate pace with help of documentation and peers review.
  • intermediate - about year of project work with good theoretical knowledge. Able to work in a regular pace independently.
  • advanced - several years of project work with wide theoretical knowledge. Able to work in fast pace and ready to consult others.
  • expert - several years of project work with wide and deep theoretical knowledge. Able to work in fast pace and free to consult others.

Leadership Experience

picture

Cases where I organized/supported processes for work and education:

Date Type Activity Contribution
Oct 2023 Project work Knowledge Transfer Conducted 3 cross-team meetings where presented technical details of our team implementations
Sep 2023 Project work Onboarding Supported the developer to get started in our team
Oct 2021 - Sep 2023 Project work Mentoring Provided regular support for the developer in our team
Sep 2023 Non‑commercial Interviewing Conducted mock interviews to help EPAM colleagues get position on a project
Jul 2022 - Oct 2022 Non‑commercial Mentoring Played a Mentor role in the EPAM educational program* RD Java Lab Summer 2022. Supported 5 students
Oct 2021 - Feb 2022 Non‑commercial Mentoring Played a Mentor role in the EPAM educational program* RD Java Lab Autumn 2021. Supported 2 students
Oct 2020 - Dec 2020 Project work Team Leading Held the position of Lead Developer in a team of 3 devs. Was in charge of requirements clarification, work planning, development, daily meetings, technical support
Sep 2016 - Feb 2018 Non‑IT Private Tutoring** Worked as a mathematics teacher. Supported 12 students by conducting ~ 650 offline classes in total

*EPAM educational program is pre-production activity that consists of theoretical lectures and practical tasks. During task completion each Mentee is assigned to specific Mentor. That time Mentor supports students by organizing one-to-one sessions to discuss task requirements and implementation way, answer questions, check progress, accept tasks. Also, there is offline support using chatting, regular code review and app local testing. Finally, Mentor provides feedback on the Mentees performance.

**private tutoring is support for students while they are studying at school or university. It includes help with homework, clarification of difficult points, exam preparation.

Self-education

picture

Working on my hard and soft skills, have next achievements so far:

Business English. Completed 12 live trainings:

Date Name Level Efforts Duration Provider
Jun 2024 Business Communication B1+/B2/B2+ 10 lessons 2 months GlobalLogic
Oct 2023 IT Communication B2/B2+ 17 lessons 2 months EPAM Systems
Sep 2023 Presenting and Public Speaking B1+/B2/B2+ 20 lessons 3 months EPAM Systems
Jul 2023 Virtual Communication B1+/B2/B2+ 26 lessons 4 months EPAM Systems
Apr 2023 Business Communication B1+/B2 41 lessons 7 months EPAM Systems
Nov 2022 IT Grammar B1+/B2 17 lessons 3 months EPAM Systems
Jul 2022 Small Talks B1/B1+ 8 lessons 2 months EPAM Systems
Jul 2022 IT Grammar A2+/B1 17 lessons 4 months EPAM Systems
May 2022 Speaking Club B1/B2/C1/C2 10 lessons 3 months EPAM Systems
Feb 2022 Project Interviews A2+/B1/B1+ 10 lessons 2 months EPAM Systems
Dec 2021 Breaking the Language Barrier A2+/B1 11 lessons 2 months EPAM Systems
Oct 2021 Business Communication A2+/B1 40 lessons 7 months EPAM Systems

Software Engineering. Completed 3 educational programs:

Date Name Provider Level Type Efforts Practice Acceptance
May 2024 GenAI: Assisted Programming with GitHub Copilot GlobalLogic Beginner Mixed training 10 hours Repository Quiz
Nov 2023 AWS Certified Developer - Associate A Cloud Guru Intermediate Self‑study course 42 hours 14 Labs in Playground, 4 Exams 10 Quizzes
Aug 2022 CloudX Associate: AWS Developer EPAM Systems Beginner Educational program 30 hours 5 Labs in AWS Free Tier account Mentor review

LinkedIn Learning. Completed 40 self-study courses:

Category Completed Title Practice Level Certificate
Backend Jul 2024 Complete Guide to Apache Kafka Repository Beginner File
Oct 2023 Microservices: Security Advanced File
Oct 2023 Microservices: Design Patterns Advanced File
Oct 2023 Microservices: Foundations Advanced File
Sep 2023 Java Database Access with Hibernate Intermediate File
Apr 2023 Learning REST APIs Beginner File
Jul 2022 Java EE: Servlets and JavaServer Pages (JSP) Intermediate File
Generative AI May 2024 GitHub Copilot: First Look Repository Intermediate File
Feb 2024 Practical GitHub Copilot Beginner File
Feb 2024 Pair Programming with AI Beginner File
Jan 2024 Introduction to Prompt Engineering for Generative AI Beginner File
Nov 2023 Ethics in the Age of Generative AI Beginner File
Nov 2023 What Is Generative AI? Beginner File
Spring Framework Sep 2023 Extending, Securing, and Dockerizing Spring Boot Microservices Advanced File
Sep 2023 Spring 5.0 and Spring Boot 2.0 New Features Intermediate File
Sep 2023 Spring: Spring Data 2 Intermediate File
Sep 2023 Advanced Spring: Effective Integration Testing with Spring Boot Advanced File
Aug 2023 Creating Your First Spring Boot Microservice Repository Intermediate File
Sep 2022 Spring Boot 2.0 Essential Training Intermediate File
Sep 2022
Aug 2021
Learning Spring with Spring Boot Repository Beginner File
Oct 2021 Building Full-Stack Apps with React and Spring Repository Intermediate File
Aug 2021 Spring: Framework in Depth Repository Intermediate File
Aug 2021 Spring: Test-Driven Development with JUnit Intermediate File
CI/CD Sep 2023 Learning Kubernetes Intermediate File
Aug 2023 Learning Docker Beginner File
Sep 2022 Git: Branches, Merges, and Remotes Beginner File
Aug 2022 Git Essential Training: The Basics Beginner File
Nov 2021 Learning Terraform Beginner File
Aug 2021 Introduction to Linux Beginner File
Java Sep 2023 Parallel Programming with Java Advanced File
Sep 2023 Concurrent Programming with Java Repository Advanced File
Aug 2021 Programming Foundations: Algorithms Repository Beginner File
Aug 2021 Practical Test-Driven Development for Java Programmers Intermediate File
Cloud Sep 2023 AWS for Developers: SNS, SQS, and SWF Advanced File
Sep 2023 Exam Prep: Microsoft Azure Fundamentals Beginner File
Aug 2022 AWS Essential Training for Developers Beginner File
Jul 2021
May 2021
Learning Cloud Computing: Core Concepts Beginner File
SQL Aug 2023 SQL Essential Training Repository Beginner File
Mar 2023 SQL vs NoSQL: Which Database Type Is Right for You? Intermediate File
Oct 2021 Advanced SQL for Query Tuning and Performance Optimization Advanced File

Business Process Awareness. Completed 44 self-study trainings:

Provider Completed Title Certificate
GlobalLogic May 2024 IT Security in the Workplace File
May 2024 Security Awareness File
Mar 2024 Introduction to Data Protection File
Nov 2023 GQMS: Ochibo-Hiroi File
Nov 2023 GQMS: Critical Incident Management File
Nov 2023 GQMS(Global Quality Management System): Overview File
Nov 2023 Non-Technical Security File
Nov 2023 Internet Security and You File
Nov 2023 AI Chatbots: Use, Risks, and Limitations File
Nov 2023 Information Protection File
EPAM Systems Sep 2023 Becoming a Tech Mentor File
Jul 2023
Jun 2022
May 2021
Sep 2020
5 Steps to Cyber Security Success File
Jul 2023
Jun 2022
Jul 2021
Oct 2020
Health, Safety and Fire Prevention File
Jul 2023
Oct 2020
QMS(Quality Management System) Induction File
Jul 2023
Jul 2022
Jul 2021
Oct 2020
Data Privacy and Awareness File
Jul 2023
Jun 2022
Jun 2021
Sep 2020
Working from Home File
Jul 2023 Social Engineering Defense File
Jul 2023
Jun 2022
Jul 2021
Oct 2020
IT Security and Awareness File
Mar 2023 Career Journeys: Project Manager, Solution Architect File
Mar 2023 Assessment Preparation: Getting Ready File
Oct 2022
Sep 2021
Nov 2020
Code of Ethical Conduct File
May 2022 Assessment Preparation: Self-Presentation File
Oct 2021 CloudX: Foundations for Tech File
Jul 2021
Feb 2021
Vulnerability Management File
Apr 2021 How to Be Diplomatic and Concise File

Books Reading:

Reading Title Authorship
2023 Designing Data-Intensive Applications Martin Kleppmann
2020 Java XML and JSON: Document processing for Java SE Jeff Friesen
2019 Kotlin Head First
2019 Android Development Head First
2019 Design Patterns Head First
2019 Pro JavaFX 8: Building Desktop, Mobile, and Embedded Java Clients Apress
2018 Learn JavaFX 8: Building User Experience and Interfaces Kishori Sharan
2018 JavaFX 8: Introduction By Example Apress
2018 Java: A Beginner's Guide Herbert Schildt
2018 Effective Java Joshua Bloch
2018 The C++ Programming Language Bjarne Stroustrup
2018 The C Programming Language Brian W.Kernighan
Dennis M.Ritchie

Career Promotions

I'm going to tell about my Career achievements in chronological order:

Junior Software Engineer

  • In April 2018 I started my IT Career as a Junior Developer at RINANU*. At the beginning I had mostly theoretical knowledge about programming, and after 1 month of C/C++ onsite practicing, I was trusted to implement simple but production application.

    *RINANU is Ukrainian Product Department that produces Radar Station Prototypes including scientific research, hardware and software implementation.

Software Engineer

  • The next step in my IT Career was complex application where I met Java. I successfully implemented POC and started development of JavaFX project from scratch. The progress of app implementation was quite noticeable, so in September 2018, I got promoted to Software Engineer.

English B1-

  • When I joined EPAM company, my English was not enough for efficient work with foreign colleagues. I decided to attend English classes and for that reason I had to pass English assessment. As a result of speaking assessment in Nov 2020, my English was evaluated as B1- (low intermediate)

English B1

  • Working with foreign colleagues and learning English in live classes, I felt real progress in communication. So, in about 1 year, it was time to reevaluate my English level. As a result of speaking assessment in Oct 2021, my English was promoted to B1 (intermediate)

English B1+

  • Over time, my English became even better. I targeted to attend more advanced English classes, and finally proved readiness. As a result of speaking assessment in May 2022, my English was promoted to B1+ (strong intermediate)

English B2

  • English as a soft skill has direct impact on Engineering Level promotion. In order to get Senior level, I took one more English evaluation. As a result of speaking assessment in Feb 2023, my English was promoted to B2 (upper intermediate)

Senior Software Engineer

  • When I had 4 years of experience in IT, I began to feel readiness for the Senior level. At that time I was at EPAM, so in order to get promotion, I had to pass the Competency Evaluation process. Along with self-preparation I completed trainings designed by EPAM: Getting Ready and Self-Presentation. In October 2022, there was assessment session where my Manager, foreign Committee Representative and I had discussion about my experience. I conducted short presentation about my Career, and then we talked about Java theory and use cases in backend area. I showed quite impressive experience, but there were some gaps in my theoretical knowledge. So, next I completed PDP plan and had second session with my direct Managers. Finally, in Mar 2023 I got promoted to Senior level in Java area.

Senior Software Engineer

  • In November 2023 I joined GlobalLogic company, where I was recognized as a Senior in Java area. Engineering Level was evaluated by passing Company and Project interviews including technical and behavioural ones.

Project Changing

picture

My thoughts and actual history of project changes:

When is the right time to look for new opportunities?

Personally, I really like stable companies and projects where I can work for a long period, e.g. 2 years and more. Long term assignment is profitable for both: developer and company. For example, working on large enterprise apps, first you have to spend some time and resources to get to know the project. It's kinda an investment that later brings benefits such as satisfaction from your work, possibilities to make bigger impact and finally, bringing more value to the project. Even when building large app from scratch, you need to define the architecture and establish the development processes that is also beneficial only in long term run.

Such commitment also has the other side. That's great if you are always excited about work you do. However, at some projects, at some point (for example in 2 years of development), you may find yourself doing the same job day-to-day with no opportunity to grow. In case this can't be changed due to project limitations I would consider to switch to another project.

I realize importance and risks of such decision for myself, my current project and future project. In such cases, first of all, I talk about my concerns with project managers. If we can't find solution, then it's good idea to consider other projects to join. I try to find the best fit and finally accept the offer very carefully. Joining new project is weighted decision that means I commit for long term cooperation.

What to check to find the best fit?

So, I have some points to check when applying for new projects:

  • Why is position open?
  • Project Domain: what is it about? what is outcome? which impact does it make?
  • Tech Stack, e.g. key language, frameworks, versions, databases.
  • Development Type, e.g. full cycle, support, migration.
  • Development Responsibilities, e.g. design, research, implementation, delivery.
  • What do regular tasks look like? Any specific work scope for newcomer? Any specific release dates? Any urgent deadlines?
  • Development Methodology, e.g. Scrum. Any specific processes? How many regular meetings?
  • How is the task formulated? How developer is involved in requirements clarification, testing and deployment?
  • Project Team, e.g. size, kinds of specialists, presents of local and foreign colleagues.
  • Interaction with customers and English-speaking colleagues.
  • Is work laptop provided? Which OS, e.g. Windows, Linux, Mac.
  • Project Tools, e.g. IDE, VCS, apps for chatting, online meetings, task tracking.
  • Are there less experienced colleagues to play mentor role?
  • Are there more experienced colleagues to ask for help?
  • Work hours (time zone dependencies).
  • General work tempo: Any constant pressure to be fast? Any lack of tasks or presence of complex processes, so it gets slow?
  • Is there overtime work? If so, is it compensated?
  • Is there activity tracker, e.g. mouse movement tracking, screen capture?
  • Onboarding: Are there any flow and materials to help newcomer understand project? How much time allocated?
  • Probation period: Is it present? How long does it take? In which period is it expected for newcomer to get started with regular pace?
  • Project Stability: Will there be work in 1 year?
  • Project Perspectives: Is there space to grow and take more complex tasks and next level responsibilities?
  • Office, its location, workplace and benefits.
  • Non-project activities, e.g. team-buildings, events, conferences, hackathons.
  • Education support, sport compensation, health insurance.
  • Are there any business trip? (especially interesting if it helps you meet your implementation in real life)
  • Additional bonuses for good performance, successfully released features, resolving additional tasks asked by customer, providing better solution.
  • Compensation Range for the position.
  • Compensation Review: What to do to get it? How often? Regular or by asking? Which amount is it possible to have in 2 years?

Why did I actually change projects?

Left Company Project Leaving Reason
 Oct 2023 EPAM
Systems
Enterprise Web Driven by Customer. As part of Cost Saving program, almost all EPAM employees were ramped down. As stated by the Customer Top Management, there were internal processes that are not related to EPAM performance. In fact, Customer Middle Management appreciated our contribution and it was a big loss for them.
 Sep 2021 EPAM
Systems
Cloud Pipeline Driven by Customer. Our team successfully finished active phase of development by releasing stable version of app. Finally, we organized knowledge transfer and passed app to support team.
 Dec 2020 EPAM
Systems
Java Tool Driven by Customer. It was short project with fixed term assignment. Our team successfully implemented pilot version of application and it was enough for the Customers at that moment.
 Sep 2020 RINANU* Java Desktop Driven by me. Generally, it was kinda government department and I wanted to switch to work in an IT company. Leaving this project, I left successfully implemented beta version of app and did comprehensive knowledge transfer.

*RINANU is Ukrainian Product Department that produces Radar Station Prototypes including scientific research, hardware and software implementation.

Programming Habits

Some tips and approaches for programmers that I noticed and personally found useful:

  • Work from office helps be more efficient and keep work-life balance. Also, it's more secure and company is less concerned about employee's doings.
  • Refactoring helps fix bugs. For example, in Java it's nice to use Stream API, but sometimes it's overcomplicated. When we have many invocations in a row, such code is not possible to understand. I would rather have plain Java implementation then complex constructions. This way, refactoring helped me several times to find an issue.
  • Writing documentation helps better understand what you've done, structurise gained knowledge and release memory. Once important details are covered, you can forget about it and easily switch to the next task.
    Documenting is also right step when you learn something new. If you can describe point in you own written words, you understand it.
  • Adjusting the video playback speed helps learn quickly. I like watching tutorials, but sometimes it's very detailed and takes much time. Advice is quite simple but helped me a lot. Most recordings have good quality, so it's possible to speed up playback to 1.5 without losing understanding. With this my learning becomes faster and as a result, I feel comfortable to continue learning this way.

Thanks for attention!