Postes vacants:
3 postes ouverts
Type d'emploi désiré :
Temps plein
Experience :
3 à 5 ans
Niveau d'étude :
DESS, DEA, Master, Bac + 5, Grandes Ecoles
Langue :
Anglais
Genre :
Indifférent

Description de l'emploi

Millsoft Tunisia recruit

        .Xamarin/WPF Developer

Exigences de l'emploi

Design and develop highly complex user interfaces and associated components with C#, Xamarin.Forms and XAML. Translate Sketch files into working Xamarin.Forms screens, written in XAML. Generate custom components as needed. Work with Xamarin Developers to wire business logic into screens. These are main themes and thrust of this UI Developer opportunity, however you may be asked to take on Xamarin development tasks or automated test creation, as needed.

4+ years of C# experience (more C# preferred) designing and developing highly complex user interfaces for Windows applications (or Xamarin) utilizing C including WPF or WinForms, or Xamarin, including User Interface design and development. XAML is highly preferred. Xamarin.Forms is highly preferred. MVVM highly preferred To understand the dev environment, this is the dev team s tech stack: • C# o Xamarin.Forms o XAML o SQLite o Reactive Extensions o Azure DevOps o Xamarin Test Cloud o NUnit o Resharper o Fiddler They use Visual Studio on dev machines. They use Macs to display iOS results. They use SQLite due to the fact these Android, iOS, Windows mobile devices can be disconnected for longer periods of time while data/information is added while disconnect and data syncs much later. This is an enterprise-level application of a large corporation with 20,000 users. Here is the general ideas of the agile development team this UI Developer will be an integral part of: o Learn, adhere to, and enforce standards & best practices o Deliver the highest quality designs & code for the project o Participate in SAFe team ceremonies (daily stand-up, planning sessions, etc.) o Provide estimates for tasks o Provide progress updates to team while working tasks o Research and troubleshooting issues in QA and production o Implement all ReSharper feedback that is Warning level and above. There are a few case-by-case exceptions to this; the Architect will provide guidance. o Adhere to SOLID principles o Adhere to Microsoft s API Design Guidelines o Adhere to the Command Query Separation principle o Leverage the principles of Design by Contract (DbC) o Leverage the Clean Architectural style for layering, decomposition, and dependency validation o Leverage Dependency Injection to decouple components o Leverage Domain Driven Design principles and patterns where appropriate o Provide complete software comments for public interfaces, classes, structs, enums, and methods including: abstraction descriptions, exceptions thrown, and verbiage augmenting codified DbC specifications. o Eliminate duplicate code o Code/design should be decoupled/modular/composable to facilitate extraction of any potentially reusable code as a mature common component. o All forms of serialized data should be versioned to help ensure a smooth migration path as the software matures/evolves. o Classes should be organized within the project as vertical slices of functionality instead horizontal abstraction types. o Good usage of reactive design, reactive principles, and use of Reactive Extensions (Rx). o Adhere to the Composed Method style of functional decomposition where possible. o Leverage reactive data streams to explicitly model changing data as first class citizen. o Leverage Event Sourcing model to preserve separation between remotely-source data and device-sourced data throughout data synchronization. o Leverage State Machines to govern progression of subsystems/objects/workflows through allowed states via declared triggers. o Embrace Continuous Integration / Continuous Delivery using robust automated build pipelines that automatically execute static code analyzers, design analyzers, unit tests, and integration tests.

Date d'expiration

10/07/2020

Postuler ici

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *