Flutter/Dart Software Engineer (Senior)

  • Engineering
  • Gouna, Egypt

Flutter/Dart Software Engineer (Senior)

Job description


Senior Flutter:

  • Implement user interfaces designed by UI/UX designers that's pixel perfect on Android/iOS across different screen sizes
  • Assist UI/UX designers with Android/iOS latest Design principles and best practices
  • Integration of data storage solutions
  • Incrementally build features: functionality with mocked data, UI, interaction, and REST backend integration
  • Introduce what Android/iOS OS has to offer to Product Managers/Owners to deliver the best experience per each respective ecosystem
  • Support QA by creating mockups and share insights to make testing streamlined
  • Understand the difference between iOS/Android OS and their implications on xplat development in Flutter
  • Experience in publishing Apps on both Google Play and iOS App stores
  • Up-to-date with Google/iOS OS versions and proactively mitigate breaking changes while making use of what the latest OS has to offer
  • Test automation: unit, widget, and integration testing
  • Using Deeplink and handling proper context switching
  • Integrating with push notification services (i.e. APN/FCB) handling notification events to maintain app continuity experience
  • Create and maintain build pipeline automation for iOS/Android
  • Real-time communication over sockets
  • Experience with multi-level caching and proper cache invalidation strategies
  • Integrating 3rd Party SDKs (Analytics, network logging, Crash reporting, and A/B testing tools)
  • Understand RESTful best-practices with JSON
  • Securing the app with Authentication, Authorization, and Encryption best practices
  • Proper bundling of assets for Android/iOS and different screen sizes and pixel density
  • Experience with CPU/memory profiling and utilization (to avoid memory leaks or out of memory exceptions) and CPU async threads for smooth non-blocking UI
  • Mobile application design patterns
  • Exception. crash and performance logging with APM tools
  • Managing local storage with sync strategies with backend and data rotation
  • Design patterns for Flutter (i.e. BLoC Design Pattern)
  • Git Code versioning tools with Gitflow (GUI or CLI)


Senior Engineer:

  • Clean code practices that produce reusable and maintainable code
  • Integrate various APIs from third parties
  • Troubleshooting and Debugging bugs
  • Understanding User Stories, breaking them down into sub-tasks, and estimating the effort required
  • Liaise with other team leads for business requirements and user feedback
  • Participate in writing best-practices, discussing code design, and conducting code reviews
  • Mentor junior engineers
  • Direct contribution to the software app throughout the ALM
  • Obsession with App performance that delights the customer: monitor performance and metrics using APM and initiate refactor/rewrite tasks with Product Manager/Owner in Sprint Planning
  • Never leave the source code fall behind the latest version of OS or 3rd party plugins/packages by always closing the gap
  • Contribute to product strategy sessions
  • Operate with an Agile and growth mindset
  • Continuously research to learn and adapt to the latest technologies and best practices while promoting it across the company
  • Communicate technical aspects with different stakeholders like Product Owners, Operations, Sales and Marketing

Requirements

  • B.S. in Computer Science or Engineering from reputable universities
  • Extensive proven experience Android/iOS/web apps with Flutter
  • 2+ years experience with Flutter specifically
  • 3-5 years experience in front-end or mobile application development
  • Working in Agile environment using Scrum Framework
  • Self-learner
  • Team player
  • Good written/spoken English