Open to new opportunities · Ankara

Yakup Telli

Full-stack software engineer · Computer Engineering at METU

I build complete products: REST backends in Spring Boot and NestJS, web interfaces in React and Next.js, and native Android apps, with databases, third-party services and AI models wired in. My team's senior design project, PCare, won 1st place out of 28 at METU CENG Demo Day.

GET/capabilities

What I build

Backend & APIs

REST services in Spring Boot, NestJS and ASP.NET MVC, with validation, auth, documented endpoints and tuned SQL.

Web applications

React and Next.js interfaces with filtering, pagination, live updates over WebSockets and clear error states.

Android apps

Kotlin apps on Clean Architecture and MVVM, with background services, Room, Retrofit and Firebase.

AI integration

Putting models to work in products: YOLO object detection, LLM and vision APIs, sentiment analysis.

GET/projects/pcare

PCare: Parental Care Assistant

An Android system that helps parents see risks in their child's phone use. A hidden service on the child's device watches the screen, keyboard and browsing, uses AI to pick out what is harmful, and reports only that to a parent dashboard.

My role: I took an active role in the AI/ML integration and the backend. That covered connecting the YOLO detection model and the sentiment analysis API to the app's data flow, and building the Firebase and Firestore layer that carries flagged content to the parent dashboard.

1st / 28

Winner of the METU CENG Senior Design Project Competition, Demo Day.

PCare Demo Day poster: problem, system architecture, child and parent apps, YOLO and sentiment analysis pipelines, and the team
Demo Day poster

The problem

Children spend hours a day online and run into harmful content that parental controls often miss. Most tools either block whole apps or flood parents with raw logs. We wanted a system that looks at what is actually on the screen and in the messages, and only tells the parent when something matters.

The system

  • Child app: after the parent grants permissions and taps Hide, it runs as a background service with no icon or notification and restarts on boot. Each feature has its own on/off switch.
  • Parent app: sign-in protected dashboard bound to the child's device.
  • Cloud: Firebase Auth and Cloud Firestore for data, a cloud-hosted YOLO model for images, and a text analysis API for messages.

What parents see

  • Screen Tracker: only the screenshots where YOLO found a harmful object, by day and week
  • Keyboard Tracking: messages with negative sentiment, each with a date and a toxicity score bar
  • Web Tracking: every visited page with its full URL, including incognito browsing
  • Usage Tracker: daily screen time per app, focused on social media
Team5 engineers
Process10 Scrum sprints
Scope14 planned features
AppsChild service + parent app

Screen tracking pipeline

  1. Screenshot captured at a set intervalBackground service, resized and enhanced before upload
  2. Sent to the cloud-hosted YOLO modelTrained on our own labeled cigarette and firearm datasets
  3. Harmful object detected?No: the screenshot is deleted right away
  4. Flagged image saved to FirestoreShown in the parent's Screen Tracker

Keyboard tracking pipeline

  1. Typed text collected in a bufferA timer marks end of input, since soft keyboards send no line end
  2. Buffer sent to sentiment analysisMicrosoft Azure AI Language in the final version
  3. Toxicity score from 0 to 100Below the threshold: the text is discarded
  4. Toxic sentence and score savedListed with date and score bar in Keyboard Tracking

Engineering decisions

DecisionWhat happenedWhat we did
DatabaseFirebase Realtime Database hit query limits once the dashboard needed daily and weekly views.Moved to Cloud Firestore so the parent app could query by date range.
Text analysisOpenAI text-davinci-003 was deprecated mid-project, and its toxicity scores were not always reliable.Moved to GPT-3.5 Turbo, then to Microsoft Azure AI Language for sentiment scoring.
Where YOLO runsRunning the model on the phone in a loop risked CPU load and battery drain.Hosted the model in the cloud (tried Render, then Firebase) so the child device only captures and uploads.
PrivacyStoring every screenshot would be heavy and invasive.Keep only flagged content. Everything else is deleted on the device or after analysis.
Image qualityScreenshots vary in size, contrast and sharpness.Added resizing, bilateral filtering, edge detection and gamma correction before detection.
Parent alertsA one-off email report would be hard to extend.Built a dedicated parent app instead, which made room for the dashboard and later features.

Data and model

  • Crawled images from the web and labeled them with third-party tools for two classes: cigarettes and firearms
  • Trained YOLO models for each class on limited compute and tuned them until firearm detection reached an acceptable rate
  • Alcohol detection was planned and later dropped so we could finish the core features

Testing

  • Unit: image recognition, keyboard tracker, web history tracker
  • Integration: YOLO results and sentiment scores flowing into the dashboard as live alerts
  • System: hidden mode across devices and Android versions, report accuracy against logged activity
  • Performance: CPU and memory while running in the background, and dashboard responsiveness under many alerts
KotlinJavaAndroid SDKClean ArchitectureFirebase AuthCloud FirestoreYOLOPythonAzure AI LanguageOpenAI APIGitLabScrum
GET/projects

Other projects

Incident Dashboard listing incidents with service, severity and status

Incident Dashboard

Real-time incident tracker for software teams. NestJS REST API with Swagger, Next.js front end, live updates over Socket.IO, and an LLM that suggests severity and a summary.

NestJSNext.jsPostgreSQLDocker
Source →
StyleRoast home screen with Roast Me and Style Me modes

StyleRoast

React Native app that sends an outfit photo to Google Gemini Vision and returns a score with either a roast or styling advice.

TypeScriptReact NativeGemini API
Source →

QuickContact

Contact manager in Jetpack Compose with search history, swipe actions and duplicate detection, built on MVVM with Hilt, Room and Retrofit.

KotlinComposeRoomRetrofit
Source →
GET/experience

Experience

Jan 2024 – present

Freelance Full-Stack Software Engineer

Independent consultant & developer · Ankara
  • Deliver production-ready applications for independent clients, from requirements and database modeling to UI integration and deployment
  • Design and integrate REST APIs in Java (Spring Boot) and Python, connecting web and mobile clients to real-time databases with authentication and authorization
  • Build native Android apps in Kotlin and Java on Clean Architecture, with encrypted network traffic and secure local storage

Most client work is covered by confidentiality agreements, so source code, client names and production metrics are not shown here. Details can be discussed on request.

Selected client projects · team work

ClinicFlow

Appointment and clinic management system

  • Multi-role platform for admins, staff and patients with JWT authentication and role-based access control
  • Next.js admin dashboard and native Android app on Clean Architecture, both on a REST API documented with Swagger
  • Automated email and SMS reminders and conflict-free scheduling; full stack in Docker Compose; core endpoints load-tested
Spring BootNext.jsKotlinPostgreSQLDocker

SupportLens

AI-powered customer feedback analyzer

  • Categorizes, summarizes and prioritizes incoming customer complaints with LLM APIs
  • RAG-based assistant that answers support questions from company documents
  • Interactive React dashboard showing complaint trends and sentiment over time; categorization evaluated on a labeled test set
NestJSPythonLLM APIPostgreSQLReact

LiveTrack

Real-time order and courier tracking

  • Live order status and courier location updates over WebSockets (Socket.IO)
  • Courier Android app with background location tracking and offline-first sync
  • Built for many concurrent connections and verified with load testing
NestJSSocket.IOReactKotlin
Jun 2023 – Sep 2023

Back End Developer Intern

Şikayetvar.com Bilişim · Ankara
  • Built Spring Boot services and REST APIs for a high-traffic customer feedback platform
  • Implemented scalable CRUD operations and optimized MySQL queries, following secure coding practices against SQLi, XSS and CSRF
Sep 2022 – Oct 2022

Software Engineer Intern

Vericom · İstanbul
  • Developed web platform features with ASP.NET MVC and JavaScript, with validated and sanitized input flows
  • Built SQL Server data access layers with a focus on data integrity
Jul 2022 – Sep 2022

Software Engineer Intern

Netax · İstanbul
  • Developed accounting software modules for financial advisors and businesses in C# and ASP.NET MVC, covering general ledger, invoicing and financial reporting
  • Automated recurring financial workflows such as transaction entry, reconciliation and statutory report data
  • Wrote SQL Server queries and data access logic with a focus on accuracy and confidentiality of financial records
GET/skills

Skills

Backend

  • Java · Spring Boot
  • TypeScript · NestJS
  • C# · ASP.NET MVC
  • Python
  • REST · Swagger
  • WebSockets

Frontend & mobile

  • React · Next.js
  • JavaScript
  • Kotlin · Android SDK
  • Jetpack Compose
  • React Native

Data & AI

  • PostgreSQL · MySQL · MSSQL
  • Firebase · Firestore
  • YOLO · computer vision
  • LLM and NLP APIs
  • Data visualization

Tooling

  • Docker · Compose
  • Git · GitHub · GitLab
  • Jest testing
  • Clean Architecture
  • Agile · Scrum

Get in touch

Computer Engineering student at METU, based in Ankara. English fluent, Turkish native.

email
yakup.telli@metu.edu.tr
github
yyakuptelli
linkedin
yakup-telli
web
yakuptelli.com