Farhan Yousuf

Software Engineer, Consultant, and Architect in Dubai, United Arab Emirates

View my portfolio

Being passionate about building meaningful apps in the right way, and enjoying the time spent on each project has always kept me going in past 5+ years of iOS Development.

Through out my career i have created softwares just because i wanted to see the best i can deliver and surprise my clients (in a good way) and tends to see this as my favourite fun time rather than thinking its a job.

I got opportunities to work in some really cool projects, and had plenty of opportunities to challenge myself to try new things. From my experience, I believe that, using a proper project management methodology, backing up the work using Git/SVN, doing proper Unit Tests, monkey tests, QA, and code optimisations by following proper coding conventions, code reviewing, creating frameworks for general purposes or finding great open source frameworks and integrating it through Cocoapods/Carthage are all the ingredients one needs for creating a successful project.

I love doing Android Projects for a change, when im not busy with Xcode. I have been enjoying writing the codes in swift in my past half a dozen projects, which has reduced my usage of Interface Builders. I love collaborating with a team by contributing to the project architecture and doing code review using bitbucket pull requests.

To accept any sort of challenging projects and deliver good results has been my primary responsibility at the organizations i have worked for.

I am currently able to help my team familiarise with some of the strong Technical Project Management tools like git, cocoapods for building iOS apps, mogenerator for helping with Core Data, Coding Convention, different design patterns, which helped organize my code by making sure of light weight view controllers and making use of facade and decorative design patterns to have separate source files for managing network calls and data model and view model, Agile Project development methodologies, Application Design Flow and Architecture, Estimation of Work Effort based on Resources and complexity etc.