LifeWorks (2015 – 2018)

My first job in London. I started on October 2015 and I'm still working full time for this company. At LifeWorks we develop an app (iPhone, Android and Web) to improve your experience when you work using gamification.

This has been by far the largest and more complex project I've been involved. The iOS app has 0.2 MLOC (Million Lines of Code), without taking into account third party libraries or open source code.

5 iOS developers, 5 Android developers, 5 web developers, 10 Designers and UX engineers, 8 testers, 10 backend developers and many more people in the marketing department, management, sellers....

I've been working in every single part of the app: Adding large features like the main feed, large refactoring like changing the app to use Coordinators/Universal links, fixing any type of bugs, converting large parts of the program from ObjC to Swift...

Technologies or tools we use:

Project management:
SCRUM and JIRA

Source code quality and metrics:
SwiftFormat
swiftclean
objclean
gitprime

Dependency management:
CocoaPods with bundler and RVM

Unit testing:
For ObjC legacy code we use Kiwi and OCMock
For Swift, we use Mockingjay (stubbing HTTP requests) and Nimble (to express the expected outcomes)

Integration tests:
Calabash

Source Control Management:
We use GitHub and the policy we follow is Gitflow

For the Pull Requests we use Danger to automate some checks

Debugging:
For debugging the user interface I use Reveal
And FLEX, which is useful to debug networking when QA tests the app.

I also use PAW as a HTTP client and Charles (HTTP proxy/monitor), which is also very useful to mock network requests.

CI server
Jenkins with Fastlane, although we used Xcode Bots in the past.

We also started using Functional Reactive Programming with RxSwift (Although personally I'm still learning that library).

Note: The app can only be used by our customers.

Visit LifeWorks on the App Store →

Leave a Reply