Summary
Software developer with a focus on object-oriented programming and modern design principles. Specialized in Java and Kotlin with experience in Android application development. Proficient in implementing reactive programming and event-driven architectures. Enjoys learning and has a willingness to pivot to new technologies. Highly motivated individual with strong communication and interpersonal skills.
Technical Skills
Programming Languages: Kotlin and Java. Basic knowledge in C++, HTML/CSS.
Tools and Libraries: Android Studio/IntelliJ IDEA, Kotlin Coroutines, Firebase SDKs, GIT/GitKraken, JUnit, Mockito, Espresso, Gradle, Gson.
Android Jetpack & SDK: Knowledge and application of core SDK components and libraries including LiveData, Lifecycles, Room, ViewModel, Navigation, Paging, WorkManager, Fragment, Layout, Material Components, Hilt, Android KTX and AppCompat.
Fundamental knowledge of DS/A and complexity analysis.
Projects and Experience
Developed an Android-based collaborative data sharing application, leveraging MVVM, modern UI/UX design techniques and asynchronous data-streaming across a distributed system.
Front-End:
Single-activity architecture with dynamic fragment management to facilitate shared element transitions.
Reactive UI updates achieved through LiveData and StateFlow, augmented with debouncing mechanisms to ensure efficient data handling and network usage, while also maintaining real-time responsiveness to data source modifications.
Various components including, BottomSheetDialogFragments, Dialogs, Navigation Drawers, Toolbar, BottomAppBar, FAB, Toasts/Snackbars, etc, employing Material Design.
In-depth use of RecyclerView: ListAdapter, DiffUtil, ItemTouchHelper, integrated callback systems for state changes and item interactions, and adaptive view holders for responsive UI handling.
Utilized XML designs including CoordinatorLayout, MotionLayout, and ConstraintLayout.
Back-End:
SQLite and Room for local data storage, coupled with cloud-based data solutions, to facilitate data synchronization across multiple devices and users.
Designed a delta syncing system, utilizing polymorphic data classes for differential updates, to sync only relevant changes from local to cloud-based storage.
Implemented synchronization mechanisms using in-memory caches and timestamp/versioning for conflict resolution and maintaining data consistency.
Integrated Kotlin Coroutines across the application to manage asynchronous operations with local and cloud storage, employed Coroutine Flows for real-time data streams.
Adopted structured concurrency principles, ensuring proper scoping and management of tasks to prevent memory leaks and enhance app stability and error handling.