We have been retained by a client to
deliver two (2) Senior Software Engineers to work 100%
remote on a long-term, 2-4+ year contract basis as
part of a large software engineering team creating a complex,
cutting-edge, Xamarin.Forms application. You will enjoy
working with SAFe Agile
methodologies, scrum, TDD, and the scaled agile framework, while working as a
team, and independently solving the complex software problems associated the
long list of complex features of this mobile app used by this large
corporation. You will enjoy the OOP, OOD, C# capabilities and the personalities
of this articulate, well-spoken and strong C# .NET software engineering team
you will join, and communicate with during your weekday agile/scrum meetings.
Here is what you will be given and
the tech stack and methodologies you will use:
A high performance Mac with Windows VM, with a recent or newest version Visual
Studio (eventually MAUI : Multi-Platform App UI), a Mac machine, C#, Xamarin
. Forms, XAML, MVVM, SQLite, reactive programming
principles vs. inheritance, Reactive eXtensions, ReactiveX, RX, Resharper, C#,
NUNIT, TDD, Agile, Scrum, Azure DevOps, Xamarin Test Cloud, and Visual Studio
App Center. This is a 40-hour work week. 100% remote USA.
- Deliver code to implement the requirements, as defined
for the sprint
- Leverage Model View View Model (MVVM) and reactive
principles (Reactive Extensions, ReactX) where appropriate
- Work with Automated Test & UI developers to ensure
high-quality, tested, working features
- Use HTTP knowledge, Fiddler traces
- Take UI & automated test tasks, as needed
- Learn, adhere to, and enforce & best practices
- Deliver the highest quality designs & code for the
project
- Participate in Agile, scaled agile framework (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
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
- 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 Design
by Contract specifications.
- Eliminate duplicate code
- Code and 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 and evolves.
- Classes should be organized within the project as
vertical slices of functionality instead horizontal abstraction types
- Good usage of Reactive Extensions or use of programming
principles design.
- Adhere to the Composed Method style of functional
decomposition where possible., or use of compositional models (composite
models) versus inheritance.
- Leverage reactive data streams to explicitly model
changing data.
- 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 Azure DevOps including robust automated continuous integration and
continuous build pipelines that automatically execute static code
analyzers, design analyzers, unit tests, and integration tests.
Requirements:
We prefer candidates with 4-5+ years software engineering with C#,
Xamarin or Xamarin Forms experience, and a bachelor’s degree in computer
science, or related. Candidates must reside in the USA.
Excellent verbal and written
communication is required.
We prefer candidates with strengths in C# software engineering with
mobile app experience, Xamarin, or Xamarin.Forms, and mobile app (iOS, Android,
UWP), experience, a past history with the Windows Presentation Foundation ( WPF
) of classes, Reactive Extensions, ReactiveX, RX, Resharper, reactive
programming principles, data streams, message streams, observables, and an
basic understanding of the composite reuse principal (compositional models vs.
inheritance), Agile, Scrum, TDD (test-driven development).
Employment Type: Contract (long term, 2-4+ years)
Hourly Rate: $55 – 75 per hour
Location:
100% remote, candidate must reside in the USA.
Immigration: US citizens and those authorized to work in the US are
encouraged to apply. We are unable to sponsor H1b candidates currently.