I am a software engineer with electronics background and current focus on embedded systems, with 5+ years of experience in microcontroller programming and communication protocols.
Currently working at the engineering firm Nantis GmbH, developing firmware for customer projects and the Gridknight smart plug.
Skills
- Microcontroller firmware development
- Programming languages: C/C++, exploring Rust
- Hardware platforms: STM32, nRF52, ESP32
- RTOS/Frameworks: Mbed OS, FreeRTOS, exploring ESP-IDF and Zephyr
- Build system: CMake
- GUI framework: LVGL
- OTA and bootloader (MCUboot)
- Testing: CppUTest
- CI: GitHub Actions
- Communication technologies and protocols
- Peripheral: I2C, SPI, UART etc.
- Industrial: Modbus, CAN
- Cellular: LTE modems, CAT-M1 and NB-IoT
- Bluetooth LE basics: GAP, GATT
- Wi-Fi, LoRa basics
- TCP/IP, USB basics
- TLS, PKI and cryptography
- MQTT (AWS IoT)
- Electronics/hardware
- Past experience with designing PCBs - can navigate datasheets, schematics and layouts
- Sensors: Energy metering, acceleration, pressure, temperature etc.
- Actors: LEDs, stepper motors, piezo buzzers
- Peripherals: SPI flash, secure element, RTC, fuel gauge etc.
- High-level software
- Python: Preferred language for any kind of scripting, e.g. device provisioning and testing
- JavaScript/TypeScript: Developed custom nodes on Node-RED (NodeJS) and Lambda functions on AWS.
- AWS IoT and accompanying services: CloudWatch, Lambda, S3, CDK
- (Somewhat) Embedded Linux
- Raspberry Pi standalone and compute module with RPi OS and high-level software (e.g. Python, Node-RED). Some systemd configuration for startup automation.
- Toolkit
- Desktop OS: Primarily Windows, comfortable with command line, basic Linux knowledge
- Version control: Git
- Preferred editor: VS Code
- Project management: JIRA, Trello
- Design and documentation: PlantUML, Markdown
Interests
- Modern system programming languages such as Rust and Zig
- I follow blogs and occasionally develop small projects to keep up-to-date.
- C/C++ is not going anywhere soon, so modern C/C++ too.
- Keeping an eye on Ada/SPARK for formal verification on safety-critical systems.
- Modern RTOSs such as Zephyr and NuttX
- I developed many projects with Mbed OS but since it has been abandoned by Arm, I am exploring alternatives.
- Emerging communication technologies
- CoAP, LwM2M, Bluetooth Mesh, Matter etc.
- Software engineering
- Quality assurance: Static & dynamic analysis, testing, emulation
- Requirements engineering and system design tools (UML/SysML)
- Open-source software
- Contributing back to the community
- Multi-core systems
- SMP on MCUs and AMP with Linux-MCU combination
- Embedded Linux
- I have some experience with Buildroot and Qt5 but I would like to explore deeper embedded Linux with Yocto and driver development.
- Linux desktop OS and tools
- Unfortunately Windows was traditionally a prerequisite for embedded development, however I am observing that more and more tools support Linux, so I might try switching to a Linux development machine soon. I know some essential Linux commands but would like to learn more.
- RISC-V architecture
Work Experience
- Embedded software engineer @ Nantis GmbH (2020-present)
- Design, development, maintenance and support of multiple projects in various sectors, mostly microcontroller firmware
- Firmware development of the energy monitoring smart plug Gridknight from concept to product launch
- Working student & Master’s thesis @ Vector Informatik (2018-2020)
- AUTOSAR Adaptive integration and delivery, AUTOSAR Classic hardware support
- Thesis: Implementing Plug and Charge for CHAdeMO (Smart charging stations and V2G communication)
- Intern @ Punica Systems (2016-2017)
- Hardware, firmware and web app development of an IoT sensor gateway based on ESP8266 Arduino core
- Working student & Bachelor’s thesis @ Arçelik A.Ş. (2015-2016)
- Hardware and firmware development of an air quality sensor based on AVR MCUs
Volunteer Experience
- Formula Student racing team - Rennteam Uni Stuttgart (2018-2019)
- Hardware and software development of the power distribution module (PDM) from concept to deployment, consisting of an STM32 MCU, high-side switches and a CAN transceiver
- Design and development of the driver interface, consisting of a BeagleBone Black acquiring CAN data and displaying them on a TFT display using Qt5 and Buildroot
- Design and deployment of the telemetry system to access the ECU over Wi-Fi
- Wiring harness design and manufacturing
- Maintenance of the vehicle and engineering design presentation at the competitions
Education
- M.Sc. Information Technology (Embedded Systems) @ Universität Stuttgart (2016-2020)
- B.Sc. Electronics and Communications Engineering @ Istanbul Technical University (2011-2015)
- Abitur @ Istanbul Erkek Lisesi
Languages
- Turkish: Native
- English: Proficient (IELTS 8.5)
- German: Working proficiency
Personal Information
- Location: Stuttgart Area
- Nationality: Turkish