Bahadır Maral

Industrial engineer · Ankara, Türkiye

I build planning tools and test them on real operations.

I graduated in industrial engineering from Bilkent University in 2026, and I work where optimization, data and software meet. For my senior design project, our team built a production planning system that BobaCo’s planners used in a four-week pilot. I also build web and Android apps, and I am currently in the AI program at Samsung Innovation Campus.

Degree
B.S. Industrial Engineering, Bilkent University, 2026
ALES quantitative
93.9 / 100, top 0.2%Türkiye’s national graduate entrance exam
English
IELTS 8.0
Based in
Ankara, Türkiye

Plan view

2024 to now, drawn as a production schedule

Bars are internships, projects and programs; diamonds are results. Select a bar to jump to it.

  • Industry
  • Projects
  • Programs
  • Remote
  • Result

Selected work

Five projects, each with something real behind it

A company that used the tool, a national competition, a hackathon jury, a public dataset and a product I am still building. Each one lists my part and how the result was measured.

Senior design project · Oct 2025 – Jun 2026 · Team of 7

Production planning for BobaCo

3rd place, Bilkent 24th Industry-Oriented Project Competition

A decision support system that tells a bubble tea producer what to make each day and how much stock to build before the summer peak.

BobaCo, a brand of Nesco Gıda, planned production semi-manually and met summer peaks with overtime. Two production lines, four product types, limited storage and raw-material lead times made a good plan hard to find by hand.

We split the problem into two models. A two-stage stochastic model sets monthly production and stock targets for the year, using demand scenarios sampled within the company’s forecast ranges. A MILP then schedules each line day by day toward those targets, and the plan is re-run every week with the latest demand.

  1. ForecastCompany forecast and its monthly ranges
  2. Long-term model12 months · two-stage stochastic · monthly stock targets
  3. Short-term model48 days · MILP · which line makes what, each day
  4. Weekly planLine schedule and raw-material orders, reviewed on Monday

Every week the plan is re-run with the latest demand (rolling horizon).

How the planning models connect
  • Streamlit app with sign-in, daily line schedules and raw-material order suggestions, laid out like the company’s own reports.
  • Four-week pilot in the weekly planning routine. We supervised the first week; after that the planners ran it themselves and reviewed each plan on Monday.
  • Drafted for Gurobi. The delivered app runs on PuLP and HiGHS, because Gurobi could not be used in the final product.

Competition · Mar – May 2026 · Team of 3

Re-routing a service fleet at mid-day

2nd place, Sabancı University Optimization Challenge 2026

Vending machines break down while the trucks are already on the road. The plan has to change without missing a single restock.

A national undergraduate operations research competition run by Sabancı University’s IE department with Datart Lab and Köpüklü. Trucks must restock every machine within its time window. At mid-day some machines fail, and the rest of each route has to be re-planned while the part already driven stays fixed.

In Part I we plan the morning so trucks stay near machines that are likely to fail, ranked by a risk score r = p × d (failure probability times demand rate). In Part II we lock each route’s completed prefix and repair the rest. An adaptive large neighbourhood search (ALNS) uses most of the time budget, then a set-partitioning MILP picks the best combination of the routes it found.

Hackathon · Aug 2026 · Team of 5

Eşik: a short pause at your own limit

1st place, Samsung Innovation Campus GenAI hackathon on digital addiction

An Android app that adds a short, personal pause when someone reaches the daily limit they set for one app.

Eşik home screen in Turkish: today's use of the chosen app against the user's own goal, the daily reflection card and tracking settings.
Home: one app, one goal the user set.
The pause screen asks what is keeping the user in the app, with three quick answers and options to write or speak.
The pause: what is keeping you here?
After an answer, Eşik shows one reflection question and one small step, with buttons to try it or continue anyway.
One small step. Continuing is always allowed.
Daily report with numbers computed on the phone and a note that a reflection needs 7 records for the day.
Daily report: numbers stay on the phone.

Most screen-time tools show a number or block the app. Eşik waits until the user opens the app they chose after passing their own threshold. Then an overlay asks what is going on and suggests one small alternative. The user can always continue.

Gemini writes the wording, but the decisions stay in code: the threshold, the timing, the cooldown and every number in the daily report. Each model output is checked against a policy, gets one repair attempt, and falls back to fixed text if it still fails. Text that signals a crisis never leaves the phone.

Samsung Innovation Campus capstone · Sep 2026 – now · Team of 5

NudgeWell: the moment people mean to stop

In progress: 2 of 5 milestones submitted

A model of the gap between intention and behaviour inside a single phone session.

Our capstone in the Samsung Innovation Campus AI program, run with Yeşilay. We use the public AwareMind study, in which 37 Android users answered short check-ins during their phone sessions.

The goal is to predict when someone wants to stop but is likely to keep going. When the model is confident, an opt-in Android prototype building on Eşik will offer one alternative the user picked in advance.

Personal project · Dec 2025 – now

RateMyGig: a diary for concerts

In development: the preview runs, but the event data and some screens are not finished.

Find concerts, log the ones you went to and review the show.

A full-stack web app I am building on my own. The front end is React 19 and TypeScript; Supabase provides the PostgreSQL database, sign-in and photo storage.

A scheduled GitHub Actions job pulls new events from the Ticketmaster API every night. Reviews can carry a rating, photos and a setlist, and each one gets a public share page.

Studies

Course projects, from problem to result

Smaller pieces of work, each written up the same way: the problem, the model, the method and what came out. Open a row to read it.

  1. IE 4792025Emergency cold chain for 40 citiesp-center MIP · Clarke-Wright · 2-opt · location-routingLongest delivery 27.1 → 19.4 h
    1. Problem

      Vaccines and blood products are collected at local depots in 40 cities and must reach any other city fast. Four hubs are to be opened, chosen from 12 candidate cities.

    2. Model

      A p-center MIP picks the hubs that minimize the longest depot-to-hub trip. A small squared-distance term breaks ties toward compact clusters, which makes the routing step easier.

    3. Method

      Each hub’s routes are solved exactly where the MIP is fast enough, and with Clarke-Wright savings plus 2-opt where it is not, under a 12-hour shift limit. Then location and routing are solved together under an 8-hour limit.

    4. Result

      The sequential design needs 7 trucks (hubs in Adana, Ankara, Kocaeli and Muğla). Solving location and routing together cuts the longest delivery from 27.1 to 19.4 hours, but it needs 15 trucks.

    Map of Türkiye with four hub clusters and seven truck routes drawn in four colours.
    Sequential design: 7 trucks from 4 hubs, 6,357 km in total.

    Team of 3

  2. IE 4792025Field hospital locations for UMKESet covering · maximum coverage · p-median4 sites reach every district from 3 km
    1. Problem

      UMKE, Türkiye’s national medical rescue team, needs field health facilities placed so that all 20 affected districts are within a medical service radius.

    2. Model

      Three views of one decision: set covering (fewest sites that reach everyone), maximum coverage (most people reached with at most 4 sites) and p-median with a coverage limit (shortest total distance).

    3. Method

      Each model is solved for service radii from 2 to 6 km, to show the trade-off between the number of sites and the distance people travel.

    4. Result

      Full coverage needs 5 sites at 2 km but only 3 at 3 km. With 4 sites, coverage is 92.9% at 2 km and 100% from 3 km on, and the same four districts stay optimal from 3 to 6 km.

    Sites needed for full coverage, by service radius
    Radius2 km3 km4 km5 km6 km
    Sites53211
    Coverage with at most 4 sites92.9%100%100%100%100%

    Team of 3

  3. IE 4692025Driver allocation for Uber Eats in ManhattanBinary LP · Excel Solver · VBA · LeafletModel setup from minutes to seconds
    1. Problem

      Late deliveries often come from drivers waiting in the wrong place. With 500 drivers, how many should wait in each of Manhattan’s 32 neighbourhoods, and how far should each one serve?

    2. Model

      A binary LP chooses one of five coverage radii for each neighbourhood, with effective demand growing with the square of coverage. Drivers left over after the minimum plan are spread in proportion to hourly demand.

    3. Method

      VBA modules compute neighbourhood centroids with the shoelace formula and Manhattan distances to restaurants, and cache them so the model does not rebuild its inputs on every run.

    4. Result

      Caching cut model setup from minutes to seconds. An Excel form takes the number of drivers and shows the allocation on an interactive Leaflet map.

    Leaflet map of Manhattan with one coverage circle per neighbourhood, coloured by the number of drivers assigned: 15 or more, 10 to 14, 5 to 9, or fewer than 5.
    The allocation map the Excel tool opens: circle size is coverage, colour is drivers.

    Group project

  4. CS 4612026A robot arm that learns from sparse rewardsSAC · HER · PyTorch · Gymnasium-Robotics100% success in 100 test runs
    1. Problem

      In FetchReach-v4 a simulated arm gets a reward of −1 at every step until its hand reaches the target. Almost every random attempt fails, so there is very little to learn from.

    2. Model

      Soft Actor-Critic with Hindsight Experience Replay, which relabels a failed attempt with the goal the arm actually reached, so every attempt teaches something.

    3. Method

      The course provided the critics, the replay buffer and the training loop. I implemented the actor, a Gaussian policy with the reparameterization trick and the tanh log-probability correction, trained it for 10,000 episodes and ran three one-change ablations.

    4. Result

      The trained agent reached the target in all 100 evaluation runs (average reward −2.39). A 10× lower learning rate stopped learning entirely, and a higher entropy weight left the arm moving randomly near the target.

    Learning curve over 10,000 episodes: evaluation reward stays near −50 until about episode 4,000, then climbs to about −2.4 by episode 7,000.
    Evaluation reward (green) and training reward over 10,000 episodes.

    Course assignmentGitHub · sac-her-fetchreach ↗

Also built

  • Randevu TürkiyeAppointment marketplace for service businesses in Türkiye: customer, provider and admin apps on a NestJS API with PostgreSQL/PostGIS, Meilisearch and an iyzico sandbox. Private repository, in development.
  • ReelNotesA film diary app prototype in React Native and Expo.
  • Dice Throne ReferenceA quick-reference web app for the heroes of the Dice Throne Marvel board game. Open ↗

Experience

Where I have worked

  1. Oct 2025 – Jun 2026

    Nesco Gıda İçecek (BobaCo)

    Project Engineer (Senior Design)

    Ankara, Türkiye

    • Built the production planning system above with a team of seven, as our senior design project with the company.
    • Worked directly with plant operators to fix misconfigured inputs and resolve conflicting constraints.
    Production planning for BobaCo ↑
  2. Aug – Sep 2025

    Kontrolmatik Teknoloji

    Quality Management Intern

    İstanbul, Türkiye

    • Audited ISO 9001 quality records (inspection test plans, checklists and factory acceptance tests) for large energy infrastructure projects, and flagged documentation gaps.
  3. May – Aug 2025

    Jeton Digital

    Data Engineering Intern

    Harpenden, England (remote)

    • Built SQL and Python (pandas) pipelines that automated weekly stakeholder reports from interview datasets.
  4. Aug – Sep 2024

    BOTAŞ

    Data Engineering Intern

    Ankara, Türkiye

    • Formulated Gurobi and Excel Solver models for resource allocation under real energy demand forecasts.
    • Automated demand forecasting pipelines in SAS.
  5. Jul – Aug 2024

    INOVAKO

    Data Processing Intern

    Vitoria-Gasteiz, Spain (remote)

    • Annotated and preprocessed more than 2,000 images for industrial object detection and defect classification models (Roboflow, MakeSense).
  6. Sep 2022 – Jun 2026

    Bilkent University

    B.S. Industrial Engineering

    Ankara, Türkiye

    • ALES quantitative 93.9 / 100, top 0.2% (Türkiye’s national graduate entrance exam).
    • Selected courses: Distribution Logistics, Industrial Applications of OR, Production Information Systems, Pricing and Revenue Optimization, Applied Data Analysis, Artificial Intelligence, Simulation.

Awards and programs

Results, programs and the rest

Awards

Programs

Volunteering and clubs

  • 2022 – now

    Barrier-Free Cerebral Palsy Sports Club, volunteer

    Training and competing in boccia and paravolley alongside people with cerebral palsy.

  • 2024 – 2026

    Bilkent Environment and Sustainability Society, executive board

  • 2026

    Bilkent Photography Club, executive board (finance)

Skills

Skills, with where I used them

Read it like a where-used list in a bill of materials: each skill points to the work that shows it.

Optimization
SkillUsed in
Mixed-integer and linear programming
Stochastic programming, rolling horizon
Heuristics: ALNS, Clarke-Wright, 2-opt
Solvers: PuLP, HiGHS, Gurobi, Excel Solver
Data
SkillUsed in
Python (pandas, NumPy)
SQL
SAS
R
  • IE 451 coursework
Forecasting and scenario generation
Visualization: Matplotlib, Leaflet
Machine learning and AI
SkillUsed in
PyTorch, deep reinforcement learning
LLM output checks and fallbacks (Gemini)
Image annotation for computer vision
Software
SkillUsed in
Streamlit
React, TypeScript, Supabase
Kotlin, Jetpack Compose
Testing and CI: Vitest, Playwright, GitHub Actions
Excel VBA
Also
Git, LaTeX, Excel, SAP S/4HANA, Roboflow
Languages
Turkish (native) · English (IELTS 8.0) · German (A1)