I'm a Software Engineer from Egypt focused on Mobile Engineering, with experience in Flutter and a growing focus on Native Android development.
I enjoy understanding how mobile applications work beneath the UI — from Activity and Fragment lifecycles to ViewModels, API communication, modular architecture, SDK integration, and real-time audio/video experiences.
My approach is to build software that is not only functional, but also maintainable, testable, and structured for future development.
|
Native Android with Kotlin and XML, alongside cross-platform development with Flutter and Dart. |
MVVM, Clean Architecture, modular design, separation of concerns, and maintainable code. |
|
Exploring video calling, voice communication, streaming, and Agora RTC SDK integration. |
Mobile-to-backend integration, REST APIs, authentication, Node.js, and PostgreSQL. |
Platform Development & UI
| Area | Technologies and capabilities |
|---|---|
| Languages | Kotlin, Java |
| Android Platform | Android SDK, application components, permissions |
| UI Development | XML layouts, Android Views, resource management |
| UI Integration | View Binding, Data Binding |
| Lifecycle | Activity, Fragment, and Fragment view lifecycle |
| Presentation | ViewModel, UI state, lifecycle-aware behavior |
| Build System | Gradle, dependencies, modules, build types, product flavors |
| Debugging | Logcat, runtime inspection, build and dependency troubleshooting |
Engineering focus: building Android screens, connecting UI components to presentation logic, managing lifecycle-related behavior, and tracing how data flows through an existing application.
Architecture, State & Asynchronous Operations
- MVVM: Separate UI rendering from presentation logic using ViewModels.
- ViewModel state: Represent loading, success, empty, and error states.
- Coroutines & Flow: Work with Kotlin's asynchronous programming and reactive data streams.
- RxJava & RxAndroid: Understand observable operations, schedulers, subscriptions, and disposable resources in existing projects.
- Clean Architecture: Separate presentation, domain, and data responsibilities where appropriate.
- Modular Android: Understand how app modules communicate with shared modules and libraries.
- Repository pattern: Isolate data access from business logic.
- DTOs & mappers: Transform API models into application models.
- Dependency injection: Understand dependency provisioning and the role of tools such as Hilt.
Android Libraries, AAR & SDK Integration
- Work with Android application modules and reusable library modules.
- Understand the Android Archive (AAR) packaging format and how Android libraries are consumed.
- Configure Gradle dependencies and repositories.
- Integrate external SDKs into Android applications.
- Understand SDK initialization, configuration, permissions, and required application setup.
- Trace dependency relationships and resolve library-related build failures.
- Explore reusable components and library boundaries in multi-module projects.
My focus includes integrating real-time communication capabilities into mobile applications and understanding the lifecycle of a call.
|
|
|
|
Core engineering concern: managing the relationship between the RTC engine, Android lifecycle, local and remote streams, user permissions, and call state.
Application Development
- Build cross-platform mobile applications using Flutter and Dart.
- Create reusable widgets and responsive interfaces.
- Organize code through feature-based structures and layered architecture.
- Manage application state using BLoC and event-driven updates.
- Implement navigation, forms, validation, and application workflows.
- Connect UI components to APIs and backend services.
- Model loading, success, empty, and failure states.
- Implement reactive interfaces and real-time application features.
- Maintain separation between presentation, business logic, and data access.
| Engineering area | Capabilities |
|---|---|
| API Integration | REST APIs, JSON serialization, request and response handling |
| Authentication | Login flows, token-based authentication, protected endpoints |
| Backend Development | Node.js, Express, TypeScript |
| Database | PostgreSQL and relational data modeling |
| Cloud Services | Firebase and Supabase integration |
| Data Architecture | DTOs, mappers, repositories, data sources |
| Real-Time Systems | Socket.IO and event-driven communication |
| Reliability | Input validation, failure handling, API contracts |
My backend knowledge helps me understand mobile features across the full request lifecycle — from a user interaction, through the API, to the underlying data source and back to the UI.
|
|
|
|
|
01 Understand Requirements & existing code |
02 Design Responsibilities & data flow |
03 Implement Small, maintainable changes |
04 Validate Debugging & testing |
- Separation of concerns — each component has a clear responsibility.
- Maintainability — code should be understandable by the next engineer.
- Lifecycle awareness — UI and asynchronous work should respect component lifecycles.
- Reliability — handle failures and edge cases rather than only the happy path.
- Modularity — reuse existing components and keep module dependencies intentional.
- Pragmatism — apply architectural patterns where they provide real value.
I use competitive programming to strengthen algorithmic thinking, data structures, problem decomposition, and analytical reasoning.



