Profile
My goal is to obtain the position of an iOS developer in a company where I can utilize my 5+ years of skills and experience, adapt to new environments, new technologies and frameworks and create the best apps on the market.
I’m a flexible and efficient team player with excellent communication skills at all levels. Seeking a role where I can refine and develop new skills whilst positively contributing towards the organisation’s goals.
Experience
Mkodo – Senior iOS Developer [February 20 - April 20]
App not yet available
OLG Lottery App
Worked in a team of 6 iOS developers & 6 Android developers
Worked with a QA team of 5 testers
Collaborated with designer and business analysts to produce a very high-quality UI
Participated in daily standups to track the team’s progress
Used Redmine to organize and allocate tasks and track progress on features and issues
Jenkins, Continuous Integration (CI) on GitLab to run automated tests
Participated in code review with other developers to ensure a high standard of code quality
Followed GitFlow procedure to streamline the collaborative process
Used Slack for communication amongst the team and the company
Used Interface Builder to create the layout
Used MVVM to optimally separate the code from view controller and make it more testable
Created a series of pages to show to new users upon starting the app to introduce the functionality of the app
Implemented a feature which lets players choose which page should be the first page when they open the app
Created menus to link to various parts of the app and to open links to web pages
Created page to link players to the OLG website for support or withdraw their funds
Created a series of pages for players to enroll in self-exclusion, including the ability to download files with information
Oddschecker – Senior iOS Developer [October 19 - January 20]
https://apps.apple.com/gb/app/oddschecker-sports-betting/id1114487306
https://apps.apple.com/gb/app/whoscored-football-app/id940048063
Oddschecker App
Worked in a team with 5 iOS developers & 5 Android
Worked with a QA team of 3 testers
Collaborated with designers to produce high-quality UI
Used JIRA to organise and allocate tasks, tracking issues as they were detected
Worked on two-week sprints with daily standups to keep track of team progress, led by our scrum master
CI on GitLab to run unit tests and integration with third-party tools used by testers
Participated in code review with other testers to ensure a high standard of code quality
Followed GitFlow procedure to streamline the collaborative process
Used Slack for communication between the team and the wider company
Used Xcode to write and compile code
Created layout programmatically, creating auto layout constraints in code to position views
Worked using MVVM to distribute responsibility among classes
Introduced proper calculation for accumulator bets involving ‘each way’ bets
Introduced checks to prevent the app from displaying inaccurate odds or expected returns when a user made a bet involving starting prices
Changed the app to maintain the expanded state of cells when changing their selected bets caused the page to re-order
Corrected an issue where the user would log in but the front end would not reflect this
Adjusted logic to prevent the expected returns from being hidden
Adjusted UI to prevent unnecessary line breaks in text
Corrected issues with not being able to see options for making multiple bets
Wrote unit tests for code to rigorously check logic
Used snapshot tests to track UI changes
WhoScored App
Worked as the sole iOS developer
Worked in Objective-C
Integrated Firebase Analytics and Crashlytics to track events
Introduced banner ads with Google Ad Manager into all pages of the app
Added XtremePush functionality to subscribe and unsubscribe from notifications about matches
Rewrote some code to reduce duplication
Replaced code using deprecated classes with new code while maintaining the same functionality
Uploaded the app to App Store Connect using Xcode
Deployed the app to TestFlight for distribution to testers
Currys – Senior iOS Developer [August 19 - September 19]
App not yet available
Used JIRA to organise and allocate tasks, tracking issues as they were detected, two week sprints
Mentored junior developers on effective code
Daily standups to keep track of team progress, led by our scrum master
Created layouts primarily using Storyboards but also programmatically where appropriate
Used Sketch, Zeplin & InVision Studio for designs and asset management
Collaborated with the designer to better meet the Human Interface Guidelines provided by Apple, and to produce a user experience consistent with what a user would be used to
Redesigned the list of products to use a single-column layout using the UICollectionView
CI on GitLab to run unit tests and integration with third-party tools used by testers
Refactored MVVM code to reduce complexity, remove code smells using SonarQube, and improve readability
Assisted in writing and maintaining unit tests for the app using XCTest
Working towards making code more testable by using mock classes
Implemented functionality for the Home screen to display promotional images from a server with links to relevant pages in the app
Developed functionality to track the user’s current version to ensure it matched a provided minimum version and gave the option to upgrade
Corrected spacing issues in the app to ensure a consistent design across different devices
Redesigned the product details page to adapt to some elements being absent
Redesigned the sign-in flow to provide clearer error messages upon failing to log in or sign up
Included an error message to display to a user when trying to add a product to a full Wishlist
Worked on the UI across the whole app, creating a new back button and adding shadows under the tab bar and headers
VoguePay – Senior iOS Developer [May 19 - August 19]
App not yet available
Worked as the sole developer on the vSavings app
Coordinated with a larger team based in Nigeria for app properties
Project team consisted of 8 people, including a designer, a backend developer, and a project manager
Collaborated with the developer for another app being developed by the company to include a shared flow for users making a new account
Weekly Skype meetings to share progress, fine-tune design elements and update on timeframes
Used Zeplin for designs and asset management
Used Clickup as productivity software to organise and set out time plans
Collaborated with the designer to better meet the Human Interface Guidelines provided by Apple, and to produce a user experience consistent with what a user would be used to
Produced a Work Breakdown Structure at the beginning of the project to outline the development timeframe
Followed the Clean Swift architecture for better modularity
Designed scenes using Interface Builder, with some reusable components being made programmatically
Used AutoLayout constraints to ensure designs would adapt to multiple different devices
Created a flow for selecting an investment from a list of available plans, deciding an amount and duration, and choosing a source of funds
Included the ability to filter the list of investments by name or by specified properties
Created a flow for liquidating an investment’s funds to an appropriate location
Created tools within the app for previewing investment projections, including a chart for displaying investment yields over a period of time
Adapted the shared signup flow to match the aesthetics of this individual app, as well as extending it to allow for non-Nigerian users to make accounts and adapting the design for different screen sizes
Incorporated a series of pages to allow users to fund their virtual wallets through multiple possible methods in order to make investments
AIB Mobile – Senior iOS Developer [June 18 - May 19]
https://itunes.apple.com/gb/app/aib-mobile/id468042881?mt=8
Collaborated with design team to better bring design to life
Used JIRA to organise individual tasks, tracking commits for those tasks
Worked towards releases every 4-6 weeks rather than sprints
Participated in daily standups when working towards a release, involving developers from the three disciplines reporting on their progress
Weekly meeting of Wipro developers to discuss individual work and suggestions for workflow improvements
C.I. handled via Jenkins using build slaves that would build and run unit tests each time a commit was pushed to the master branch
Used pull requests to review code to be pushed before merging (though this only started towards the end of my time there)
Worked in conjunction with the QA team to identify and address issues
Created new native views to replace existing web-based views
Redesigned the current account screen to show transactions in a chain link format
Created the layout using Xcode Storyboards
Extended the new layout to cover other account types, including alerts on those accounts
Worked in V.I.P.E.R. to better organise views and properly distribute responsibilities between classes
Reworked the cards carousel to use AutoLayout rather than fixed values
Fixed bugs relating to cancelling cards
Restructured the use of fonts across the app to prepare for a new app-wide font to be used, including changing all storyboard labels to set their font via code
My BT – Senior iOS Developer [April 17 - June 18]
https://itunes.apple.com/gb/app/my-bt/id979618672?mt=8
Updated existing application to incorporate various feature updates and preparations for upcoming iOS 11.
Updated synchronisation functionality to work more efficiently and better deal with unrealisable connection states.
Optimised various areas of the code base to response times and reduce the battery impact.
Extended existing CoreData model to include new entities representing new details being tracked.
Experimented with iOS 11 beta to predict how the application will need to change with upcoming updates.
Produced prototypes for upcoming iOS 11 version and desired future additions.
Produced prototypes utilising the new features in the iOS 11 SDK.
Fixed bugs throughout the code base and performed general housekeeping and tidying up and code organisation.
Implemented new features in Swift 3 before migrating to Swift 4.
Worked in a pair programming environment with various members of the iOS development team to ensure better code structure.
HelloFresh – iOS Developer [ December 15 – March 17]
https://itunes.apple.com/gb/app/hellofresh/id970107419?mt=8
Completely rebuilt existing recipes and healthy living application as part of rebranding movement and to take advantage of new features in the latest iOS.
Reassessed overall code base architecture, emphasizing on modularity and dependency injection.
Took part in the process of redesigning the both the user interface and user interface while giving input on current trends, technological limits and changes in the mobile market.
Refactored usable legacy code into a series of modules to ensure a high amount of reusability.
Implemented a total redesign of the user interface, updating existing interfaces while creating new controls when needed.
Introduced device calendar integration.
Implemented local data persistence and the tools to synchronise local data with remote data.
Glucose Buddy Diabetes Tracker – J.r. iOS Developer [ October 14 – November 15]
Updated and improved an application to record, log, track and makes notes on the amount of sugar a user with diabetes has.
Fixed existing bugs throughout the code base and accompanying in house libraries.
Updated the in-house barcode scanning functionality to work faster, more reliably & reduce the memory footprint.
Worked on prototype which incorporated HealthKit to track the user’s activeness.
Abstracted existing charting functionality to more closely represent health data and provide clarity to the user.
Education and Certificates
University of Oxford, Mathematics and Computer Science (1 year)
University of Surrey, BSc Computer Science
Key Skills
Native Development Tools
Xcode, UIKit, UIDynamics, UICollectionViewFlowLayout, Autolayout, XCTest, CoreData, CoreVideo, CoreGraphics, QuartzCore, NSURLSession, Grand Central Dispatch (GCD), EventKit, TouchID, Apple Push Notifications
3rd Party Development Tools
Spring, AsyncDisplayKit, Quick, Nimble, Frank, Magical Record, SQLCipher, AFNetworking, Alamofire, SSL, AES-256+SHA2, Obfuscation, OAuth 2.0, Charts API, Urban Airship, TestFlight, Firebase, Crashlytics, Google Ad Manager, Snapshot Testing, XtremePush
Project Tools
Agile, SCRUM environment, Test Driven Development, Continuous Integration, Pair Programming, Model View Controller (MVC), Model-View-ViewModel (MVVM), Gitflow, GIT, GitLab, TestFlight, JIRA, Jenkins, Confluence, Appium, Trello, Kanban, Sprints, BitBucket, Circle CI, Slack
Languages
Swift, Objective C, C++, HTML, Javascript, CSS, PHP, Assembler, Ruby, OpenGL