- Connectt Ltd.Contract iOS EngineerREDES SOCIALESmayo de 2018 - diciembre de 2019 (1 año y 7 meses)City de Londres, Reino UnidoStarted greenfield project using VIPER, Clean Architecture and a mix of Coordinators.Domain classes, JSON parsers, Realm classes and an abstraction over the API calls are auto-generated using openAPI definitions and our custom templates, that saves about 2 days of integration effort per new feature. This is especially beneficial when there’s an API change, the above code is regenerated and re-imported.The generated code is easy to inject into interactors’ initialisers, the app architecture is based on this.The app is separated into horizontal frameworks separating Domain (Interactors and Entities), Data (Repository pattern - Networking, Persistence), Presentation and UI, and there’s a vertically separated framework for each new feature. The main app target connects these frameworks, high level entities not knowing about lower level components or collaborators, only through protocols according to Clean Architecture. The UI is agnostic of the domain, adapting to protocols required by the presentation in the App level through extensions and Storyboards.The UI describes a set of protocols to abstract styling. This gives the ability to apply different themes to the app. The CI is capable of generating and uploading different ios apps (different app ids, api endpoints and themes) at the click of a button, based on these skins and a set of configurations.Besides unit tests, The CI is also executing UI tests verifying user features based on injected responses, isolating the backend services.Besides coming up with the entire app architecture and maintaining tech debt at a low level, I was advocating TDD and pair programming during the team’s daily activities, mentoring colleagues to respect Clean Architecture and SOLID principles. This also included advocating SCRUM practices that are suitable for the team. Having been working in feature teams I was in daily collaboration with API and other mobile / front end engineers, even with infrastructure / dev-ops, and a close collaboration with the CTO.
- Moonpig.comiOS Software Engineer & Team LeadE-COMMERCEnoviembre de 2016 - mayo de 2018 (1 año y 6 meses)City de Londres, Reino UnidoE-Commerce application with browsing, personalisation and basket(checkout).• Gradually refactoring legacy Obj-C code using Swift and TDDRefactoring is done using safe techniques, such as isolating parts that are not unit tested, backing them up with unit tests, only making modifications that are safe, providing change to implementation without affecting functionality.• SCRUM with a pinch of XP(Extreme Programming)I strongly advocate pair programming, which helps not only at knowledge sharing, but more importantly with code quality and cycle time of the team, eventually increasing team velocity.• VIPER or Clean architectureArchitecture is a constant debate in teams, and probably there’s no silver bullet as the best of the industry claim. Uncle Bob’s clean approach provides a good way for respecting SOLID principles. VIPER is one implementation to this, but it’s never good to be dogmatic about all the components. All situations require different solutions.• Ownership of test pyramidAs an engineer I am not only writing code, but also taking part of shaping user stories, acceptance criteria, testing scenarios before they make their into a sprint. Stories should be split vertically based on INVEST principles by the team. I start stories that are ready for development by writing failing UITests, then TDD.I also take part of testing other developers’ stories according to the acceptance criteria. In my opinion developers should share this responsibility with agile testers. I am also looking after the Continuous Delivery agents. They are set up with Team City, Fastlane running UnitTests against Pull Requests and UI Tests against develop.• Team LeadTaking on recruitment process, having interviewed a number of candidates.Line Managing engineers in my team and making sure the team is performing well. Being in absence of a Scrum Master at this time, I am also making sure the team’s agile processes are respected both internally and externally. This means having the proper ceremonies, negotiating with the product owner about tech debt and why that is valuable to the business.
- Misys Financial SystemsSenior Software Engineer, later iOS Team LeadBANCA & SEGUROSenero de 2015 - noviembre de 2016 (1 año y 10 meses)Budapest, HungríaWhite-label banking application for displaying accounts, cards, money transfers, personal goals, etc. Customisable visuals tailored for individual banks.The application is mostly legacy code that I was determined to bring to iOS standards and best practices apart from implementing new functionalities. Caching (sqlite) has been replaced with CoreData, transferred from NSURLConnection to NSURLSession, replaced the custom navigation with UINavigation but maintaining the framework api calls. moving to CocoaPods instead of maven. Performance has been greatly improved using Instruments analysis.Project HighlightsApple Watch: The introduction of a new build architecture has made it unavoidable for product management to approve the architectural overhaul of the platform, separating existing frameworks into smaller layers that serve separate architectures. Separating frameworks with knowledge of Foundation, UIKit and WatchKit respectively, then domain layers, communication, etc.Navigation: The navigation system present when I joined the team was built to serve a custom functionality, which in the end turned out not be able to bring anything more compared to UINavigation. Replacing it with UINavigation was required to facilitate additional features for customisation phase. Some projects required presenting ViewControllers which could not be presented using the existing navigation.
Bohdan Orlov y 2 otras personas recomiendan a Marton
Marton led an iOS team and struck me as an experienced iOS engineer and people manager.
One of the things which stand out was his approach to how he approached the problems. Specifically, despite being an experienced engineer he prefered to tackle problems as a team, by being inclusive and trying to get a point of view of new joiners like myself.
Overall, I had a great time working with Marton and he is a great addition to any iOS team.
Marton is a strong developer, with a keen sense for architecture and how this benefits the entire platform. never afraid to speak his mind and verbalise opinion and direction for the benefit of the wider team. Ably managed the iOs developers in both a managerial and mentor relationships improving the whole iOS team as a result.
Great guy - expect results.
- BSc of Science in Automation and Computer Science,Technical University of Cluj, Cluj Napoca, Romania2010The degree included a mix of course varying from: •Mathematics (6 subjects through 3 semesters) •Computer Science (Java, C++, C+, OOP, Design Patters) •Computer Hardware, Robotics •Control of Systems and Automation related subjects •Publications “Identification and control of ball--#beam system using MATLAB and Simulink” Technical University of Cluj-Napoca July 18, 2010 Authors Marton Kerekes paper presented at 2010 IEEE International Conference on Automation, Quality and Testing, Robotics --# AQTR 2010 Student Forum. ISBN 978--#973--#662--#574--#9