Software Developer- React Native Resume
CA
SUMMARY
- Over 7 years of experience building high quality iOS applications using Swift and Objective C.
- Over 1.5 years of experience building React Native applications for iOS and Android.
- Experience developing a complete iOS app which included - UI development, designing and implementing web services, database handling, performance optimization and app store distribution.
- Experience using various architectural patterns - MVC, MVVM and VIPER.
- Experience working with Storyboard, Interface builder and Auto layout.
- Experience handling multi-threading using GCD.
- Experience integrating RESTful webservice and JSON parsing.
- Follower of clean programming principles such as - DRY, concise code, immutability and writing concise functions without side effects.
- Experience building custom UI components, animations and screen transitions using UIKit, Core Animation and UIViewControllerAnimatedTransitioning protocol.
- Experience integrating React Native onto an existing native iOS application.
- Experience working with React Native frameworks such as - Redux, React Native Navigation and Typescript.
- Experience working with the Agile methodology.
- Experience in integrating libraries such as - Alamofire, SwiftyJSON, SDWebImage, Object Mapper, FMDB and SVProgressHUD.
- Experience working on persistent data storage using SQLite, Archiving objects, NSUserDefaults and securely storing data using Keychain.
- Experience working on contact sync for real time communication apps using AddressBook to fetch contacts and then managing the differential sync with the server.
- Experience integrating real time communication frameworks such as WebRTC, SIP and MQTT.
- Experience with audio session management required for VoIP apps.
- Experience handling notifications using PushKit, CallKit and UNNotification.
- Experience integrating crash reporting frameworks with custom logging using - Hockey app and Crashlytics.
- Experience optimizing apps for various networks - 2G, 3G, 4G and Wi-Fi.
- Experience in maximizing performance using memory debugger and Instruments
- Experience deploying apps using iTunes Connect, TestFlight, Hockey app and Crashlytics.
- Focused on building a beautiful product with great emphasis on the goals and vision of the product stakeholders.
- Experience designing and architecting mobile solutions.
- Experience of being actively involved in all the stages of product development, right from product planning with stakeholders to development and testing with the engineering team.
- Experience creating wireframes, prototypes, coordinating with designers to get the desired output with minimum friction and communication gaps.
- Ability to design mobile apps using Sketch (beginner level expertise).
TECHNICAL SKILLS
Technologies -: iOS SDK and React Native (iOS + Android)
Languages -: Swift, Objective C and Javascript
React Native -: Redux, TypeScript, React Native Navigation, Redux Persist, Reselect, Thunk, Lottie, Vector Icons, Code push and Native <-> React Native communication iOS UI Frameworks -: UIKit, Cocoa Touch, Storyboard, Auto layout and Core Animation iOS Frameworks -: PushKit, CallKit, UNNotification, AVAudioSession, NSUserDefaults, NSArchiver and GCD
3rd Party Frameworks -: Alamofire, AFNetworking, SDWebImage, FMDB, SwiftyJSON, ObjectMapper and SVProgressHUD
Architectural Patterns -: VIPER, MVVM and MVC
VoIP -: WebRTC, Audio session handling and handling Wi-Fi <-> Cellular network switching
IDE & Source Control -: Xcode, VSCode, SVN and Git
Crash reporting tools -: Hockey app, Bugsnag and Crashlytics
Debugging tools -: Instruments, Postman and Wireshark
Deployment -: iTunes Connect, TestFlight, Crashlytics and Hockey app
UI Designing -: Sketch and Balsamiq
PROFESSIONAL EXPERIENCE
Confidential, CA
Software Developer- React Native
Responsibilities:
- Develop key features on two iOS applications simultaneously using React Native
- Integrate Redux to manage data
- Build components using Typescript
- Use redux thunk and selectors using reselect
- Add custom navigation views using React Native Navigation
- Customize app data and behavior based on the country
- Handle multiple locales
- Build multiple apps using the same source code
Environment: Javascript, React Native, Redux, TypeScript, React Native Navigation, Redux Persist, Thunk, Redux Reselect, React Native Vector Icons and Lottie.
Confidential
Senior Software Developer
Responsibilities:
- Research on the viability of integrating React Native into an existing mobile app
- Manage the development team and co-ordinate with the Product and Design teams
- Architect a solution with Native (iOS) + React Native
- Integrate React Native onto the iOS app
- Develop key features on React Native
- Create Shell scripts to simplify the setup and management of the iOS, Android and React Native projects
- Create Native React Native bridges to exchange data and events
- Import native views onto React Native
- Integrate Redux to manage data
- Integrate CodePush to handle real time updates over the air
- Integrate crash reporting across React Native and Native using Bugsnag
- Create UI designs using Sketch
- Performance optimizations- removing memory leaks and reducing app startup time.
- Handle app distribution via TestFlight and iTunes Connect
Environment: Javascript, Swift, Xcode, VSCode, React Native CLI, Redux, iOS SDK 9.0 and later, CodePush, React Navigation, Alamofire, GCD, Flow and ESLint
Confidential
IOS Developer/ Team Lead
Responsibilities:
- Architecting and developing the complete iOS app along with 1 more iOS developer.
- Worked on all aspects of the application.
- Creating the UI and data flow for various screens.
- Designing and implementing RESTful web services.
- Database management using SQLite.
- Handling calls notifications via CallKit, PushKit and local notifications.
- Managing multiple threads for optimum performance.
- Integrating with a C++ VoIP library - comprising of WebRTC and a SIP client. Managing communication, threading and state handling between the Objective C classes and C++ library.
- Managing multiple call sessions on the client.
- Audio session management.
- Contact/Address book management on the device and keeping it in sync with the server.
- Integrate in-app purchases.
- Performance optimizations- removing memory leaks and CPU usage optimization.
- Wireframing and prototyping.
- Managing development, testing and deployment of the iOS and Android application.
- Gathering the business requirements and coordinating with product stakeholders.
- Managing smooth flow of information between the stakeholders, designers, developers and testers.
- Managing app distribution
Environment: Swift, Objective C, Xcode, Alamofire, SDWebImage, CallKit, PushKit, WebRTC, SIP, iOS SDK 9.0 and later and GCD
Confidential
IOS Developer
Responsibilities:
- Building the User Interface for various screens
- Integrating RESTful Web Services
- Parse JSON data and store data using appropriate models
- Develop app using the MVC architecture
- Integrating a calendar module for booking appointments
- Build a list using UITableViewController for appointments
- Build the user profile section
- Debugging and fixing high priority issues
Environment: Objective C, Xcode, Interface builder, SVN, iOS SDK 6.0 and later.