Scroll To View More
Mehedi Hasan Khan, Software Architecture Developer in Dhaka, Dhaka Division, Bangladesh
Mehedi Hasan Khan

Software Architecture Developer in Dhaka, Dhaka Division, Bangladesh

Member since September 26, 2013
Mehedi is a top senior software engineer with a B.Sc. in computer science and engineering and a specialization in mobile app-centric ecosystems. With over five years of experience designing, architecting, and developing native Android and iOS apps, he has expert knowledge of the Android/iOS operating systems and their underlying Linux/Unix kernel, Java, Swift, Kotlin, Scrum, clean architecture, and more.
Mehedi is now available for hire

Portfolio

  • Freelance
    Android, Java, iOS, Swift, SQL, C#, XML, PHP
  • iVerified
    Android, iOS, Java, Swift, OpenCV, Vision Framework (Core ML), Tesseract
  • 1stScreen
    Java, Swift, Android, iOS, Maven, Cocoapods, Gradle

Experience

  • Java, 6 years
  • Git, 5 years
  • Android, 5 years
  • iOS, 4 years
  • Software Architecture, 4 years
  • Agile Software Development, 3 years
  • Machine Learning, 1 year
Dhaka, Dhaka Division, Bangladesh

Availability

Full-time

Preferred Environment

Android Studio, Xcode, Eclipse, AppCode, Mac OS X

The most amazing...

...thing I've developed is an identity management app called Credntia, which can identify and scan identification documents using the device's camera.

Employment

  • Independent Android/iOS Developer

    2011 - PRESENT
    Freelance
    • Developed an Android-based taxi booking system with two separate Android apps and a database server based on a RESTful API. Passengers were able to search for nearby taxis and filter by type of car available as well as select from nearby places of interest (e.g., airports, train stations, hotels, restaurants) or designate a location on a map as their target destination. After sending out their request, taxi drivers would then be notified via push notification, which would include the details of the request and the option to accept or decline. If accepted, the passenger would be notified by push message and a live route to the pickup location would be sketched on a map, which would track the locations of both the driver and the passenger. The pair could also communicate by sending messages through the app. Finally, passengers could pay through the app using PayPal or credit card as well as rate the driver's service at the end of the ride.
    • Developed an Android app for a courier delivery company, which connected to a central server through a RESTful web service. The app was used to track the delivery of packages and send reports back to the server. Supervisors could track deliveries and review delivery reports through an online control panel. In addition, a digital signature verification algorithm was implemented as part of the job.
    • Developed an Android app for finding childcare services. Users were able to perform location-based searches, read client reviews, and contact childcare centers, all through the application. Further, the app provided driving directions and real-time navigation to childcare centers, as well as the ability to both review childcare centers and report their services to local authorities, if necessary.
    • Implemented several image warping algorithms on Android, including bulge effect, explosion, implosion, etc.
    • Developed an Android app for budget tracking and automatic budget population which would take in data input from the user (e.g., location, profession, income, expenses) and generate a suggested budget using statistical data that would both keep the user's constraints in mind and maximize savings.
    • Developed an Android app which allowed users to search for party venues based on their current locations. Included such functionality as: filtering search results based on distance, cost, and user ratings; adding new venues to the app's database; earning credits after rating venues that are redeemable at said venues; and buying party credits or entry passes through PayPal or by credit card.
    • Developed an Android app for a private security company used by their security guards to report guard patrol activities, arrests, or incidents to their supervisors. Through GPS, barcode scanning, and advanced camera features, the app was able to ensure that the guards were patrolling as their duty required. Further, a desktop client, developed in C# .NET, was also provided to allow supervisors to view all data and reports generated by the app. Finally, the app allowed both guards to print traffic tickets and reports from the app using a Bluetooth printer, and supervisors to communicate and assign tasks to guards from their desktop through push messaging.
    • Utilized Git and Jira for source control and issue tracking. Developed using MVC with Agile methodologies.
    • Developed an Android app which allowed users to take or upload photos and apply basic filters before sharing them on Facebook and Twitter. Further, users could schedule their posts to upload at a certain time.
    Technologies: Android, Java, iOS, Swift, SQL, C#, XML, PHP
  • Android/iOS Developer

    2018 - 2018
    iVerified
    • Improved the scanning of physical identity documents using the device camera by optimizing the detection and processing pipeline.
    • Used OpenCV and machine learning to better detect ID documents and classify the data.
    • Used Tesseract to extract data from image segments.
    • Designed and implemented a two-way data sync process that ensures that the documents and verification data are kept in sync between the server and the apps in a secured manner.
    • Set up continuous deployment (testing, building, signing and release) with Fastlane and a remote Jenkins server.
    Technologies: Android, iOS, Java, Swift, OpenCV, Vision Framework (Core ML), Tesseract
  • Senior Android/iOS Developer

    2017 - 2018
    1stScreen
    • Wrote SDKs in Java and Swift for Treasuredata based on their official SDK. Improved local caching, optimized memory usage, added scheduled batch uploads in the background, and improved the fluidity of the API.
    • Wrote the 1stScreen SDK in Java for Android and in Swift for iOS to be used by developers to collect numerous kinds of analytics data, with device data collection made easy and a default fallback strategy for cases when hardware or permission might be unavailable.
    • Deployed and released the Android SDK to a private Maven repo so that only the authorized developers can access the SDK.
    • Deployed and released the iOS SDK to a private Cocoapods repo so that only the authorized developers can access the SDK. The library is distributed as a binary.
    Technologies: Java, Swift, Android, iOS, Maven, Cocoapods, Gradle
  • Lead Engineer

    2016 - 2018
    Credntia
    • Led the planning, architecture, development, scaling, and deployment of the Android and iOS apps.
    • Chose a new architecture for the iOS app for better performance as well as suggested new DBMS and security enhancement for proper encryption and protection of data.
    • Designed and implemented a new clean architecture for the Android app for better performance, stability, and scale. Used Dagger2 for dependency injection, RxJava, and reactive extensions for reactive programming support.
    • Worked with the team to design data structure and infrastructure for the Parse and Firebase (later) back-end.
    • Worked with the team to design a secured REST API for public exposure.
    • Developed a new barcode scanner library for Android based on Google's Mobile Vision API.
    • Developed an OpenCV-based mobile vision library that can detect ID documents (i.e., passport, driver’s license) in real time using the device camera.
    • Worked on achieving HIPAA compliance for the Android and iOS apps. Some changes had to be made to meet the business associate requirements for HIPAA. Made changes to terms and privacy policy visible to the user, made changes to acquire the consent of the user explicitly at the moment of scanning a medical ID. All sensitive data were protected with 256-bit AES encryption and stored locally. Data were uploaded to a secured server over HTTPS only after the user's consent, and the user could choose to delete all data from server or device at any time. Access to data was protected by two layers of security. First of all, the user had to log in with their username/password and then their local session would expire after a minute of inactivity (idle, switched to another app, turned the screen off, etc.). The user needed to enter their local passcode after session expiration to regain access to data, and the encrypted database would remain locked until successful passcode verification. Extra security measures were taken to blur images shown in the recent apps list so that no sensitive data would be exposed through those.
    Technologies: Android, iOS, Firebase, Parse, Encryption, OpenCV, Java, Swift, Go, JWT, RxJava, RxSwift, Fabric, Mixpanel, Realm, Dagger
  • Lead Engineer

    2015 - 2017
    PartyLife
    • Did requirement analysis with the founders and made a detailed technical specification.
    • Designed the system architecture and defined the infrastructure components based on the requirements and business goals.
    • Wrote a detailed specification for the required back-end service and led the web team to build a robust REST API.
    • Developed the native Android and iOS apps with social features like profiles, messaging, search, etc.
    • Designed the continuous development, internal testing, and deployment pipeline for continuous improvement of the platform.
    Technologies: Java, Swift, Android, iOS, PHP, CodeIgniter, MySQL, Google Maps API, Location APIs, Zooz API, Facebook API, SqLite, REST, Cache, Image Processing
  • Lead Android/iOS Developer

    2013 - 2015
    Cabeze
    • Developed Android and iOS apps for an Uber-like service. Developed both driver and passenger apps.
    • Developed innovative UI libraries (sliding drawers, floating views, etc.) to build a modern yet smooth user experience.
    • Utilized Google Maps API and device's GPS for optimized turn by turn driving navigation and ETA calculation.
    • Developed, tested, and optimized data refresh strategy for maps to provide an almost real-time experience.
    • Developed, tested, and optimized a push- and pull-based communication strategy between driver and passenger apps to ensure a smooth overall experience.
    • Integrated payment gateways, e.g., PayPal and credit/debit cards.
    Technologies: Android, iOS, Java, Objective-C, REST, SQLite, Google Maps, Geolocation APIs, PayPal API
  • Android Developer

    2013 - 2013
    Handup
    • Developed a collaborative voting app for secure voting.
    • Developed a text input control based on Edittext that could identify, categorize, and validate entered text using regular expressions and showed added items as chips (https://material-ui.com/demos/chips/).
    • Developed a UI widget that allowed the user to drag and drop the items, e.g., voting options, to reorder and merge in order rank the options.
    • Wrote a horizontal bar chart widget and a pie chart widget to show voting statistics in an interactive way.
    • Developed a statistical ranking algorithm and implemented that for ranked votes.
    • Used geofencing for notifying users when they are in a designated voting location. Used GPS and other location APIs to filter ongoing location-based votings.
    Technologies: Android, Java, OpenGL ES, Regular Expression, REST, SQLite, Google Maps API, GPS

Experience

  • Credntia (Development)
    http://play.google.com/store/apps/details?id=com.credntia.credntia

    Credntia is the missing piece of your digital wallet. The app can scan identification documents (driver’s license, passport, etc.) and store them securely. Computer vision and OCR are used to scan the documents. 256 bit AES encryption is used to keep all local data secured.

  • iVerified (Development)

    The ultimate free, simple, safe, and reusable identity and age verification app for Android and iOS.

  • PartyLife (Development)

    I developed the Android and iOS apps for the social dating platform for party lovers called PartyLife.

  • Handup (Development)

    I developed the Android version of the collaborative voting and decision making app called Handup.

  • Cabeze Taxi (Development)

    This taxi booking system consists of two Android apps: one for the passenger, and another for the driver. Passengers can search for nearby taxis by choosing pickup and destination locations. The search results can be filtered by car type. After a client sends out a request, nearby taxi drivers are notified through the app, after which they accept or decline the request. Upon acceptance of the job, the passenger is granted access to information about the driver and can view the driver's progress in real time using live navigation on a map. Both the passenger and the driver can communicate with each other via the app. Finally, the passenger can pay through the app by credit card or with PayPal, as well as rate the driver's service.

  • Secured Preference Store (Other amazing things)
    https://github.com/iamMehedi/Secured-Preference-Store

    A cryptography library and a SharedPreferences wrapper for Android that encrypts the content with 256 bit AES encryption. The Encryption key is securely stored in device's KeyStore.

  • CVScanner (Other amazing things)
    https://github.com/Credntia/CVScanner

    An OpenCV based library for Android to scan ID documents or passports.

  • StepBuilder Generator (Other amazing things)
    https://plugins.jetbrains.com/plugin/8276-stepbuilder-generator

    IntelliJ IDEA/Android Studio plugin to generate a builder class following the Step Builder pattern.

  • MVBarcodeReader (Other amazing things)
    https://github.com/Credntia/MVBarcodeReader

    A barcode scanner library for Android. Uses the Google Play Services' mobile vision API for barcode detection.

  • Barnc (Development)

    This is a complete data backup and social business platform. The Android app lets you back up all your device data, i.e., contacts, photos, media, etc., to its own server or Dropbox/Box/Onedrive. The user can create a business profile along with digital business cards and then share those cards or any other media from within the app with his business associates. There is also a real-time text, audio, and video chat system through which the user can conduct meetings.

  • Automated Budget Planner (Development)

    Generates budget proposals based on user income and expense data, with the help of statistical data from a database.

  • Astraea - Law Farm Management System (Development)

    A distributed database system developed in C# using .NET Windows Forms and an Oracle DB. The software provides a system for law firms to manage case files and client information. Administrators can assign cases to groups or individuals through the system and keep track of case progress. Further, the software includes an accounting system to track the firm's payments. The system has a public notice board as well as an internal messaging system. Additional discussion threads can be opened for any issue. Finally, a scheduling system was also implemented for members, clients and cases, which notifies respective parties via email and SMS when a task is scheduled.

  • Childcare Finder (Development)

    This Android app provides information about childcare or day care facilities. Users can search for nearby facilities by address, postcode, or a location chosen on a map. Reviews of each service provider are also displayed, as well as driving directions to a chosen facility. In addition, users can rate or review service providers.

  • Social Automator (Development)

    This Android app enables users to post text or images to Facebook and Twitter from their device. Users can schedule certain text or images to be shared at a certain time through their Facebook or Twitter accounts.

Skills

  • Languages

    SQL, Swift, Java, Kotlin, JavaScript, GraphQL, C, C#, Objective-C, C++, Python, PHP, CSS, HTML
  • Frameworks

    ReactiveCocoa, Android SDK, iOS SDK, MapKit, UIkit, Cocoa Touch, Spring Boot, Core Data, .NET, Dagger 2, CodeIgniter, Spring Android, Django
  • Libraries/APIs

    Google Gson, REST APIs, CocoaPods, Google Maps, Facebook API, Jackson, Node.js, Reactive Extensions, Protobuf, OpenCV, Twitter API, PayPal API, OpenSSL, Google+ API, ActionBarSherlock, NineOldAndroids, JavaMail
  • Tools

    Bitbucket, GitHub, Git, Xcode, Android Studio, Gradle, Eclipse IDE, AppCode, IntelliJ IDEA, Microsoft Visual Studio, Adobe Photoshop, Jira
  • Paradigms

    Reactive Programming, REST, SOLID Principles, Model View Controller (MVC), Object-oriented Programming (OOP), Design Patterns, HIPAA Compliance, Functional Reactive Programming, Socket Programming, Agile Software Development, Unit Testing, Waterfall Development
  • Platforms

    iOS, JSE, Android, WordPress, NetBeans, Windows, Ubuntu, Oracle, Linux, Java ME, Java EE, Arduino, Windows Mobile
  • Storage

    Realm, SQLite, Cache, Database Modeling, Oracle PL/SQL, MySQL, Microsoft SQL Server, Datacom
  • Other

    Social Media Integration, User Experience (UX), Algorithms, Data Structures, Software Architecture, XMPP, RESTful Web Services, Multithreading, Reactive Streams, Cryptography, Computer Vision, Mobile Security, ejabberd, VoIP, Security, OAuth, Deep Learning, Artificial Intelligence (AI), Machine Learning, Game Development, Network Programming, SOAP, RDLC+ReportViewer, AI Programming, Apache Commons

Education

  • Bachelor of Science degree in Computer Science and Engineering
    2008 - 2013
    Bangladesh University of Engineering and Technology - Dhaka, Bangladesh
  • Higher Secondary Certificate degree in Science
    2005 - 2007
    Notredame College - Dhaka, Bangladesh
Certifications
  • IELTS
    JANUARY 2017 - DECEMBER 2018
    British Council
I really like this profile
Share it with others