Muhammed Fatih Doğmuş
Verified Expert in Engineering
Back-end Developer
Ankara, Turkey
Toptal member since April 15, 2022
Fatih is a full-stack software engineer with four years of experience. He mostly works with Java, Spring, and Hibernate on the back-end side and Angular and React on the front-end side. He is passionate about software craftsmanship, clean code, testing, design, and architecture. Fatih is also an experienced learner that hones his skills constantly and learns new technologies and techniques.
Portfolio
Experience
- Java - 4 years
- Spring Boot - 4 years
- Hibernate - 4 years
- TypeScript - 2 years
- Testcontainers - 2 years
- Cypress - 2 years
- React - 1 year
- Angular - 1 year
Availability
Preferred Environment
Java, Spring, Angular, IntelliJ IDEA, Full-stack Development
The most amazing...
...thing I've created is an infrastructure that enables students to attend interactive virtual lab sessions during COVID-19 lockdown.
Work Experience
Team Lead
Tubitak
- Managed a team of around 15 people and mentored them on personal development, issue management, and conflict resolution.
- Helped the team improve their technical skills, as the project required a lot of new technologies like Kotlin, Gradle, React, and Next.js.
- Acted as a technical lead to make technological and architectural decisions and helped the team unblock technical problems.
Senior Software Engineer
Tubitak
- Acted as a technical leader for my current team to update them on modern technologies like Spring, Hibernate, Angular, TypeScript, and Cypress.
- Wrote most of the infrastructure for an application for other developers to use.
- Performed technical interviews for candidates, mostly new graduates, and interns.
Senior Back-end Engineer
Atlantic Technology Ventures
- Developed complex features like graph data pagination and internal model migration for a data lake company.
- Performed code reviews on multiple pull requests on different issues.
- Worked on a large legacy codebase that was hard to navigate and understand.
Software Developer
Tubitak
- Gathered requirements with customers, designed the general architecture, and developed features in Sprints.
- Guided the team throughout the project from a technical perspective when using Spring, Hibernate, Angular, Kubernetes, and Cypress.io.
- Oversaw the team in architectural concerns such as hexagonal architecture, domain-driven design, object-oriented design, and testing.
- Created a needed back-end and front-end infrastructure for all teams to use in building features.
- Mentored interns, recruits, and part-time employees and held Spring and clean code courses for interns during our summer boot camp.
- Created a Kubernetes cluster from scratch on a bare-metal cluster and installed the required dependencies, such as database and Redis, and containerized front-end and back-end applications.
- Wrote the infrastructure of end-to-end testing with Cypress.io and Testcontainers that run continuously on Jenkins.
- Laid the foundation of logging architecture with Logback, RabbitMQ, Logstash, and Elasticsearch.
- Wrote the CI/CD pipeline to easily integrate and deploy the application to the production environment.
- Performed interviews with new graduates and interns.
Candidate Software Engineer
Tubitak
- Developed an application that detected duplicate and wrong data on our database and created scripts to delete those duplicate data.
- Developed software for creating backups for a Cassandra NoSQL database that runs daily and monthly to create daily incremental backups and monthly snapshot backups.
- Implemented features for an ongoing project for the ministry of health that tracked medical devices.
Experience
Medical Device Tracking Application for the Ministry of Health
I worked on the device tracking part, where we received millions of requests each day and needed to keep the response time under 250 ms to handle the load. Since we used Cassandra, the project had a lot of challenges that we had to solve, such as locking, concurrency, backups, reporting, and data migration.
It was a massive legacy application with challenges such as long build and development time and difficulties during deployment and testing. We had to find ways to keep moving and adding features while refactoring and adding more and better tests to increase the application's lifespan.
Interactive Virtual Lab Management System for Remote Education in Universities
https://yoksanlab.yok.gov.tr/They created a game based on Unity, and they wanted us to develop the management system for registration, reporting, and grading.
We worked in a fast past environment to deliver the product because of the tight deadline due to COVID-19 restrictions. I contributed to all aspects of the project by developing significant features and creating an infrastructure for testing, integration with external services, and fundamental front-end components. I used modern technologies like Spring Boot, React, Docker, and Hibernate.
Tracking the Incentives Given to Researchers Working on Energy and Ores
They wanted an application to manage incentives, perform evaluations, and track budget and progress. We created a custom-made solution for our client to solve their problems.
I worked on all aspects of this project, from front-end infrastructure to back-end and Kubernetes deployment pipelines. I developed features and worked on components that other developers used every day to create features. When I developed components and infrastructure for other developers, I tried to pay utmost attention to API. Those components' ease of use and usability directly affected productivity when developing new features. Also, I acted as a technical mentor as the team wasn't very experienced in modern technologies such as Spring Boot, Angular, Cypress.io, and Kubernetes, and methodologies like domain-driven design, hexagonal architecture, and testing.
Acqusition and Product Catalog Software for Governmental Institutions
We used cutting-edge technologies like Kotlin, Gradle, Next.js, Argo CD, and Kubernetes.
The project was developed in an agile manner, and I acted as one of the team leads and project technical lead. I made technical decisions and helped my team solve problems and grow their skills. Also, I aimed to improve communication within the team.
Education
Bachelor's Degree in Computer Engineering
Middle East Technical University - Ankara, Turkey
Skills
Libraries/APIs
React, API Development, REST APIs, Liquibase, PrimeNG, Node.js, RxJS, NgRx, Passport.js
Tools
IntelliJ IDEA, Jenkins, Git, RabbitMQ, GitHub, Nx, Gradle
Languages
Java, TypeScript, JavaScript, SQL, HTML, CSS, HTML5, Java Persistence Query Language (JPQL), Markdown, SCSS, GraphQL, Kotlin
Frameworks
Spring, Angular, Hibernate, Spring Boot, JUnit, Mockito, JPA, Cypress, Material UI, Tailwind CSS, Jest, Redux, NestJS, Next.js
Paradigms
Testing, REST, API Architecture, DevOps, Continuous Integration (CI), Agile, Microservices, Functional Programming, Responsive Web Design (RWD), Continuous Delivery (CD)
Storage
Databases, JSON, Cassandra, Redis, NoSQL, PostgreSQL
Platforms
Docker, Kubernetes, Netlify
Other
Learning, Time Management, Software Engineering, Testcontainers, OOP Designs, End-to-end Implementation (E2E), Full-stack Development, Full-stack, Back-end, Front-end, APIs, Domain-driven Design (DDD), Hexagonal Architecture, Interviewing, Architecture, Mentorship, MinIO, Software Architecture, CI/CD Pipelines, Monorepos, Argo CD, Mentorship & Coaching, Gatsby, Hiring, Technical Hiring, Technical Leadership, Axios, TypeORM, Containerization, GitOps
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring