- iOS Software Engineer working with iOS 7 SDK, Objective-C, Cocoa Touch, UIKit, Xcode, Interface Builder, Instruments, and Git on a daily basis.
- Proficient with advanced iOS technologies including Core Data, Core Location, MapKit, Grand Central Dispatch, and Auto Layout.
- 5 years of proven success in exceeding client expectations as a full-time independent contractor. 2 years experience focusing exclusively on native iOS development.
- Strong self learner with a desire to stay highly informed on best practices and latest developments to Apple's iOS mobile platform.
- Continuously focused on providing an excellent user experience via clean, maintainable, performant code.
- Professional, personable, and flexible while working to achieve objectives.
Contracted to work with another developer to complete What's Next, an iPad app for AARP's Life Reimagined initiative. Took ownership of implementing Core Data for local persistence and Parse for persistence in the cloud. Developed custom code to keep Core Data and Parse in sync. Eliminated memory leaks and abandoned memory using Instruments. Troubleshoot a serious issue with a third-party UI component.
Hired by startup SightPlan, Inc. to join their team creating SightWalk, an app for the multifamily real estate industry. Created a subclass of UITableViewCell which could be slid left or right to reveal 0 4 buttons underneath each side. Coded an equivalent to Apple's NSFetchedResultsController for use with Couchbase Lite. Refactored a complicated and fragile UIView into a UINavigationController that would push separate UIViewControllers. Utilized the UIViewController containment API to cleanly solve some UI challenges. Built a custom Date Picker control that matched the one used in the popular Mailbox app. The SightWalk app is available at AppStore.com/SightPlan.
Programmed a UIPageViewController subclass for navigating between articles. Utilized a UICollectionView to efficiently display large 768 x 4000 pixel JPG images sliced into 768 x 100 pixel tiles. Worked around a major bug with UIPageViewController and filed a report with Apple. Implemented video playback throughout the app.
Designed and developed Cornhole Easy Score, an iPhone app which provides a polished, modern way of keeping score when playing the physical game of cornhole. Utilized Core Data for local persistence. Incorporated Auto Layout so that the user interface adjusts for both 3.5 and 4.0 iPhone screens. The Cornhole Easy Score app is available at AppStore.com/JamieMcDaniel.
Designed and developed the Jog Journal demo app as part of the screening process with Toptal.com. Used Core Data and Parse for persistence of user jog data. Created custom screens for Facebook and email address login. Used Core Location for tracking user jog coordinates. The full source code is available at github.com/jamiemcd/JogJournal.
Contracted to work with another developer on GE's Nucleus desktop application. Investigated and fixed numerous issues with existing widget functionality. Significantly decreased the time it took the dashboard to initially display on application launch.
Hired to code a set of iPad apps for Tribune Broadcasting stations using Flex 4.6 and Adobe AIR. Wrote code to consume news and weather from web services and store the data locally in an SQLite database. Styled Flex UI controls to provide a native-like app experience. Took ownership of solving app rejection due to Apple's HTTP Live Streaming HLS protocol for video not being followed correctly by the stations.
Hired as the primary Flex developer to take SecureAlert's TrackerMap application from a very early version to one that was ready for daily use by their law enforcement customers. Significantly increased the responsiveness of the application when zooming and panning the map. Refactored a majority of the codebase to allow for monitoring multiple offenders simultaneously instead of a single offender at a time. Worked within the team consisting of project manager, .NET developer, and database administrator through several releases, each with new features and greater functionality. Invited to join SecureAlert as an internal employee.