Omar Fahmy, Back-end Developer in London, United Kingdom
Omar Fahmy

Back-end Developer in London, United Kingdom

Member since July 2, 2020
Omar is an iOS developer with over two years of experience as a freelance app developer. He has several apps in the App Store written in SwiftUI, as well as UIKit and SpriteKit. Omar previously worked at iManage as a back-end Scala developer. He delivered performance-intensive back-end services for the iManage AI platform, which the world's top law firms trusted in challenging on-premise deployments.
Omar is now available for hire

Portfolio

  • Freelance
    Swift, SwiftUI, SpriteKit, UIKit, Xcode, Mobile Development, iOS, Git...
  • iManage
    Akka Streams, Functional Programming, JVM, Memory Profiling, Akka Actors...
  • iManage
    Akka Streams, Functional Programming, JVM, Memory Profiling, Akka Actors...

Experience

Location

London, United Kingdom

Availability

Part-time

Preferred Environment

Slack, MacOS, Xcode

The most amazing...

...thing I've built is a control system for an unstable wing during my degree, which had to perform real-time signal processing on an Arduino inside a wind tunnel.

Employment

  • App developer

    2020 - PRESENT
    Freelance
    • Developed an educational app to teach students chemistry using interactive simulations, available for iOS and iPad.
    • Created an educational app to teach students physics using interactive simulations for iOS and iPad.
    • Architected a framework to share common components between both apps.
    • Included comprehensive support for VoiceOver throughout both apps.
    Technologies: Swift, SwiftUI, SpriteKit, UIKit, Xcode, Mobile Development, iOS, Git, Unit Testing
  • Senior Software Engineer

    2019 - 2020
    iManage
    • Received the award for engineering excellence in our annual employee awards out of over 600 employees.
    • Resolved numerous memory leaks by profiling the application using VisualVM, usually in response to high-pressure customer incidents.
    • Improved the speed of one of the document ingestion stages exponentially.
    • Simplified the integration testing by removing the dependency on a dedicated integration testing VM so that any developer could easily run the tests locally while also freeing up the VM for other uses.
    • Added instrumentation using Graphite and created default Grafana dashboards to facilitate application monitoring, saving time when diagnosing production issues.
    Technologies: Akka Streams, Functional Programming, JVM, Memory Profiling, Akka Actors, Linux, SQL, MongoDB, PostgreSQL, REST APIs, ScalaTest, Docker, Java, Scala, Back-end Development, Play 2, Java VisualVM, Akka, Play Framework, Git, Unit Testing
  • Software Engineer

    2017 - 2019
    iManage
    • Delivered a performance-intensive back-end service that provided document processing for law firms.
    • Reduced the speed of two of our document processing algorithms by 50% and 90%.
    • Developed a feature to calculate precision and recall for user-trained data-extraction models using cross-validation and implemented it using Akka Streams.
    • Rewrote existing complex imperative code as purely functional code, which enabled me to add thorough unit tests for a complex part of the application—reducing bugs and improving maintainability.
    Technologies: Akka Streams, Functional Programming, JVM, Memory Profiling, Akka Actors, Linux, SQL, MongoDB, PostgreSQL, REST APIs, ScalaTest, Docker, Java, Scala, Back-end Development, Play 2, Java VisualVM, Akka, Play Framework, Git, Unit Testing
  • Software Engineer

    2016 - 2017
    BAE Systems Applied Intelligence
    • Configured new fraud detection workflows using BAE's flexible and complex NetReveal platform for one of the worlds leading financial institutions.
    • Helped develop an internal application to run "planning poker" sessions, which enabled distributed teams to improve their agile processes.
    • Collaborated on developing a Jira plugin for internal use to conduct team questionnaires and produce charts of the results.
    Technologies: SQL, MongoDB, REST APIs, Java, Back-end Development, JavaScript, Git
  • Aerospace Engineer Intern

    2015 - 2015
    Facebook
    • Developed a powerful design and analysis tool for use by other engineers, using MATLAB to automate a third-party Java program.
    • Converted an existing spreadsheet into a MATLAB program which allowed design parameters to be adjusted and produced detailed graphs to assist high-level design discussions.
    • Presented high-level overviews of MATLAB programs to other engineers and stakeholders for peer reviews.
    Technologies: MATLAB

Experience

  • Educational Physics iOS App
    https://www.appadel.com/portfolio.html#physics

    This app is designed to teach students physics using interactive and customizable simulations. It was written in SwiftUI for iPhone and iPad.

    The app features several objects the user interacts with, creating unique simulations to learn about equations of motion. For example, the user may explore the motion of brick resting on an inclined conveyor belt, which is itself attached to a moving scissor lift. There are also examples of projectile motion, where the user can throw the brick.

    The brick's facial expression animates using a combination of SpriteKit and SwiftUI. The app provides an area where the student can freely explore different objects and configure their simulation.

    The app's architecture allows for easily adding and customizing different types of simulation objects and maximizes code reuse to simplify adding future units.

    The app includes thorough unit tests and comprehensive support for VoiceOver.

    The client provided designs for the app. I was the sole developer and contributed to the physics content. The Development is complete for the app, and it will be released to the App Store once the quiz questions are finalized.

  • Educational Chemistry iOS App
    https://chem-sims.com

    This app is designed to improve how students learn chemistry and help them prepare for their exams. It features interactive simulations, with a quiz after each section.

    The app was written in SwiftUI, using UIKIt and SpriteKit.

    There are many visualizations, and all are focused around a common beaker. These include a grid of molecules, a macroscopic view with dynamic colors, bouncing molecules, dissolving solute particles, a growing precipitate, etc. The more advanced molecule simulations make use of SpriteKit.

    Outside of the beaker, there are several interactive tools, such as sliders, burners, liquid droppers, and scales. There are also containers that move and drop molecules into the beaker in response to the motion.

    The app is split into different units, which mirror the AP Chemistry syllabus. It is architected using a separate module for each unit, which helps keep them well encapsulated and easier to work on.

    The app uses a tipping model, implemented using both consumable and non-consumable in-app purchases using StoreKit.

    Comprehensive unit tests have been added, and thorough support for VoiceOver.

    The client provided the app designs, and I was the sole developer. It is available for both iOS and iPad.

  • iManage Extract | AI Platform for Law Firms
    https://imanage.com/product/imanage-ravn-extract/

    iManage Extract is an AI platform used by the world's leading law firms to extract essential information from their documents. I worked as a Scala developer, working on the data processing engine for these documents. I delivered massive document processing speed improvements—over 90% in one case—and improved robustness by fixing several memory leaks causing application failure. I was involved in all elements of this product, from planning to implementation, automated testing, manual testing, deployment, and support.

  • Wave Writer iOS app
    https://www.appadel.com/portfolio.html#wave-writer

    The idea behind Wave Writer was to create a high-quality, immersive writing experience. Inspired by voice recording apps that show how sound waves respond to the user’s voice, WaveWriter brings this idea to typing.

    A wave at the top of the screen responds as the user types. The animation properties even change as the user types faster or slower, and the wave slowly comes back to the starting position when the user is finished typing.

    The wave uses the Accelerate framework to compute the curve, to ensure a fluid and smooth user experience.

    There are several carefully designed themes complementing the animation that the user can choose from, for both light mode and dark mode.

    WaveWriter was made using Swift and SwiftUI and is available for iPhone.

  • Zero Below Zero iOS App
    https://www.appadel.com/portfolio.html#zero-below-zero

    I created a puzzle game for iOS using SwiftUI. The game is based on a graph-theory puzzle called the Dollar Game. I created a novel algorithm to find the minimum number of levels for each level and implemented this using Scala. The cost of calculating the minimum number of moves grows incredibly fast as the game becomes more complex, making these levels unfeasible. My algorithm enabled me to create complex levels where using a conventional brute force approach is impossible.

  • AnyLog iOS app
    https://www.appadel.com/portfolio.html#anylog

    AnyLog is a flexible logging application made using the Flutter UI toolkit. Users can create custom spreadsheets to keep track of whatever they want.

    One of the challenges of designing this kind of app is keeping the UI simple while still exposing many configuration choices.

    Storing such flexible data also required careful design of the SQL schema and the codebase itself.

    AnyLog has excellent support for screen readers, including the charts tab, where the user can select a data point to hear its value readout with a screen reader.

    I am currently rewriting AnyLog using SwiftUI and CoreData.

  • Scala Client for Cloudflare API
    https://gitlab.com/migamake/api/scala/cloudflare

    A Scala client to call Cloudflare API endpoints to manage DNS records. This client was designed to be used as a template for other projects moving forward, serving as the best practices benchmark.

    The project includes unit and integration tests and a GitLab CI pipeline.

    The documentation is extensive, including both Scaladocs and "Readme" docs.

Skills

  • Languages

    Scala, Swift, SQL, Java, JavaScript, Dart
  • Libraries/APIs

    REST APIs, Akka Streams, SpriteKit
  • Tools

    ScalaTest, Git, Xcode, Slack, IntelliJ, Java VisualVM, MATLAB
  • Paradigms

    Unit Testing, Functional Programming, Mobile Development
  • Other

    Back-end Development, Akka Actors, Memory Profiling
  • Frameworks

    Play 2, SwiftUI, Play Framework, Akka, UIKit, Flutter
  • Platforms

    JVM, Docker, iOS, Linux
  • Storage

    PostgreSQL, MongoDB

Education

  • Master's Degree in Aeronautical Engineering
    2011 - 2016
    Imperial College London - London, United Kingdom

To view more profiles

Join Toptal
Share it with others