I work in a startup company that aims to enter the market with pioneering innovations in the finance sector. I am a member of the team that develops mobile applications in the company. I am software architect responsible for Android application development.
I have developed a library of which I am the inventor, with an unusual architectural design approach (a blend of design patterns such as MVC, MVVM, Factory Method, Builder, Adapter, Facade, DTO and so on) in the Android application. When we translate the work of this library into Turkish, it is actually the user interface development work on dynamic screens.
The programming language and libraries we prefer to use in the Android application are as follows, respectively.
- Programming Language: Kotlin (%100)
- Network API Call: Retrofit RESTful API Call
- JSON Serialization & Deserialization: Moshi Adapter
- Local Database: Realm Database
- Error State Analysis: Crashlytics
- Logging: SLF4J
- Activity & Fragment Navigation: Android JetPack Navigation Component
- Image Download: Glide Image Downloading Library
- Image Resizing: uCrop
- Animation: Lottie
- Dependency Injection: Dagger2
- Real Time Communication: Smack XMPP Client library & STOMP
- Visualizing Data: MPAndroidChart
The architectural understanding of the Android application has a hybrid architecture that blends the design patterns I mentioned above. In terms of UI development on dynamic screens, an iOS Developer has the same logic in terms of usage/coding as if she/he were developing an iOS application without any foreignness. I have experienced that this has a positive effect on development time.
IoT Platform 360
Manufacturing Execution System, Predictive Maintenance, Assembly Management are consolidated into one software ın IoT platform which is named Platform 360. So, different modules came together and become a product in itself. SDK is prepared and with it, we enabled our tenants’ software engineers to make customized solutions and new integrations by supplying data from the product.
Generating a big data by periodically retrieving data from the sensors used in mining equipment. To understand the generated big data and provide specific reports to the end user. Using “Artificial Intelligence Algorithms” with the data received from the sensors and inform the authorized person or persons before any failure occurs in the device.
This project was built on “Monolithic Architecture” structure and developed Web Application and Web API Application by using approaches such as .NET Core technology, MVC design pattern and Entity Framework Code First.
In Business Solutions Department, I had worked in Pixage team for developing cross platform digital signage solution application with using C++ programming language and using Qt Framework. Application is basis on RTC Server (Real Time Communication Server) and APIs (Application Program Interface) using C++ WebSocket communication. On the other hand, project is based on “Monolithic Architecture” and I have had made improvements based on SOLID principles for that architecture design. Also, project is converted to modern C++ standards (C++11, C++14 ve C++17) by myself.
Assembly Management – Ford Factory (Golcuk) Project
IOTP360 Assembly Management – Ethiopia DEFY Project
I contributed to gathering the data of the “Production / Assembly” operations in the “Production / Assembly stations” of the factories and form a big data structure. I developed software which is providing structured screens to understand the generated big data and provide specific reports to the end-user. This software is used by different companies of Koç Holding.
One of the other objectives of the project is to increase the quality of the “Production / Assembly” line, inform the operators of any failure situation with HMIs, and prevent stopping the line stops.
This project is based on a “Monolithic Architecture” structure and developed by using approaches such as .NET Core technology, MVC design template, and Entity Framework Code First: Web Application, Desktop Application, HMI Application, and Web API application.