Five years' commercial experience implementing and shipping software applications
Full understanding of the iOS and Android App development and release lifecycle and released production grade applications on both platforms
A basic understanding of using threads, including the main thread, background threads, and callbacks
Understanding of performance and platform limitations of mobile devices and mitigation techniques
Knowledge of Apple and Google application guidelines and compliance requirements
Solid understanding of interface guidelines and be able to design good UX
Strong understanding of interactive touch/gesture interfaces, application development paradigms, memory management, file I/O, concurrency and multi-threading
Good knowledge of the Android Play Store release and deployment process
In depth understanding of software development lifecycle and best practices
Strong knowledge of Git, GitFlow and version control
Self-motivated, team-oriented, responsible, and reliable with a positive attitude and strong communication
Ability to review the Architecture/Design/Code; suggests solutions and improvements
Able to build RESTful JSON Web APIs and using networking libraries to integrate this with applications
Results-oriented, product-focused, and at ease in an environment requiring the ability to quickly and appropriately prioritize conflicting demands
University of Illinois at Chicago, IL
Bachelor of Science in Mathematics and Computer Science with a Minor in Finance
FMathematics: Differential Equations; Applied Linear Algebra; Graph Theory; Applied Statistical Analysis; Discrete Mathematics
FFinance: Investments; Corporate Finance; Applied Equity Investment Management
FComputer Science: Algorithmic Complexity; Data Structures; Data Analysis; Object-Oriented
FProgramming; Static and Dynamic Memory Allocation; Divide-and-Conquer;
Pluralsight Online Course
FSince graduation I have continued to expand upon my skillset through online courses.
FPython: Beyond the Basics; Full Stack Web Development with Python; C++ Fundamentals
DoD Cybersecurity Exploratory Analysis
An exploratory analysis on the cybersecurity of the United States Department of Defense’s major weapon systems and its possible implications as we enter the age of AI and the Internet of Things.
RSA Algorithm
A Python program that generates a set of public and private keys used for RSA encryption and decryption. To do this, it generates these private keys through the discrete mathematical concepts of modular exponentiation.
Programming Languages: Java, Kotlin, JavaScript, Python, Applets, HTML, HTML5, CSS, Jquery, PHP, SQL, PL/SQL
Development IDEs:
Android Studio, Eclipse, IntelliJ, Visual Studio, NetBeans, XCode
RESTful Web Services: REST, SOAP, JSON, GSON, XML, AJAX
Development Tools: Git, GitHub, BitBucket, JIRA, Confluence
Dependency Injection:Dagger 2, Koin, Butterknife
Continuous Integration:Jenkins, Circle, Hudson
Project Processes: Agile Scrum, Pair, Extreme, Sprint Planning, Sprint Retrospective, Backlog, Daily Scrum
Threading: RxJava, AsyncTask, IntentService, Handlers, Loopers, Loaders, WorkManager, JobScheduler
Database: SQLite, Firebase, MongoDB, Room, Realm
Debugging: DDMS tool, ADB, LeakCanary, Firebase Crash reporting, Crashlytics,
Stetho, Mockserver
CharlesProxy
Patterns: MVC, MVP, MVVM, Builder, Abstract Factory, Visitor, Proxy, Singleton
Bluetooth: Bluetooth Low Energy, Bluetooth API, Beacons
Third-Party Frameworks: Reactive, Firebase, UrbanAirship,
Animator, Support Libraries, Multi-Window, Cordova, Material Dialogs, Maven, MVP, Volley, Parse, Moshi, GPS, Robotium, Google Analytics, Realm, RxJava, EventBus, Loaders, Samsung SDK, Android Studio, JUnit, RoboGuice, Firebase, OkHTTP, Volley
Libraries: Picasso, Glide, Fresco
Loopers, Libphonenumber, SSL, Retrofit, uiautomator, Gradle, Parcel, Dependency Injection, Push Notifications, SyncAdapters, ProgressBar, Glide, Git, Mockito, GSON, Dagger, Subversion, Espresso, Kickflip, FloatingActionButton, Jenkins, REST, RecyclerView Nougat, LeakCanary, JIRA, Google Cloud Messaging, ExoPlayer, MVVM, Bluetooth Low Energy, Material Design, Google Places
Role: Sr. Android Developer and Architect
Client:BizLog
Location: Issaquah, WA
Date:Jan 2019 – present
Link: https://play.google.com/store/apps/details?id=com.bizlog.triplog
Technical Role: (80%)
FUsed LiveData builder to combine Kotlin coroutines with LiveData Coroutines Asynchronous Flow to implement async sequence, or stream, of values in MVVM architecture
FIntegrated Android KTX to migrate code to Java using extension functions, extension properties, lambdas, named parameters and coroutines
FIndependently code ‘Record actual driving routes and view them on Google Maps’ user story
FIntegrated Kotlin Koin dependency injection to describe dependencies into modules and sub-modules, provide a factory bean definition and resolve a component dependency
FApply AES substitution–permutation network to encrypt data with a key and perform certificate pinning using TrustManager API
FEncrypt and decrypt the shared preference data with the AndroidX Security Library
FWork with Nearby Messages API and Proximity Beacon API to register beacons in the cloud, associate data with registered beacons as attachments, and maintain beacon registration data
FParsed backend JSON data from the network with Retrofit library, cache them to the Room database and observe changes through LiveData and load them into a Recyclerview
FWrote TDD test cases for receipt tracker algorithm and business tax calculator using Mockito and Robolectric for integration tests with 80% code coverage
FLoaded partial data flows from backend or database into the PagedList object on demand to reduce usage of network bandwidth and system resources
FWrote code to send logs or analytics to backend services and schedule asynchronous one-off or periodic tasks with WorkManager API
FIntegrated Firebase In-App Messaging for sending targeted, contextual messages for promotional offers, message to get users to subscribe or watch a video
FWorked on AWS Mobile Hub Cloud Logic mobile backend service feature to add business logic functions in the cloud and communicate with RestFul API from backend
FHold daily client calls to integrate Intercom SDK for customers retention with targeted messages and lead generation features
Non-Technical Role: (20%)
FCollaborate with offshore developers based in India (Bangalore City)
FCollaborate with other teams across the business and work with all development teams to create end-to-end products
FTake an active role in the architectural and technical decision making
FMentor junior engineers through programming sessions, and code, architecture review
Role: Sr. Android Developer
Client: Hyundai Motor America
Location: Fountain Valley, CA
Date:Oct 2017 – Dec 18
Link: https://play.google.com/store/apps/details?id=com.stationdm.bluelink
Technical Role:
FWorked on BlueLinkAI based feature sdk to include features like Vehicle Navigation Control, Voice Assist Dialing and Panic Notification
FCoded in Clean Architecture to separate stable business rules (higher-level abstractions) from volatile technical details (lower-level details) with MVP in presentation layer
FCreated algorithms to send advertisement packets, scan for advertisements and an communicate with BLE peripheral devices while sending advertisements in peripheral model
FIntegrated SciChart library to display real time vehicle statistical data on HeatMap charts, candlestick charts and error bars
FImplemented fingerprint and/or face recognition functionality Biometrics authentication on widgets with Blue Link subscription using BiometricPrompt API for Android P
FWrote service layer code and algorithms around BluetoothAdapters, BluetoothServices, car UUID Characteristics with BroadcastRecivers, EventBus and IBinder interface
FWorked on P2P mode to allow the NFC device to exchange data with other NFC peers
FCoded user stories like View charging status, manage charging schedules using material design, Dagger2, SOILD principles with multithreading
FWorked in Pair Programming from Driver and Navigator across several iterations in the project strategy to reduce the learning curve on the customs process and custom SDK
FIndependently integrate Google Calender API to access and modify private calendars and events, updates
FIncrease web traffic 125% by improving navigation, creating dynamic media sections, and adding social media plugins
FUsed Web views and integrated the feature Link to Privacy Policy to main menu
FUsed Firebase Realtime Database for data synchronization—every time data changes; any connected device receives that update within milliseconds
FUnit tested code with a TDD approach and work with QAs to create test suites
FIntegrated Kochava SDK to track all post-install activities from location events to purchases, and synchronize data to Mixpanel
Non-Technical Role:
FDiscuss intended technical approaches for upcoming work with the team and involving the team in collaboration sessions
FActively participating in development meetings
FWorking closely with the product and engineering team to craft, refine and implement product features
Role: NativeAndroid Developer
Client:Fidelity Bank
Location:New Orleans, LA
Date:Apr 2016 – Sep 2017
Link: https://play.google.com/store/apps/details?id=com.ifs.banking.fiid4450
Technical Role:
FAdded security by encrypting static and dynamic keys and sensitive application data with white-box cryptography using Arxan Key & Data Protection SDK
FIntegrated Android APK Authentication API to authenticate the users with the payment integrator via an Android Activity and prevent Android from terminating Play in the background during authentication
FWorked on Data Binding Library to support two-way data binding to receive data changes to a property and listen to user updates to that property at the same time
FImplement AESCrypt for securing data using the AES-256-CBC cipher and encode the encrypted data with Base64
FIntegrated MitekMiSnap SDK to capture ID documents like passports, id cardsm enable remote check deposit, verify a customer's identity
FDefined utility classes for easy to test functionality like account details, account authentication and several validations steps
FCreated static implementation to overcome limitation on mocking libraries, defined spy objects for better testing implementation
FRefactored AsyncTask with RxJava to use functional transformations over streams of events and remove callbacks and global state management
FImplemented Material Design components along with predictable animations like Swipe to delete and long press animations, making more user-friendly the application
FConverted all of the Relative/Linear layouts to ConstraintLayouts to flatten the view structure and improve performance
FImplemented features of Automatic session timeout using okhttp and retrofit libraries
FUsed Espresso for the automated UI testing recyclerview interactions and Mockito was used with Retrofit for mocking the API call (Mockserver)
FIntroduced the new Android O feature to provide a custom font for the whole application
FPerformed migration from using PushWoosh to UrbanAirship library to send push notification relating to latest updates and balance
Non-Technical Role:
FWork with open-banking team to deliver regulatory feature to grant user permissions for open banking process
FWork with remote project offshore in Sweden, managing various work schedules and time zones
FContinuous Integration through multiple environments to get rapid feedback about your work
FDevelop and produce functional solutions in accordance with architecture design standards and code standards
Role: Mid-levelAndroid Programmer
Client: American Well
Location: Boston, MA
Date:Jan 2015 – Mar 2016
Link: https://play.google.com/store/apps/details?id=com.americanwell.android.member.amwell
Technical Role:
FIntegrated ExoMedia media playback library with similar APIs to the Android MediaPlayer and VideoView that uses the ExoPlayer API to support for streaming (HLS, DASH, etc.)
FCreate custom/compound view for weather UI/UX and custom progress bar
FDelivered the new Android app with a significantly improved UX and design using the material design features; SlideMenu, toolbar, recycler view and animations
FUsed ORMLite for persisting Java objects to SQL databases for offline mode features
FImplement custom video processing lib for streaming H.264, H.263, AMR, AAC using RTP
FImplemented media sessions and debugging audio issues on LG devices when playing audio files
FChanged old Volley library implementation to Retrofit/okhttp lib to call external Restful API
FImplemented error tracking mechanism using Leak canary, flurry analytics, Crashlytics and Jira
FUsed Google Protocol Buffers Nano for serialization/deserialization of data in different formats for storage and/or communication.
FPerformed phased rollouts of new features for targeted group or percentage of users directly with Event tracking from Optimizely SDK
FImplemented WebViews to provide easy access to shop online feature
FIntegrated Samsung In-App Purchase payment service to buy virtual itemsand unlock advance features
FIncorporatedZBar barcode scanner library for reading bar codes from various sources, such as video streams, image files and raw intensity sensors
FIntegrated payment methods such as Android Pay, Visa API, MasterCard API
FLeveraged Google In-App Purchasing API to offer digital content and subscriptions, purchase maps
Non-Technical Role:
FInvolve in the user experience design process, from wireframes and mockups through implementation and release
FControl changes to end-to-end system designs to determine impact on applications within domain
FWork closely with the UI design team to execute the design as closely as possible, staying within the design guidelines of the brand
Role: Android Developer
Client: Dolgencorp, LLC
Location:Goodlettsville, TN
Date:May 2014 – Dec 2014
Link: https://play.google.com/store/apps/details?id=com.dollargeneral.android
Technical Role:
FImplemented CartCalculator algorithm to abstract all the logic of network retrials, error handling and callbacks optimization using queues to avoid directly calling API endpoints from the activities
FIncreased security in local Sqlite databases with SQLCipher encryption and decryption
FCommunicated with backend server using Volley and make multiple concurrent network connections with support for request prioritization
FCreated navigation and refactoring static fragments with Fragment Transaction and handling the backstack for a better experience
FDefined deep links with account details and third-party implementation
FRefactored unorganised spaghetti codebase into MVC architecture following SOLID principles
FResolved intra-library dependencies and replaced the standard System.loadLibrary call using ReLinker library
FUsed Android content providers for implementing features like sending E-mails, sharing using Facebook, Email, Twitter, SMS, etc., from the app
FExtensively worked on memory leaks, data offline usage, push notifications, content providers, multiple form factors, accounts and sync on Android
FMade a distinction between development and production versions of the app each with their distinct credentials and settings in the backend using Urban Airship
FUsed the SQLiteOpenHelper to connect with the local database and perform CRUD operations.
FCoded Custom Views and animations as per iOS app prototype and implement Android components to specifications
FBug fixing from the tickets assigned in JIRA and working independently on most features, reporting to the team leader daily
FDecreased memory leak by 90% using AsyncTaskLoaders, weakReferences and LeakCanary tool
Non-Technical Role:
FUnderstand the various phases of the software development lifecycle
FReview and understand component designs to build knowledge and understand how these fit within an end-to-end system design
FSupport deployment of applications internally or to customers and provide post-deployment support
SUMMARY
EDUCATION
PERSOANL PROJECTS
SKILLS
EXPERIENCE