Vitalii Serdiuk

Vitalii Serdiuk

Hourly rate: members only

Availability: members only

Willingness to travel: Europe

Professional status: Freelancer

Last updated: 26 Sep 2023

Total work experience:

Language skills: English, Ukrainian, Russian,

Personal summary

My name is Vitalii Serdiuk, and I am a Java Developer with solid working experience. I have several exciting projects from different areas in my profile, such as the B2B payment system, B2B system for sea container logistics, POS system for distribution stores and shopping malls, and internet shop for the art gallery. With a strong background in Java development and expertise in various tools and frameworks, I am well-suited to contribute to your team and help drive your software development projects to success. I have a Bachelor's Degree (four years of education) in System Engineering from Donetsk National Technical University and a Master's degree in Computerized Control and Automation Systems Engineering from Donetsk National Technical University. During my study at University, I had scientific work, "Monitoring and identification control system of completed orders at a pharmaceutical company based on Radio Frequency Identification (RFID)," in which I explored different radio waves and how to use them in logistics for monitoring the movement of goods in the warehouse in real-time. I have an official publication at the Donetsk National Technical University of the abstracts of this scientific work. Based on the publication of scientific abstracts, I participated in a scientific conference at the Donetsk National Technical University. I have 8 years of experience with Java and Java frameworks in total. I have experience working with different Java versions. I like to write good reading and supportive code. My bed table book is 'Clean Code: A Handbook of Agile Software Craftsmanship' by Robert C. Martin. So I know something about clean code style. Do you know software developers are lazy and don't like writing tests and technical documentation? But it is not about me. I am so into writing good tests and structured documentation. According to this, I could be handy to a team. So why am I a good candidate? The point is that I am not just a Java Developer. I have experience building applications from scratch and preparing whole CI/CD with Docker, Kubernetes, and Jenkins pipelines. Also, I have experience in Frontend. So I have experience in preparing contracts between a Backend and a Frontend. I am a great fan of TDD and always try to prepare all possible tests for an application. Because of this, I published several articles about the pros and cons of the TDD approach in Software Development. I have experience preparing schooling and presentations for clients and other technical staff. I like to share knowledge, so I even published a small handbook about Apache POI, which could be a quick guide on how to start using Apache POI to create and fill the .xlsx files using Java automatically. I can easily prepare high-quality technical documentation such as pipeline pictures, big pictures, start-end diagrams, and algorithm block schemes. Also, I have experience managing a small team and being a SCRUM master for this team. During my working experience, I have gained comprehensive knowledge and hands-on experience with various technologies and frameworks. Some of my essential skills include: ● Java: I deeply understand the Java programming language, including core concepts and best practices. I have developed robust and scalable applications using Java. ● Hibernate: I am proficient in working with the Hibernate ORM (Object-Relational Mapping) framework for database management and persistence. I have used Hibernate to streamline data access and simplify database interactions. ● Spring Framework: I have a strong command over the Spring Framework and its modules, such as Spring Boot, Spring Data JPA, and Spring Batch. I have leveraged these tools to build efficient and scalable enterprise applications. ● Databases: I have hands-on experience with PostgreSQL and MySQL databases, including data modeling, querying, and optimization. I understand how to design and implement database schemas that align with application requirements. ● Docker: I am skilled in containerization using Docker, enabling the seamless deployment and management of applications across different environments. I have utilized Docker to create lightweight and portable application containers. ● Testing and Documentation: I have worked extensively with JUnit and Mockito for unit and integration testing. Additionally, I am proficient in using Spring REST Docs to generate comprehensive and accurate API documentation. ● Build and Deployment Tools: I am well-versed in tools such as Maven and Gradle, which I have utilized to automate the build process and manage dependencies. In addition, I am experienced in version control with Git and continuous integration with Jenkins. ● Front-End Technologies: I know Angular and AngularJS frameworks, along with proficiency in HTML, CSS, and JavaScript. This allows me to contribute to full-stack development and collaborate effectively with front-end teams. ● Monitoring and Visualization: I have worked with Kibana and Grafana to monitor application performance, analyze logs, and visualize data. This enables me to proactively identify and resolve issues, ensuring the smooth operation of applications. Throughout my career, I have successfully delivered high-quality software solutions in various domains. I am a fast learner, a strong problem-solver, and a collaborative team player. I thrive in dynamic environments and have a proven track record of meeting tight deadlines while maintaining exceptional attention to detail. I am excited about the opportunity to join your company and contribute to its ongoing success. I am confident that my technical skills and passion for delivering innovative solutions make me a valuable asset to your development team. One of my most outstanding qualities is my insatiable curiosity, which fuels my relentless pursuit of knowledge and understanding. I am unwavering, willing to learn and explore new ideas, constantly seeking opportunities for personal growth and self-improvement. My passion for learning extends beyond my benefit, as I genuinely enjoy sharing the knowledge I acquire with others. Whether engaging in deep conversations, mentoring others, or contributing to educational initiatives, I naturally want to help others expand their horizons. My curiosity, willingness to learn, and eagerness to share knowledge make me a remarkable individual who continuously strives to enrich myself and those around me. Moreover, I accumulated valuable knowledge during my career, so I actively contribute to the software development community through mentoring and knowledge sharing. I have presented at conferences as a speaker, conducted workshops, and published articles to disseminate my expertise and contribute to the field's growth. I have authored a comprehensive handbook aimed at Java Developers. This handbook serves as a detailed, step-by-step guide, elucidating the proficient utilization of the Apache POI framework to generate and update files in the .xls/.xlsx format. The book 'Apache POI Handbook: Java + Apache POI tutorial' was published as an e-book on the Amazon web resource. Also, I am the author of articles on essential topics in Software Development, which cover practical approaches, paradigms, good practice, and code styling in the development process. I published my articles on platforms with huge audiences, such as Medium.com and Linkedin.com. Next is a list of my articles with short descriptions. ● 'TDD vs BDD vs DDD': The article covers software engineering techniques such as Test-Driven-Development (TDD), Behavior-Driven-Development (BDD), and Domain-Driven-Development (DDD) which help developers, QA, DevOps engineers, analytics, software architect, DB architect, project owner, project delivery manager, and project manager to work as one mechanism in the scope of software development. ● ‘Why is it so important for software developers to write tests’: The article's main idea is to show that software tests are essential to ensure the code's quality, and they have various benefits, such as quickly catching potential problems, guaranteeing a robust software architecture, saving time in the long run, and creating high-quality code. ● ‘Clean code principles in Java’: The article covers the Clean Code Principles and shows its essential for any software development project. Clean Code Principles will make code accessible, understandable, maintainable, and adaptable. This article looked at examples of good and bad code structures in Java. ● ‘Role of comments in the code’: The main idea of the article is to show that code comments are essential to software development, enabling programmers to document their code, enhance collaboration, and improve code maintenance. ● ‘Software Documentation: Role, Types, and Best Practices’: The article shows the role, importance, and types of Software Documentation.

Language skills

English

Advanced

Ukrainian

Native speaker

Russian

Native speaker