We’re always on the lookout for exciting and talented people, who are unique and love doing amazing things. We don’t follow trends, we make them. If this sounds like you, and what you want to be doing, go ahead and apply so we can schedule an interview!
Required Skills and Experience
- 5+ years of experience with C# and .NET.
- 2+ years of experience with Xamarin Forms Platform.
- Experience working with Git.
- Ability to decompose complex UIs into XAML layouts.
- Design, build and maintain efficient, reusable, and reliable code
- Ensure the best possible performance, quality, and responsiveness of the applications
- Identify bottlenecks and bugs, and devise solutions to these problems
- Help maintain code quality, organization, and automatization.
- Learn, adhere to, and enforce Client’s standards & best practices.
- Deliver the highest quality designs & code for the project.
- Participate in SAFe team ceremonies (daily stand-up, planning sessions, etc.).
- Provide estimates for tasks.
- Provide progress updates to team while working tasks.
- Research and troubleshooting issues in QA and production.
- Implement all ReSharper feedback that is “Warning” level and above. There are a few case-by-case exceptions to this; the client’s Architect will provide guidance.
- Adhere to SOLID principles.
- Adhere to Microsoft’s API Design Guidelines.
- Adhere to the Command Query Separation principle.
- Leverage the principles of Design by Contract (DbC).
- Leverage the Clean Architectural style for layering, decomposition, and dependency validation.
- Leverage Dependency Injection to decouple components.
- Leverage Domain Driven Design principles and patterns where appropriate.
- Provide complete software comments for public interfaces, classes, structs, enums, and methods including abstraction descriptions, exceptions thrown, and verbiage augmenting codified DbC specifications.
- Eliminate duplicate code.
- Code/design should be decoupled/modular/composable to facilitate extraction of any potentially reusable code as a mature common component.
- All forms of serialized data should be versioned to help ensure a smooth migration path as the software matures/evolves.
- Classes should be organized within the project as vertical slices of functionality instead of horizontal abstraction types (i.e. PrecisionOrdering and PhysicalInventory instead of Views and ViewModels).
- Good usage of reactive design.
- Adhere to the Composed Method style of functional decomposition where possible.
- Leverage reactive data streams to explicitly model changing data as first-class citizens.
- Leverage Event Sourcing model to preserve separation between remotely-source data and device-sourced data throughout data synchronization.
- Leverage State Machines to govern progression of subsystems/objects/workflows through allowed states via declared triggers.
- Embrace Continuous Integration / Continuous Delivery using robust automated build pipelines that automatically execute static code analyzers, design analyzers, unit tests, and integration tests.
Nice to have
- Good time-management skills.
- Outstanding multitasking skills.
- Solid communication and interpersonal skills.
- Being a quick learner.
How to Apply!
Please include all relevant information (CV, GitHub repo, blog, etc). To apply, please fill out the form. Incomplete submissions will be declined.