- Profile My main objective is to develop top quality programs and applications. Providing a user - friendly environment with great features using agile methodology.
- Self-motivated individual with around 10 years of experience in the software industry which includes 6 years as a mobile developer focusing mainly on iOS.
- Over 1 year of Swift experience and more than 6 years of Objective-C.
- Extensive experience and expertise with iPhone application development using iPhone SDK, Xcode, Objective-C, Swift, CocoaTouch, Interface Builder and Instruments.
- Implemented persistence data with SQLite, CoreData, UserDefaults, Keychain, NSCache, FileSystem and Plists.
- Experience working with multiple design patterns like MVC, Singleton and Delegation, KVO, Blocks, Façade.
- Worked extensively on consumption of web services, SOAP and REST, HTTP GET, POST, PUT, DELETE used via NSURL Connection/Session or through 3rd parties. Comfortable parsing XML and JSON data formats.
- Experienced registering application for Push Notifications and properly handling the receiving of push notifications within the app.
- Worked with MRR and ARC for memory management and Instruments for debugging and fixing memory leaks.
- Experience in dynamic UI design using Autolayout, Constraints, size classes, Storyboards, Xibs.
- Integration and management of social networks (Facebook API, Twitter API, Instagram API).
- Implemented concurrency and background processing of tasks using Grand Central Dispatch (GCD) and NSOperation.
- Working experience with HTTP Live Steaming (HLS) and CoreBluetooth frameworks.
- Extensive experience using AVFoundation framework, Core Motion Framework, Core Location, MapKit, Social Framework and Core Graphics.
- Expertise in debugging issues using breakpoints, instruments and reading crash logs.
- Ability to create unit test cases using XCTest to avoid regression issues.
- Experience using different management methodologies like TDD, Scrum, Kanban, 5s, Just In Time, Total Quality Management (TQM) and Poka-yoke.
- Worked with documentation software such as ArgoUML, Microsoft Visio, Workbench.
- Capable of writing class diagrams, activity diagrams, entity relationship models, use case diagrams, etc.
- Working experience with Flash, Dreamweaver, Photoshop in the design of web pages, prototypes and animations.
- Additional to my experience as a developer, I also have experience in the virtualization of buildings using 3D software such as Blender, AutoCAD and 3D Max.
- Developed some augmented reality applications using the Vuforia’s SDK in combination with OpenGL/ES.
- Experience working with SQL using a wide range of database managers(DBM) including SQLServer, PostgreSQL, MySQL and Oracle PL/SQL.
IDE: XCode, Eclipse, Netbeans.
DB: MDB, PostgreSQL, MySQL, Oracle PL/SQL, SQL Server 2008, SQLite.
OS: Microsoft Windows OS (2000, XP, Vista, 7, 8.1), Microsoft Windows Server (2008, 2012), Linux: Ubuntu, Mac OS X: Snow Leopard, Lion, Maverick, Yosemite.
METHODOLOGIES: Scrum, Kanban, 5s, Just In Time, Total Quality Management(TQM), Poka-yoke.
ADDITIONAL: AutoCAD, Dreamweaver, Blender, Adobe CSS 5.5 (Flash, Photoshop, Fireworks), ArgoUML, Matlab 2011, Augmented reality using Vuforia s SDK, OpenGL/ES.
Confidential, El Segundo, CASr. iOS Developer
- Confidential app is a companion app for the user’s Confidential service. It allows users to watch live TV shows and recorded shows on the go. It also allows users to view movies and shows On Demand.
- Worked on both the iPad and the iOS versions.
- Worked on communication between the set top box and SOAP web services to make the content available on the app.
- Most of the code is on Objective-C but some new features where created using Swift.
- Worked in migrating some code to Swift.
- Designed custom parsing classes to parse JSON responses from the web server.
- Worked on designing the format of the JSON response sent from the web server with essential information for the user.
- Worked on encryption of sensitive information and secure transportation over the network.
- Customized UIButtons, Popover Views, Master-Detail Views, UIViews, Layers and TabBars to meet the discussed design guidelines.
- Used HTTP Live Streaming (HLS) for streaming of video content based on the user’s internet connection speed.
- Created custom video player for the app
- Used UICollectionView for displaying a list of shows and also allowing users to set up shows for recording.
- Network calls were done on the background thread using Grand Central Dispatch and NSURLSession to ensure that the user experience is lag free and the transition between content is seamless.
- Added offline experience for recorded and saved movies and shows.
- Used Omniture for analytics to gather critical user information (taps, downloaded version, iOS version, etc.)
Confidential, Lilburn, GA
Mobile Architect - iOS
- commerce mobile Wallet app for shoppers and consumers. With this application the user can make payments using his (her) phone.
- Customization of UIButtons, Views, Layers and TabBars to meet the client design guidelines.
- Communication with social sites such as Facebook, Twitter and mailing services.
- Web services consumption using JSON to retrieve the information of the different stores where the user can use the application.
- Communication with the server using SOAP services, here we use a symmetric encryption to communicate some sensitive data such as the debit or credit card information.
- The application also uses AES-256 bit encryption to handle the sensitive information.
- The application has 5 different sections: Locations, Messages, Home, My Cards and Settings. In the first tab the app uses Core Location to present the different stores in which the user has been or the stores that the user can access with the application.
- My Cards section of the application was created using a Scrollview with custom Views. When the user clicks in one of the Cards, a detail view is presented to him using the Navigation Controller.
- The application keeps a history of the different transactions that the user has made. For this and some other details we use CoreData to store the information locally and web services to store this on the server.
Confidential, Chicago, IL
Sr. iOS Developer
- With the Jobs app, the user can quickly manage and apply to jobs. It also offers other functionalities such as Filter job searches, track job applications and get notifications when someone views the user’s job applications.
- Extensive use of the MapKit and Core Location to find jobs all around the world and filter them using different implementations of NSArrays and NSDictionaries.
- To present the user with the different job opportunities, we used different annotations with the basic information of the opportunities.
- To keep a history of the different job applications of the user, CoreData was used as the main data persistence source but the app also has constant communication with the server using RESTfull services.
- To get the information of the different job opportunities, we consume RESTfull web services with JSON and XML parsing. The application also makes use of Push Notifications to tell the user when an employer has checked his or her application.
- Social sharing using the Facebook and twitter APIs.
- Customization of the UITableViews and the UITableViewCells to give the user a better experience. The cells work using a drag and drop engine that gives the user the ability of moving his or her job applications in order of importance.
- Creation of different charts using CorePlot which is an implementation of Core Graphics. In this part of the development area we also had to make a customization of the UIViews using the CALayer framework.
- The application gives the user the opportunity to add his(her) resume from the device or using DropBox, for the latter we use Sync API which gives the application a file system-like interface which provides almost all the functions of a private DropBox client.
Confidential, San Francisco, CA
Sr. iOS Developer
- The application is a system that lets the user design a SalesForce application. It Gives the designer the opportunity to design a sales application with out taking too much time.
- The application lets the user all their records from cases and opportunities and edit them.
- Extensive use of UITableViews, UITableViewcell to present the different options of the application.
- The application uses different design properties of UIButtons, UIViews,UITableViews and UITabBars to improve its look and feel.
- The user can also filter the data and drill down complete reports with charts and statistics.
- Graphics implementation to create the different charts that are presented to the user.
- Basic use of the Navigation Controller for the transitions between the different UIViews of the application.
- Data persistence is achieved using CoreData and NSUserDefaults.
- Since the app lets the user design their own sales application, the customization of the different controls (buttons, textfields, views, etc.) was something very important during the developing process. CALayer framework and all the custom properties of the UIControls we used to achieved the desired results.
iOS App. Developer
- This application was used to follow the schedule of conferences for the event named Elastix World México 2012, what is the conference about, and who was the speaker for that conference.
- The information is mostly shown to the user using a combination of UITableViews and detail Views.
- Using drag and drop you can change the position of the events in the UITableViewCells, also you can change the information that is presented in the cell.
- With the detail view you can see all the speakers, their resumes, some images and the information about their conferences.
- The application uses different customizations of the UIImageViews to present the event’s content.
- Authentication was implemented using communication with the server via SOAP messages. Information from the server was in the form of JSON messages and Push Notifications to alert the user about an upcoming conference.
- The User can use Navigation toolbars to move between the different views of the application.
- For the development of the application we used a fast paced implementation of Scrum. Due to this, we were able to get good results in little time.
- Customization of the different UIControls was something important during the developing process.
- Since the application was for a public event, special emphasis was given to the UI AND UX of the app.
- In this project I had the opportunity to work closely with the requirement gathering in the client’s side, thanks to this I had full participation on the applications design.
- This was a robust application used by the store supervisors of Confidential (one of the biggest retailing companies in Mexico), which allows them to check, reschedule, perform, report and even create all their weekly activities.
- Starts with a Login which is encrypted and sent to a Central Server to authenticate the user.
- The app provides a dynamic tab bar that shows different options depending of the type of supervisor.
- The application has a Master-Detail View which all the supervisor are able to use. It provides a list of all stores they have to visit on the current day in the detail table and the overall stats of their appointed region on the Master View.
- The UIViews work on a drag and drop engine that gives the users the option of relocating the activities during the week.
- The UIViews know which other views are related, so they can communicate only with those which are related in functionality.
- The UIViews implement their own Pan and Tap Gesture recognizers.
- Tapping one of the activities opens a Modal View which shows the details of the activity, which were mostly a list of YES/NO questions, but could have more information, like a list of the current employees of the store and the available positions to fill (if any), shown in a UITableView with custom cells.
- Each activity has a chronometer that counts the time taken by someone to complete a task. Once the task is done, the data is sent to the database using a SOAP web-service.
- These views work with an NSDate to CGPoint and NSDateInterval to CGFloat converter (which also works the other way around) that allows a seamless transition from the data provided by the web services to the views displayed to the user.
- I was in charge of the whole front-end, from design to implementation. I was provided an early version of the app, but rewrote everything in order to implement current technologies.
- The application helps medical surgeons to know volumes of arterial gases that are in the blood, like oxygen, pH, PaCO2, PaO2, HCO3. This helps them to know the quantities of a certain gas that they need to use in certain operations.
- Volumes are calculated using basic mathematics; they are presented to the user using UITablesViews combined with Textfields and UIImageViews.
- The application implements a relationship between the gas quantity and a succession of images in the UIImageView. This way when a certain volume is presented to the user, the application will also show how full are the lungs trough an image.
- Use of different Test Cases to work with the different mathematic process that were implemented in the application.
- Customization of the UIControls used in this application. The design was simple but it was intended to give the application a different look and feel other than the defaults provided by xcode.
- Use of the MVC pattern to create the different interactions between the user and the app.
- The application allows the register users to get quotations of pumps and carburetors online.
- In charge of the Front end and Back end development.
- In charge of creating the Relational Database using SQL.
- Creation of a soap web service to communicate the application with the database.