Remote · Freelance

Salih İbrahim Uslucan

Sales Engineer & Business Development  ·  Remote

I'm an electronics & communication engineer (Kocaeli University, 2026). I sell fountain systems to contractors and distributors abroad, and I write the software that feeds those deals: lead scanners that pull open tenders and competitor moves out of public procurement data, a CRM that keeps itself current off the company mailboxes, the ERP the team quotes from, the website customers land on. All self-built. I get there by pointing LLM agents at a written spec, then gating what comes back with golden tests and a lint pass.

Istanbul, Türkiye GMT+3 uslucansalihibrahim@gmail.com LinkedIn GitHub

Selected Work

Nine things I built, and still run

In-use software from an industrial fountain & water-feature company. The first three run the sales side; the rest run the floor: ERP, CAD automation, DMX protocols, a show simulator. Where a result is hard to measure I say so instead of inventing a number.

AI · Automation

AquaOps — n8n Ops Bot over the Live ERP

Problem

Stock and production state lived inside the ERP. A quick answer or a daily heads-up still meant opening the app and digging through screens.

What I built

An n8n automation pair on top of the live ERP database: a scheduled watcher that pushes critical-stock and production alerts to Telegram, and a Telegram assistant that answers free-form questions: an LLM (Gemini) classifies the request, then the flow queries Postgres through a dedicated read-only role (SELECT-only, explicit RLS policies). A third error-watchdog workflow reports failures of the other two.

The same stack now runs the sales side too. A lead-intel scanner sweeps public procurement data and the web for open tenders, competitor wins and sector news, scores each hit against the customer profile we actually sell to, and sends one filtered digest. Nothing new to report means no message — an earlier bot that pinged on every raw hit became noise nobody read.

Stack
n8nTelegram Bot API Gemini (LLM classification)Supabase Postgres read-only DB role / RLS
Data · Pipeline

Aquatronic CRM Master Database — Lead Consolidation & Scoring

Problem

Years of trade-fair contacts were scattered across inconsistent sources (exports, spreadsheets, notes) with duplicates, fabricated entries, and no way to prioritize follow-up. Effectively unusable for sales.

What I built

I consolidated thousands of trade-fair contacts into one master database, then designed a HOT / HIGH / MEDIUM / LOW priority-scoring system. I ran a structured, multi-pass data-quality cleanup (deduplication, field validation, systematic removal of fabricated records) as a repeatable process, not a one-off.

Stack
Python data pipelineRule-based lead scoring Spreadsheet integration
Outcome

A single, deduplicated, prioritized contact base the sales team can actually work from, with a defined scoring tier so the highest-value leads surface first.

Web · Outbound

Company Website Rebuild — aquatronic.com.tr

Problem

The old site was slow, dated and impossible to update. Every cold email we sent pointed at it, which meant the first thing a prospect saw undid the pitch.

What I built

A rewrite in Astro on Cloudflare Pages: the full product catalogue generated from data rather than hand-written pages, project references by country, and lead capture forms that drop straight into the sales inbox. I ran the DNS and mail migration behind it as well, DKIM and DMARC included, so outbound mail actually lands.

Stack
AstroTailwind Cloudflare PagesD3 DNS / DKIM / DMARC
Automation · CAD

Electrical Control-Panel CAD Automation Engine

Problem

Every fountain project needs its own electrical control-panel schematics (DWG). Drawing them by hand is repetitive, slow, inconsistent across projects, and easy to get subtly wrong.

What I built

A Python automation engine that generates manufacturing-ready schematics from a structured component netlist: modelling components, nets, and the BOM, running electrical-rule checks (ERC), and emitting deterministic DWG/DXF. Built AI-first: LLM agents generate the code against 800+ automated tests, 20+ golden reference projects, and a lint gate that blocks invalid drawings. Headless via ezdxf, with AutoCAD for conversion.

Stack
PythonezdxfAutoCAD / accoreconsole DXF / DWGnetlist / ERC / BOM TDD (pytest)Git
Outcome

Consistent, rule-checked panel drawings straight from project data: drafting time cut to roughly a fifth (hours of manual CAD down to minutes plus small corrections). Deterministic output means drawings are reproducible, diffable, and reviewable, and the lint gate stops malformed schematics before the shop floor.

The open-source spin-off adds a FastAPI service, a browser demo, and an MCP server so any MCP-aware client can generate a schematic directly.

Simulation · WebGL

Show Studio — Fountain Show Preview Engine

Problem

In this industry customers buy from drawings and contracts, then wait months to see their fountain for the first time. Commercial show-design suites can render it beautifully, but they cost thousands, need a serious GPU, and are aimed at the programming phase — not the moment you are trying to win the job.

What I built

A browser-based preview engine for the quoting stage. Import the customer's real site plan (DXF or PNG, parsed in a streaming Web Worker so 2 MB+ files never freeze the tab), place catalogue hardware by click, generate choreography from an audio track (FFT beat grid, band split, section detection), play the show back in 3D and export a branded video. Devices are modelled from real hardware behaviour — jet ballistics from flow and nozzle diameter, under-nozzle ring LEDs that light the water column from inside and cast a caustic pool, RGBW mixing where the white channel screens over the hue instead of washing it out.

Stack
three.jsWebGL2GLSL Web WorkersWeb Audio / FFT DXF parsingMediaRecorder no framework, no CDN
Outcome

A running engine: ~30 modules, 522 automated tests, plus a pixel-diff gate that catches visual regressions a green test suite would miss. Everything is static files — it deploys anywhere and needs nothing installed.

AI · Microservice

AI Microservice Stack — Tool-Use, RAG & Evals

Problem

Wanted a single, coherent stack demonstrating the core building blocks of a production AI service, rather than four disconnected demos.

What I built

A containerized FastAPI service with two endpoints: an LLM tool-calling agent loop that turns a free-text spec into a structured bill of materials, and a RAG endpoint that answers questions from a Postgres/pgvector store with cited sources (or an honest "not in context" instead of guessing). Provider-agnostic through the OpenAI SDK against OpenAI or Gemini's OpenAI-compatible endpoint. An LLM eval harness scores both endpoints against golden test cases and gates CI on regressions. Every path is mock-testable offline with zero API key or database.

Stack
FastAPIDocker Compose Postgres / pgvectorOpenAI SDK LLM evalsn8n
Web · Open source

AquaTronic Stock Manager — Inventory & Production Web App

Problem

Inventory and production were tracked manually: no shared, searchable, photo-aware system, and no easy way to keep data in sync across devices.

What I built

A single-file web app with cloud sync via a lightweight JSON store, no heavy backend. Inventory/production tracking, photo embedding for parts, Turkish-aware bilingual search, and semi-automated stock deduction driven by production activity.

Stack
HTML / CSS / JSSingle-file SPA npoint.io (JSON store)GitHub Pages
Outcome

In daily production use at Aquatronic, replacing manual tracking, and since grown into a multi-user ERP (inventory, production orders, BOM consumption, CRM) on Supabase Postgres with row-level security, used daily by 8 people including management. The full ERP source is public, sanitized end to end: real business data replaced with synthetic samples, git history included.

Automation · OCR

Business-Card / Fair-Notebook OCR Scanner

Problem

Staff return from trade fairs with handwritten notebooks and stacks of business cards. Re-typing all of it into the CRM by hand is slow and error-prone.

What I built

A Flask web tool that ingests scanned pages and PDFs, extracts text with pdfplumber, runs Tesseract OCR on images and handwritten notes, and outputs structured contact data ready to feed the CRM pipeline.

Stack
PythonFlask pdfplumberTesseract OCR
Outcome

Turns handwritten fair notebooks into structured digital contacts, removing manual data entry and feeding directly into the CRM consolidation workflow.

Native · Protocols

AquaCONFIG v2 — Native DMX/RDM Device Address Manager

Problem

Commissioning lighting and fountain installs means discovering, addressing, and configuring DMX/RDM fixtures in the field, and off-the-shelf tools couldn't expose everything the team needed.

What I built

A dependency-free native Windows desktop app implementing the full ANSI E1.20 (RDM) stack on DMX512: device discovery, standard GET/SET messages, and custom manufacturer-specific PIDs. While testing against real hardware I root-caused a fault in a PowerBox repeater that was silently blocking RDM traffic.

Stack
C++Win32 APIGDI DMX512ANSI E1.20 RDMCustom PIDs USB-to-DMX serial
Outcome

A lightweight on-site tool for addressing and troubleshooting fixtures. The RDM stack handles standard and custom parameters, and the PowerBox diagnosis unblocked commissioning, a root-cause find at the protocol/hardware boundary.

The internal tools above (AquaCONFIG v2, the Control-Panel CAD Automation engine, the CRM Master Database, and the OCR Scanner) are private. Their source is under employer confidentiality, so no code links or proprietary internals are shown. Screenshots and walkthroughs are available on request.

Also Built

Mobile work

Android · MVVM

Mobile Donation App

What it is

An Android donation app built with a clean MVVM architecture: networking with Retrofit, local persistence with Room, and location features via the Google Maps SDK.

Stack
AndroidRetrofitRoom Google Maps SDKMVVM
Context

Built with the Google Developer Student Club, 2024.

Skills

What I work with

Programming

CC++PythonJavaScript

Native / Systems

Win32 APIGDI Dependency-free desktop apps

Web & Automation

FlaskNetlifyezdxf OCR / TesseractData pipelines

Protocols & Domain

DMX512ANSI E1.20 RDM Electrical control panelsIoT commissioning

Practice

Test-driven developmentGit

Languages

Turkish — nativeEnglish — C1Kazakh — B2