¡Bienvenido al perfil Malt de Marton !

Malt te da acceso a los mejores talentos freelance para tus proyectos. Ponte en contacto con Marton para hablar de tus necesidades o busca otros perfiles en Malt.

Marton Kerekes

senior ios software engineer

Puede desplazarse Barcelona , Barcelona, Valencia, Madrid

  • 41.3828
  • 2.1774
Proponer un proyecto El proyecto sólo comenzará si aceptas el presupuesto de Marton.
Proponer un proyecto El proyecto sólo comenzará si aceptas el presupuesto de Marton.

Localización y desplazamiento

Localización
Barcelona, España
Puede trabajar en tus oficinas en
  • Alrededor de Barcelona y 50 kms
  • Alrededor de Barcelona y 10 kms
  • Alrededor de Valencia y 10 kms
  • Alrededor de Madrid y 10 kms

Preferencias

Duración del proyecto
  • Entre 3 y 6 meses
  • ≥ 6 meses

Verificaciones

Idiomas

Categorías

Habilidades (12)

Marton en pocas palabras

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

Portfolio:

Portfolio solo accesible para usuarios registrados

Experiencia

Connectt Ltd.

Redes sociales

Contract iOS Engineer

City de Londres, Reino Unido

mayo de 2018 - diciembre de 2019

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

E-commerce

iOS Software Engineer & Team Lead

City de Londres, Reino Unido

noviembre de 2016 - mayo de 2018

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

Banca & seguros

Senior Software Engineer, later iOS Team Lead

Budapest, Hungría

enero de 2015 - noviembre de 2016

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

Telenav

Transportes

iOS Software Engineer

Cluj-Napoca, Rumania

mayo de 2012 - diciembre de 2014

3 recomendaciones externas

Consulta las recomendaciones de Marton

Formaciones