Personal details

Viktor B. - Remote

Viktor B.

Timezone: Budapest (UTC+2)

Summary

I am a passionate, professional mobile engineer, with 10 years of experience in high- quality and high-stake product development focusing on smooth and reliable user experience and the processes that make it possible to deliver. I am collaborative, self- motivated, organised and interested in the latest technologies.

Work Experience

Senior Mobile Developer
Centrica.com | Mar 2017 - Present
Kotlin
React Native
Swift
GraphQL
RESTful API
I managed to kick off reimplementation of the existing IoT apps in React Native. I addressed every challenge one by one to re-implement every functionality in Javascript. The network stack of the app is a mixture of REST and GraphQL. We use async/await for the simple tasks and native GCD based solutions for long-running/background tasks. We have multiple layers of QA: unit testing for low-level modules, snapshot testing for the UI and acceptance testing for the UX. There were some complicated issues, such as Bluetooth communication in Javascript and WebRTC streaming. I managed to address these challenges by writing custom native modules/plugins in Kotlin for Android and Objective-C + Swift for iOS. One can drive these modules from the same Javascript code thanks to the unified native interfaces. Link: https://www.hivehome.com/hive-app
Senior iOS & Mac Developer / Tech Lead
Prezi.com | Mar 2011 - Jun 2016
C++
OpenGL
Test driven development
Objective-C
Prezi is a cloud-based presentation software and storytelling tool for presenting ideas on a virtual canvas. I built up Prezi’s iPhone and iPad applications from scratch in a team of two. We used mostly Objective-C and C/C++ to implement to UI and the OpenGL based renderer. Once 2014 Swift entered the scene, we started to investigate the possibility of writing new modules in Swift. After skipping the first couple of versions, I added the first Swift module mid-2015, which was a challenging task because we had to use some Objective-C modules from Swift and some Swift modules from Objective-C. During the refactoring, I gradually introduced dependency-injection to avoid singletons and make the code more testable. We started to add tests using Quick/Nimble frameworks and Cucumber for the acceptance tests. We also introduced MVVM design pattern using ReactSwift and ReactCocoa. I even created my toy FRP framework to get a deeper understanding of the principle: https://github.com/ bvic23/VinceRP     I learnt the lessons in the hard way about continuous integration, TDD/BDD and in general, creating serious applications downloaded by 7 million and half million active users daily. People use it to get a new job, pass an exam or get funded so quality and stability matters. Although the early Swift version gave me hard times because of the cryptic error messages and slow build times caused by type inference issues, the app got more stable by decreasing runtime crashes thanks to the strongly typed language. https://itunes.apple.com/app/prezi-viewer/id407759942 https://itunes.apple.com/app/prezi-for-iphone/id576717926 https://prezi.com/mac/