Ahmed Alamir, Architecture Developer in Melbourne, Victoria, Australia
Ahmed Alamir

Architecture Developer in Melbourne, Victoria, Australia

Member since June 11, 2014
Ahmed is a veteran developer who has been writing code for about two decades. His experience with Android started with Android's first release. He is a big-picture thinker whose experience transcends mobile development into the entire software delivery pipeline. His experience working with a wide variety of clients, from startups testing the waters to Australia's largest bank, reflects Ahmed's leadership skills, collaborative nature, and solid work ethic that doesn't compromise on quality.
Ahmed is now available for hire

Portfolio

  • Self-employed
    Android, Agile Software Development, REST, JSON, Room, Flow, Coroutines...
  • Arq Group
    Firebase, REST, Git, Kotlin, Java, Android, Agile Software Development...
  • Kasra.co (via Toptal)
    Deep Linking, REST, Android, Android Development, Android SDK

Experience

Location

Melbourne, Victoria, Australia

Availability

Part-time

Preferred Environment

ITerm, Git, Android Studio, MacOS

The most amazing...

...things I've coded are algorithms for indexing 16GB of plain text, keeping overhead less than 20%, and search time under 300 milliseconds on a mainstream PC.

Employment

  • Senior Android Developer

    2021 - PRESENT
    Self-employed
    • Uplifted the new joiner experience for a mobile banking app, resulting in users 100% onboarding via the app without the need to visit a branch.
    • Led a mobile team to bootstrap a custom payment app for an independent Verifone terminal, overseeing the entire project from conception to first market release.
    • Collaborated with back-end and security teams to fortify the payment app running on an independent payment terminal to achieve the required UX without compromising data security and PCI standards.
    Technologies: Android, Agile Software Development, REST, JSON, Room, Flow, Coroutines, Android Architecture Components, Kotlin, Android SDK, Android Development
  • Senior Software Engineer

    2015 - 2021
    Arq Group
    • Explored the possible solutions to tackle the client's business aspirations and described the structure and behavior of the proposed software solution to project stakeholders.
    • Wrote and reviewed code that closely maintains banking regulations and security practices.
    • Participated in refactoring legacy code to fit into MVVM architecture and allow for better unit test coverage.
    • Worked with the client's back-end team to fine-tune their structure to serve mobile apps better.
    • Hosted knowledge-sharing sessions and encouraged team members to engage in presentations and activities.
    • Mentored developers and provided technical guidance for solving difficult and illusive bugs.
    Technologies: Firebase, REST, Git, Kotlin, Java, Android, Agile Software Development, Android Architecture Components, Model View Viewmodel (MVVM), Model View Presenter (MVP), Android Development, Android SDK
  • Freelance Android Developer

    2015 - 2016
    Kasra.co (via Toptal)
    • Designed and implemented the app from the ground up, making sure to make ends meet between the existing back end and the desired UI.
    • Worked closely with the UX team to meet design specifications and ensure comparability with a wide range of Android device sizes.
    • Added background loading and caching to enable users to consume content offline.
    • Implemented syncing for user settings (favorites, bookmarks, etc.) between different user devices.
    • Integrated the app with several social media services, e.g., branch.io for deep linking and Facebook/Twitter for logging in and content sharing.
    Technologies: Deep Linking, REST, Android, Android Development, Android SDK
  • Freelance Android Developer

    2015 - 2015
    Fatsack Outdoors (via Toptal)
    • Ported an iOS app to Android.
    • Created Android UI from provided Photoshop templates.
    • Employed a mix of local and in-the-cloud strategy for data storage and caching.
    Technologies: JSON, Parse SDK, Android, Android Development, Android SDK
  • Freelance Android Developer

    2014 - 2015
    Rolltech, Inc. (via Toptal)
    • Developed the Android version of a Rolltech bowling score tracking app.
    • Converted iOS app screens to Android ones.
    • Implemented the app to consume a real-time API and maintained a responsive user-friendly UI.
    Technologies: JSON, Retrofit, Android, Android Development, Android SDK
  • Freelance Developer

    2014 - 2014
    Terminal.com (via Toptal)
    • Created reusable Linux-based snapshots. Each snapshot contained popular open source software installed, configured, and ready to use.
    Technologies: Linux
  • Development Lead

    2014 - 2014
    Inmobly
    • Led a team of six developers, making design decisions and enforcing code quality practices.
    • Used adaptive algorithms in the software to predict user future content consumption based on previous behavior.
    • Achieved goals of lowering network congestion and decreasing internet bills.
    Technologies: Python, Android, Android Development, Android SDK
  • System Designer

    2012 - 2013
    CGI
    • Redesigned SQL queries, significantly cutting execution time from five hours to 15 minutes.
    • Redesigned C-based administration software for power plants into a server/client architecture.
    • Ensured full backward compatibility for the new design.
    Technologies: SQL, C#, JavaScript
  • Senior Developer

    2011 - 2011
    CIT MobiDiv
    • Wrote a lossless algorithm to compress images in as few SMS packets as possible.
    • Integrated the application with the messaging system on various mobile platforms.
    • Used Facebook/Twitter API to publish images from the application.
    Technologies: J2ME, Android, Windows Mobile, Android Development, Android SDK
  • Developer

    2007 - 2011
    Harf IT
    • Designed and implemented algorithms for indexing both plain text and XML, with the ability to execute XPath queries on indexed data.
    • Kept search and retrieval performance under 300ms for 16GB of data on a single mainstream PC, with index storage overhead of 15%.
    • Wrote COM wrappers to provide search functionality to other platforms.
    • Wrote a plugin to provide advanced Arabic support for SQL Server full text search.
    Technologies: Win32 API, C++

Experience

  • ANZ Mobile App
    https://www.anz.com.au/ways-to-bank/mobile-banking-apps/

    The ANZ App makes daily life easier with great banking and payment features to manage your money.

    I participated in refactoring the old design to fit into MVVM architecture and allow for better unit test coverage. I also rewrote parts of the Java codebase into Kotlin, removing redundancies and code smells by taking advantage of Kotlin language features.

  • NAB Mobile App
    https://www.nab.com.au/personal/online-banking/mobile-banking-app

    A mobile banking app for the National Australian Bank.

    I integrated NPP, the Australian industry-wide payment platform, into an existing codebase with a variation of clean architecture. I implemented Tap & Pay and Instant Card features, handling NFC payments and incorporating an SDK provided by VISA. I worked with legal and security teams to enforce the bank's non-functional requirements.

  • Rolltech Bowling — Android

    Rolltech is a bowling score tracker wherein users can automatically track scores and statistics in real time, share bowling experiences with friends, and compete globally without ever leaving their favorite bowling center.

  • Fatsack Outdoors — Android

    Fatsack Outdoors is the most user-friendly all-inclusive fishing app for the novice and professional angler. Join or administer a tournament, log your catches, organize your fishing tackle, then connect with millions of anglers and brands around the world all in one fishing app.

  • Kasra: News and More

    Kasra delivers buzzing social articles about celebrities, lifehacks, recipes, and quizzes to the Arab youth.

    Kasra enables readers to follow their favorite writers, bookmark the articles they like, share them over social networks, and sync it all across all their devices.

  • ANZ Plus
    https://www.anz.com.au/plus/

    This is ANZ's way of revolutionizing how banking works. The app was built from the bottom up to be a reactive app, using Kotlin flows and gRPC. The data on the screen is always up-to-date, no matter how many devices you use.

    I worked in the JOIN space, uplifting the onboarding experience for new customers. I also interviewed new candidates for ANZ.

  • Coles Mobile App

    Coles is a major Australian supermarket, retail, and consumer services chain. They recently undertook a major mobile app overhaul, and I joined their Android team.

    I mainly implemented the "Multiple shopping lists" feature in the Android app, which involved uplifting existing features and adding new interactions with back-end APIs. I also performed mini refactoring and convincing Compose and Flows to tango without stepping on each other's feet.

  • Smart Hospitality

    An Android app running on a Verifone payment terminal that allows connecting the terminal to existing POS machines, keeping customers' orders up to date. It also provides sought-after features like allowing a group member to pay their share and leave, split the bill evenly, or split by individual items.

    I was in charge of the front-end architecture of the project, kicking off the development and leading the team until the app's first release.

  • Android Customization: How to Build a UI Component That Does What You Want (Publication)
    It is not uncommon for developers to find themselves in need of a UI component that is either not provided by the platform they are targeting or is, indeed, provided, but lacks a certain property or behavior. The answer to both scenarios is a custom UI component. The Android UI model is inherently customizable, offering the means to create custom UI components in various ways.
  • Needle in a Haystack: A Nifty Large-scale Text Search Algorithm Tutorial (Publication)
    When coming across the term "text search," one usually thinks of a large body of text which is indexed in a way that makes it possible to quickly look up one or more search terms when they are entered by a user. This is a classic problem in computer science to which many solutions exist. But how about a reverse scenario? What if what's available for indexing beforehand is a group of search phrases, and only at runtime is a large body of text presented for searching?

Skills

  • Languages

    Kotlin, Java, C++, C, Python, JavaScript, C#, SQL
  • Frameworks

    Dagger 2, Mockito, Espresso Testing Framework, Android SDK, gRPC
  • Libraries/APIs

    Android Architecture Components, Butterknife, Google Gson, Retrofit 2, Google Maps, Win32 API, Retrofit, Parse SDK
  • Tools

    SourceTree, Android Studio, Microsoft Visual Studio, Git, ITerm, Flow
  • Paradigms

    Model View Viewmodel (MVVM), Object-oriented Programming (OOP), Test-driven Development (TDD), Agile Software Development, REST, Model View Presenter (MVP)
  • Platforms

    MacOS, Android, Windows, Symbian, Linux, Windows Mobile, J2ME, Firebase
  • Storage

    SQLite, MySQL, JSON
  • Other

    Mobile Banking, Leadership, Architecture, Android Architecture, GitFlow, Software Development, Android Development, OkHttp, Deep Linking, Room, Coroutines, Compose

To view more profiles

Join Toptal
Share it with others