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 Specialist.
The portfolio consists of additional topics which are NOT included in my CV:

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, Windows.

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. In fact, I've been communicating with foreign colleagues and stakeholders for 3 years already. I consider myself as a responsible person and also can 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
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 and supported processes for work and education:

Project Activities

  • Oct 2023. Knowledge Transfer: conducted 3 cross-team online meetings where presented technical details of our team implementations.
  • Sep 2023. Onboarding: supported the developer to get started in our team.
  • Oct 2021 - Oct 2023. Mentoring: provided regular support for the developer in our team.
  • Oct 2020 - Dec 2020. Team Leading: held the position of Lead Developer in a team of 3 devs. In addition to development, I was in charge of work planning, meeting holding, development support.

Non-Project Activities

  • Sep 2023. Interviewing: conducted mock interviews to help EPAM colleagues get position on a project.
  • Jul 2022 - Oct 2022. Mentoring: played a Mentor role in the EPAM educational program* RD Java Lab Summer 2022. Supported 5 students.
  • Oct 2021 - Feb 2022. Mentoring: played a Mentor role in the EPAM educational program* RD Java Lab Autumn 2021. Supported 2 students.
  • Sep 2016 - Feb 2018. Private Tutoring**: worked as a mathematics Teacher. Supported 12 students by conducting ~ 650 offline classes in total.

*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:

EPAM English classes. Completed 11 live trainings:

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

EPAM Learning. Completed 4 trainings:

Completed Name Type Efforts Acceptance
Aug 2022 CloudX Associate: AWS Developer Educational program 30 hours Mentor review
Mar 2021 CloudX: Foundations for Tech Self-study course 5 hours Quiz
Sep 2021 Becoming a Tech Mentor Self-study course 1.5 hours Quiz
Jan 2021 Getting Ready for Assessment Self-study course 1.5 hours Quiz

LinkedIn Learning. Completed 30 self-study courses:

Completed Name Practice Level Certificate
Oct 2023 Microservices: Foundations, Design Patterns, Security Advanced File
Sep 2023 Extending, Securing, and Dockerizing Spring Boot Microservices Advanced File
Sep 2023 Parallel Programming with Java Advanced File
Sep 2023 Concurrent Programming with Java repository Advanced File
Sep 2023 Java Database Access with Hibernate Intermediate 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 AWS for Developers: SNS, SQS, and SWF Advanced File
Sep 2023 Advanced Spring: Effective Integration Testing with Spring Boot Advanced File
Sep 2023 Exam Prep: Microsoft Azure Fundamentals Beginner File
Sep 2023 Learning Kubernetes Intermediate File
Aug 2023 Learning Docker Beginner File
Aug 2023 SQL Essential Training repository Beginner File
Aug 2023 Creating Your First Spring Boot Microservice repository Intermediate File
Apr 2023 Learning REST APIs Beginner File
Mar 2023 SQL vs NoSQL: Which Database Type Is Right for You? Intermediate File
Sep 2022 Spring Boot 2.0 Essential Training Intermediate File
Sep 2022 Learning Spring with Spring Boot repository Beginner File
Sep 2022 Git: Branches, Merges, and Remotes Beginner File
Aug 2022 AWS Essential Training for Developers Beginner File
Aug 2022 Git Essential Training: The Basics Beginner File
Jul 2022 Java EE: Servlets and JavaServer Pages (JSP) Intermediate File
Nov 2021 Learning Terraform Beginner File
Oct 2021 Building Full-Stack Apps with React and Spring repository Intermediate File
Oct 2021 Advanced SQL for Query Tuning and Performance Optimization Advanced File
Aug 2021 Spring: Framework in Depth repository Intermediate File
Aug 2021 Spring: Test-Driven Development with JUnit Intermediate File
Aug 2021 Introduction to Linux Beginner File
Aug 2021 Programming Foundations: Algorithms repository Beginner File
Aug 2021 Practical Test-Driven Development for Java Programmers Intermediate File
Jul 2021 Learning Cloud Computing: Core Concepts Beginner 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

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?

Dates Company Project Leaving Reason
Oct 2021 - 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.
Jan 2021 - 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.
Oct 2020 - 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.
Apr 2018 - Sep 2020 RINANU* OKO Desktop Client 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!