Mert Akengin

mert.akeng.in
blog.n0pe.me
[email protected]
+90 539 605 4246
Docker Hub
GitHub
LinkedIn

BSc. Software Engineering

A passionate, curious and automation driven Software Engineer.


Portfolio

Mert AkenginPortfolioWork Experienceiyzico Payment ServicesIVEN IoT Cloud and Device Solutions StartupTATU Creative SolutionsAbbox 3D Printing & DesignLostar Information Security & ConsultancySparkGo: Bahcesehir University Spark Lab, BAU Spark.Challenges & CompetitionsEricsson Innovation AwardsHack-a-Sat CTF QualificationsSTM CTF, 2017 October, Ankara/TurkeyIntel IoT Hackathon - Galileo Development KitIntel IoT Hackathon - Edison Development KitIntel IoT Hackathon - BAU RoboticsAnnual Robotics Day in BAU, Drone RacingAnnual Robotics Day in BAU, Drone RacingTubitak Efficiency ChallengeTubitak Efficiency ChallengeProjects & FreelanceNetwork routing & logging with Raspberry Pi and WiFi ad-hoc.static-docker: reproducible builds in containers.gaming-containers: Source engine games, containerized.Passive sonar system for submarines (Turkish Armed Forces & Navy)Acoustic Analyzer on Qualcomm SoCTEDxBahcesehirSwifterSwift:Pollstop: Online poll platform & hub. Create and vote for polls!Schnaps: QR-Code based note-taking & sharing app.Thesis: Wide-Area Mesh Network using LoRaThesis: IoT applications in mixed realityIoT Sensor Backend & Gateway (MQTT)Smartphone controlled RC-Car using Wi-FiHC-05 Ultrasonic Radar SystemAutonomous Car & Digital Signage SystemParkinsonPen: Case study application for Parkinson's Disease patients.BAU-TIP (Bahcesehir Medical School) Quiz/Trivia Web AppAgriculture Sensors Kit with LoRaOffice Activity LoggerKalpha RoboticsTurev Muhendislik (Web site)Freelancer.comA Basic anti-cheat tool for online FPS gamesHobbies and CommunitiesEducationUdacity Google Developer Challenge Scholarship: Android DevBSc. Software Engineering, Bahcesehir UniversityHuriye Suer Anatolian High School


Work Experience

iyzico Payment Services

A fintech startup and leading online POS solutions provider. Successful exit with the Naspers group (PayU) in mid-2019. Here I became Black Friday Veteran, twice. I also got into some big catastrophic emergencies.

IVEN IoT Cloud and Device Solutions Startup

The name means Internet ve Nesneler, the Turkish of "Internet of Things". I have learned and did so much which wouldn't fit here. I was the 9th or 10th employee. Built custom projects for Arzum, Vestel and EncoreNetworks. IoT applications and solutuons, data ingestion gateways. Maintained DevOps cycles and production releases.

 

TATU Creative Solutions

Built internal network infrastructure for the Besiktas office, maintained then revised the older one in Kosuyolu. Optimized and managed internal NAS system, firewall (Fortigate 100E), setup rendering pipeline for Unreal Engine, Maya, and Nuke. Built custom projects and interactive playgrounds, walls, and floors for Borusan Otomotiv & Kosifler Oto (BMW, Jaguar, and Land Rover official distributor in Turkey), Dogus Group for "DGSTALKS 2017". Mainly used Processing, HTML5 and d3.js, three.js, p5.js and similar libraries.

Abbox 3D Printing & Design

Wrote the main e-commerce website in PHP where users can upload STL (3D object) files and can view others in-browser (canvas). Mainly automation of office stuff, 3D printer firmware & calibration, mail system, static website, and a bit of OpenCV to check if 3D printing failed.

Lostar Information Security & Consultancy

Developed e-mail vulnerability detection kit (open-relay, known CVE's etc) in Javascript. (NodeJS) Developed Nessus report generator and verifier for internal purposes. This includes internal ticket system and portal which clients use. C, PHP , Python (2) and Javascript/NodeJS used.

SparkGo: Bahcesehir University Spark Lab, BAU Spark.


Challenges & Competitions

Ericsson Innovation Awards

Diver's Mate; An underwater walkie-talkie, that uses visible (green) light to transmit voice instead of radio-waves. (Which by the way do not work underwater, at least for longer distances more than a few meters.)

Hack-a-Sat CTF Qualifications

STM CTF, 2017 October, Ankara/Turkey

Joined as solo; I thought I wouldn't be going to finals. Then I qualified for finals, which required 3 or 4 person team. So, I took 2 of my friends to fill minimum 3 quota :) Went to finals, had fun. (solved about 16/30 challenges) My friends solved 1 misc (50pts) which got us in top 10 :)

Intel IoT Hackathon - Galileo Development Kit

This was more introduction than the hackathon since in the end, no product was available. Through the hackathon, we hacked our way into the board. Because there was no documentation or tooling or whatsoever available at the moment and that was the first time we were tinkering with Intel's board. I fired up Wireshark, found IP address of the board (the address on the Ethernet port was misleading), nmap'ed, found SSH was open, tried some passwords that did not work. Then tried empty one and voila, we were in. But GPIO peripheral drivers wasn't compiled into the kernel and since I do not have the appropriate sources, I couldn't add them. Instead, I wrote and compiled a simple web-server in C, SCP/SFTP into the board, and ran it there.

Intel IoT Hackathon - Edison Development Kit

With my friends at Spark, we have joined to Intel's event and hackathon. We've built a complete wireless home automation system using Groove Kit and Edison Development Kit. On-device HTTP server, REST API and a HTML5 WebSocket interface to control components.

Intel IoT Hackathon - BAU Robotics

I was supporting software projects in Bahcesehir University's Intel-sponsored laboratory, In 2015 Intel wanted to organize a hackathon to guests and give away some Edison development kits. We've given a basic set of requirements for the hackathon and organized it. Throughout the competition I have helped people from getting started from scratch to un-brick broken firmware by flashing Intel Edison.

Annual Robotics Day in BAU, Drone Racing

With a couple of friends from the Mechatronics club and laboratory, We planned and executed first-ever drone/quadcopter race in Istanbul and Turkey. Designed and built software for landing zone, which was pressure-sensitive using FSR (Force Sensitive Resistor) sensors. Keeping time automatically using Arduino and transmitting them to nearby computers with Nordic Semiconductor NRF24L01 modules.

Annual Robotics Day in BAU, Drone Racing

This was the second one and continuation of the competition above. We've completely re-designed landing zones and parkour. Previous force-sensitive zones were error-prone due to down-pressure created by the drone itself after taking off. (Pushing air downwards.) So developed laser-driven system with mirrors, LDRs, (Light Dependent Resistors), and servo motors.

Tubitak Efficiency Challenge

We've designed and built double seat car from scratch using aluminum sigma profiles. The car was similar to Smart for-two. Developed telemetry and control systems along with H-Bridge motor driver software and Battery Management System (BMS).

Tubitak Efficiency Challenge

We took older chassis and Heliocentris Nexa 1200 fuel-cell, re-designed shell, and control systems along with telemetry and remote control software. I wrote all in-vehicle software and firmware. Including base station communication system and dashboards.


Projects & Freelance

Network routing & logging with Raspberry Pi and WiFi ad-hoc.

Due to coronavirus, I have been worked from home between March and July 2020. And connection in my home not a good one with ADSL being 8 Mbps down and 760 Kbps up. Sometimes I was dropping out of the company's VPN. To look into what's happening I've set up Raspberry Pi as DHCP and DNS server (dnsmasq), plus as a router/gateway (ip_forward). To keep myself doing manual operations on the Pi, packaged them using Docker and setup docker-compose to handle the system. Added Splunk and wrote some queries to see which device doing most of the traffic and to where.

static-docker: reproducible builds in containers.

gaming-containers: Source engine games, containerized.

Passive sonar system for submarines (Turkish Armed Forces & Navy)

I've build software for Submarine's sonar. The hardware parts of the sonar have been built by the Project Development Unit of BAU. The difference of this sonar is that it does not send any signals out, instead, sensors (which are combined accelerometers and hydrophones) listens only ambient noise. Thus able to detect changes and even locate them. This involved complex matrix operations and Fourier Transforms. With the help of professors, I converted a couple of Matlab projects to Python (3) and Numpy. With the help of PyQtGraph library, I was able to visualize data from 20 sensors, each consisting of 4 channels, each channel having a sample rate of 192 kHz. And this is done under 20 milliseconds. Thanks to AVX instructions and Intel's Python distribution optimized with BLAS and LAPACK libraries.

Acoustic Analyzer on Qualcomm SoC

Built an ambient acoustic analyzer and recorder for detecting noise and quality of the environment (room). I have given Qualcomm 4G/LTE SoC running Linux. With an embedded STM32 processor that is used for sound capture and MP3 encoding. First I custom-compiled Python 3 for device. Then I wrote a Python (3) firmware that handles Data connection, OpenVPN connection, OTA upgrades, time synchronization with NTP Server, and of course recording functions.

TEDxBahcesehir

Designed and built websites between 2015 and 2018, dealt with stage preparations, technology stack, prompter, ticket system, and collaboration with sponsors.

SwifterSwift:

While we were taking the same courses with Omar he noticed how Javascript (particularly NodeJS) having all functional libraries laying around while Swift does not. So he started to write some extensions for language and core libraries. (UIKit, Foundation, etc.) I helped with a small number of extensions which I found helpful while writing a simple Swift 2.3 HackerNews app. Also as a C person myself, found date/time missing Unix timestamps. After It reached a couple of hundreds of extensions, he made it public, I mostly dealt with the Website,

Pollstop: Online poll platform & hub. Create and vote for polls!

Django, HTML, JS, Selenium for tests, and a bit of React. Well, in favor of delivering the project in time, I've ditched React :) Running on FreeBSD, since 9.2. Now running 12.1-RELEASE. I still maintain & update it.

Schnaps: QR-Code based note-taking & sharing app.

PHP 7.0, HTML, JS, you know, casual stuff. Web Media APIs (getUserMedia, Media Capture API) SQLite (3), NFS and whatnot.

Thesis: Wide-Area Mesh Network using LoRa

This was my first capstone & thesis project. Collaborated with Erkin Sahin (Mechatronics) and Berke Kocar (Electronics) to built a fully functional mesh network and companion device with long battery life in which phones connect them with Bluetooth. This allows users of the device to send and receive messages and locations (GPS coordinates) with each other without the requirement of a master node or some central device that manages communication. A very usable and efficient system in rural areas given its range is up to tens of kilometers with small form factor (About the size of electronic cigarette.)

Thesis: IoT applications in mixed reality

This is my second capstone & thesis project. Again IoT focused mobile application that involves Bluetooth (4.x) Low Energy and Beacons. This app allows users to locate beacons on the map (Google Maps API) and due to the nature of beacons, it is easy to spoof them. So users can determine if they're real or not.

IoT Sensor Backend & Gateway (MQTT)

Wrote a REST API and Websocket capable backend service for delegating IoT device data to dashboards, time-series logging, and ease-to-use.

Smartphone controlled RC-Car using Wi-Fi

Used ESP8266 Wi-Fi SoC and an Android device to make a remote-controlled car. I've used then alpha Processing's Android Mode for mobile app, UDP with multicast networking, and Espressif's C SDK for firmware.

HC-05 Ultrasonic Radar System

A basic system with Arduino. The ultrasonic sensor mounted on the servo motor. With a simple serial (UART) protocol, the computer sends commands to scan the area or particular angle then the sensor sends results back. Finally a program on the computer (Processing App)

Autonomous Car & Digital Signage System

For the robotics course, I built a basic car with an aluminum frame, 3 wheels, and 9 ultrasonic sensors. Added Xbox camera for SLAM - environmental awareness. This car maps the environment in 2D and continues to do so. If it notices something has been moved, reports with photographs.

ParkinsonPen: Case study application for Parkinson's Disease patients.

The purpose of the project was testing early-stage Parkinson's disease patients and their children for very early diagnosis and treatments. In order to measure accuracy, patients are given some patterns to follow, (lines, dots, etc.) and with special-purpose pen attachment mounted on the stylus, attachment measures movements, vibration, and rotation. Sends it to a tablet (Android). Whereas application software on the tablet measures accuracy, speed, and jitter. Evaluations are done on a personal basis. Resulting in improvement in the accuracy of personal data. While doctors can view drawing in real-time or replay afterward with appropriate graphs embedded in their control panel. Full-Stack Development;

BAU-TIP (Bahcesehir Medical School) Quiz/Trivia Web App

BAU Medical School Faculty contacted BAU Incubation Center and TATU about a web app for small polls/quizzes which they post from social media accounts and do some giveaway. (books, swag, etc.)

Agriculture Sensors Kit with LoRa

An ESP32 Firmware for LoRa communication plus custom protocol based on my previous Mesh Protocol. An Extensible packet layout for adding different sensors later. Currently used in the field for measuring moisture levels in the ground. (Canakkale/Turkey)

Office Activity Logger

At IVEN we were in open-office in Zorlu Center. Due to the nature of open-offices, a shared restroom causes lines in front of them at specific times. At first, with light and gas sensors, I built is occupied? system in the office. With Slack bot and native Android and macOS application counterparts to reserve a queue. I know this sounds silly but then it evolved into let's determine how many people actually in the office. So I started tracking Bluetooth beacons as well as other 2.4 GHz band, tried to match patterns. A couple of demos/PoC of the project have been done to some clients but never really took off. Because of the necessity of a controlled environment.

Kalpha Robotics

Built and designed CNC software and automation. Pressure and contact sensor-based system that helps refurbish automobile rims.

Turev Muhendislik (Web site)

One of my friends in the Mechatronics lab was working for a construction company, whose website was flash based and old. So he wanted to replace it with a modern one. So I designed and developed one with a basic administration panel and markdown rendered frontend.

Freelancer.com

Built websites, digital signage systems, and drivers for Linux (LinuxCNC router-head driver for PCI-Express card). And fixed various Linux problems, did data recovery, forensics & analysis of data-at-rest, SSL issues, PPTP & IPSec VPNs. Unfortunately in 2016, the Turkish government blocked PayPal from operating in Turkey, thus, I stopped using the platform since I cannot transfer or use funds in my account.

A Basic anti-cheat tool for online FPS games

I was playing Call of Duty Modern Warfare 2 with community developed Mod called alterIWnet. Because there was no anti-cheat protection in-game. Later fourDeltaOne, the continuation of alterIWnet introduced with open-source client and somewhat basic anti-cheat. Then I started to develop a solution (I had no idea what I was doing TBH). Used Processing for taking screenshots in random intervals and upload them to specified FTP server. Meanwhile using basic operations, it was calculating statistics of pixels of the screenshot. Such as the percentage of all-red, all-blue, or all-green pixels. And embedding this data to JPEG EXIF Comment. Then server-side software regularly parses images (a cron job and a simple C application) and marks high-ratio images for further viewing. Owners of FTP of course can view all images manually. Image names include timestamp, user id, and resolution. This was the first application I wrote, I used GSC (Call of Duty internal scripting language, similar to Javascript), Java, and C++.


Hobbies and Communities

Education

Udacity Google Developer Challenge Scholarship: Android Dev

BSc. Software Engineering, Bahcesehir University

Huriye Suer Anatolian High School