My Work & Projects

A collection of my recent work and personal projects



Skills

Languages & Frameworks

PythonGoJavaTypeScriptJavaScript

Frameworks & Libraries

FastAPIPyTorchSpring BootReact

Database & Cloud

PostgreSQLMySQLMongoDBAWS

DevOps

GitDockerKubernetesTerraformNginxLinux

Home Server Dashboard

  • Full-stack web application for monitoring home server
  • Real-time metrics and system health monitoring
  • Built with modern technologies and best practices
React Express.js TypeScript Nginx

Personal Website

  • React and TypeScript-based personal website showcasing my projects and blog.
  • Hosted on Cloudflare Pages.
React Vite TypeScript Tailwind CSS Cloudflare Pages

Encryption in Assembly

  • CS 401 - Computer Architecture Course Project
  • Implemented a custom AES-like encryption algorithms in x86-64 assembly language.
x86-64 Assembly AES

Work Experience

DevOps Engineer

RedRose Technology

Istanbul, Türkiye • Sep 2023 - March 2024

  • Managed AWS infrastructure and deployments
  • Implemented CI/CD pipelines using Docker
  • Automated deployment processes
AWS Docker Java Python

Cloud Consultant Intern

Skyloop

Istanbul, Türkiye • June 2022 - Sep 2022

  • Achieved AWS Certified Solutions Architect – Associate certification to validate cloud architecture skills.
  • Designed and implemented cloud infrastructure solutions
AWS Terraform Kubernetes

Backend Developer Intern

Migros E-commerce

Istanbul, Türkiye • June 2021 - Sep 2021

  • Developed backend services for e-commerce platform
Java Docker MySQL

Software Engineer Intern

Havelsan

Istanbul, Türkiye • Jun 2020 - Sep 2020

  • Conducted research on machine learning algorithms for image recognition tasks.
Python TensorFlow Keras

MLOps Engineer Intern

Spiky AI

Buffalo, New York (Remote) • Feb 2020 - Jun 2020

  • Assisted in research on natural language processing and sentiment analysis.
Python NLTK Scikit-learn

Learning Assistant

Sabanci University

Istanbul, Türkiye • Feb 2021 - Jun 2021

  • Assisted students in programming courses
Python C++

Academic Support Program Student Work

Sabanci University

Istanbul, Türkiye • Sep 2019 - Jun 2020

  • Provided academic support to students in introductory programming courses.
Python C++

Education

Master of Science in Computer Science

Technical University of Munich

Munich, Germany • Sep 2024 - Jun 2026

Bachelor of Science in Computer Science and Engineering

Sabanci University

Istanbul, Turkey • Sep 2017 - Jun 2023

  • Double Major in Economics
  • Minor in Mathematics

Publications

Using Unified Combinatorial Interaction Testing for MC/DC Coverage

Giray Coskun, Cankut Coskun, Hanefi Mercan, Cemal Yilmaz

2022 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW) (2022)

Abstract

In this work, we express the masking and unique-cause MC/DC coverage criteria in Unified Combinatorial Interaction Testing (U-CIT) to test the interactions between the compile-time configuration options in highly configurable software systems. Our goal is not to propose yet another approach for achieving MC/DC coverage, but to further demonstrate the flexibility of U-CIT by applying it to a coverage criterion, which is quite different than the ones addressed by U-CIT so far. As the MC/DC criterion requires two test cases to show the independence of each condition, the test cases included in a U-CIT object cannot be generated independently from each other, which was the case for the coverage criteria addressed by U-CIT so far. Our empirical evaluations conducted on a dozen of highly configurable software systems demonstrate that U-CIT can flexibly address the aforementioned coverage criteria.

View Publication

CIT-daily: A combinatorial interaction testing-based daily build process

Hanefi Mercan, Atakan Aytar, Giray Coskun, Dilara Mustecep, Gülsüm Uzer, Cemal Yilmaz

Journal of Systems and Software (2022)

Abstract

In this work, we introduce an approach, called CIT-daily, which integrates combinatorial interaction testing (CIT) with the daily build processes to systematically test the interactions between the factors/parameters affecting the system's behaviors, on a daily basis. We also develop a number of CIT-daily strategies and empirically evaluate them on highly-configurable systems. The first strategy tests the same t-way covering array every day throughout the process, achieving a t-way coverage on a daily basis by covering each possible combination of option settings for every combination of options. The other strategies, on the other hand, while guaranteeing a t-way coverage on a daily basis, aim to cover higher order interactions between the configuration options over time by varying the t-way covering arrays tested. In the experiments, we observed that the proposed approach significantly improved the effectiveness (i.e., fault revealing abilities) of the daily build processes; randomizing the coverage of higher order interactions between the configuration options while guaranteeing a base t-way coverage every day, further improved the effectiveness; and the more the higher order interactions covered during the process, the higher the fault revealing abilities tended to be.

View Publication

Unsupervised Adaptation of DNN for Brain-Computer Interface Spellers

Osman Berke Güney, Deniz Küçükahmetler, Pelinsu Çiftçioğlu, Giray Coşkun, Hüseyin Özkan

2022 30th Signal Processing and Communications Applications Conference (SIU) (2022)

Abstract

Brain-computer interface (BCI) spellers, based on the steady-state evoked potentials (SSVEP), significantly contribute to the communication of individuals with neuromuscular disorders. These systems aim to predict a target character that a user is intended to spell as fast as possible while maintaining high accuracy. Accordingly, target character identification methods aim to reach the high information transfer rate (ITR). Methods reaching high ITR values in the literature use participants' labeled data for user calibration, which requires long and exhausting experiments for every individual that will use the speller. In this study, we developed a method that does not require labeled data from the new users; as the system is used it utilizes the accumulated unlabeled data effectively. Our method transfers the information obtained from previous users to the new user by training a deep neural network (DNN). Afterward, it uses accumulated unlabeled data of the new user to adapt the transferred DNN to that user. Adaptation is performed by assuming the DNN model's predicted target labels on the data as correct. And the model is updated in every iteration by utilizing dropout layers. Our method is compared with online template transfer canonical correlation analysis (OTT-CCA) and adaptive combined transfer canonical correlation analysis (Adaptive-C3A) methods. The comparison is performed on two large publicly available datasets (benchmark and BETA) for signal lengths between 0.2 − 1.0 seconds (s). The results have shown that our method reached approximately 5% higher maximum ITR.

View Publication