You're seeing this page as if you were . The main menu is still yours, though. Exit from immersion
Marton KerekesMK

Marton Kerekes

Senior iOS Software Engineer

€350/day
Barcelona, ES
8-15 years

Average response time: 1 hour

About Marton

Highly skilled software engineer having 9 years’ experience in iOS mobile development, design and integration. Experienced in full project life cycle from design through implementation to delivery/deployment.
• Evangelist of TDD combined with Pair programming, Agile and SCRUM.
• Advocate and passionate about Clean code, SOLID principles and framework
oriented app architecture.
• Strong mindset towards Continuous Integration.
• Security first with the full test pyramid: Unit Tests, Integration Tests, UI Tests.
• Swift, Objective-C, Realm, GraphQL, OpenAPI-definition / Swagger
• Highlights: e-commerce, fintech, geolocation, social networking
• Team lead and mentoring, interviewing candidates.
Happy participant at the 14’ WWDC, iOSCon ’17, ’18
iOS Talk entitled “Stay on top of your Tech (Debt)” @Wallapop for NSBarcelona in 2019
  • Spanish

    Conversational

  • Romanian

    Native or bilingual

  • English

    Native or bilingual

Can work on-site
Barcelona (up to 50km), Barcelona (up to 10km), Valencia (up to 10km), Madrid (up to 10km)

Experience

  • Connectt Ltd.
    Contract iOS Engineer
    SOCIAL NETWORKS
    May 2018 - December 2019 (1 year and 7 months)
    City de Londres, United Kingdom
    Started 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.
    Swift VIPER Coordinators TDD Clean Architecture Realm Sockets OpenApi
  • Moonpig.com
    iOS Software Engineer & Team Lead
    E-COMMERCE
    November 2016 - May 2018 (1 year and 6 months)
    City de Londres, United Kingdom
    E-Commerce application with browsing, personalisation and basket(checkout).
    • Gradually refactoring legacy Obj-C code using Swift and TDD
    Refactoring 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 architecture
    Architecture 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 pyramid
    As 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 Lead
    Taking 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.
    Swift CoreImage AB Testing Security Scrum Metodología Agile
  • Misys Financial Systems
    Senior Software Engineer, later iOS Team Lead
    BANKING AND INSURANCE
    January 2015 - November 2016 (1 year and 10 months)
    Budapest, Hungary
    White-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 Highlights

    Apple 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.
    CoreData Keychain Security Apple Watch Dependency Injection

Recommendations

FU
FU
FU
Former user and 2 other people have recommended Marton

These freelancer profiles also match your criteria

AgathaA

Agatha Frydrych

Backend Java Software Engineer

4.7

(3)

2

BaptisteB

Baptiste Duhen

Fullstack developer

4.6

(4)

5

AmedA

Amed Hamou

Senior Lead Developer

4

(2)

7

AudreyA

Audrey Champion

Web developer

4.3

(3)

4

Education

  • BSc of Science in Automation and Computer Science,
    Technical University of Cluj, Cluj Napoca, Romania
    2010
    The 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

Skill set

Categories