.Net Application Architect - remote

Domino's Pizza
Posted 4 years ago  • Ann Arbor, MI
Stack Overflow

Domino's Next Generation Store Systems (NGSS) group is working to rebuild, from scratch, the software used to run our stores and handle orders from our various ordering channels (e.g., websites, mobile applications, call centers, and conversational commerce solutions). Within the NGSS group, we have split the concept of "architect" into two roles. Solution architects are business-facing and concerned with providing a highly technical definition of the business concepts within and between our systems. Application architects are development-facing and are concerned with the proper, consistent design of our code and its externalities (e.g., operations, security).

Application architect is a hands-on role;you will be responsible for helping to implement designs drafted by the application architecture team. As such, the application architect must have a deep, current knowledge not only of C# but also the environment within which services run (e.g., operating systems, networking, messaging services, data storage) The application architect role is also collaborative;you will work with other application architects and senior developers when designing and creating patterns, libraries, and frameworks. Your designs will be reviewed, debated and evaluated based on hard data (e.g., how well does something perform), shared experience of the team, and obviously business needs.

Software Development/Design - 85%

  • Define and document application architectural guidelines and patterns used across the program's services. Such work includes:
    • selection/design of implementation patterns, frameworks, libraries, and technologies used within our services
    • design of APIs (C#, HTTP) that support a good developer experience, meet performance requirements, and support 3rd party integration with our services
    • ensuring compliance with data privacy and payment processing regimes (e.g., GDPR, CCPA, PCI)
  • Implement libraries and frameworks used across the program's services. This work includes:
    • developing, functional testing, and performance testing new, or new versions, of our core libraries and frameworks
    • ensuring the design provides an efficient developer experience when using the library/framework
    • creating example projects that demonstrate the use of the library/framework and assisting/mentoring the development teams as they pick up the library/framework
  • Serve as a technical consultant to solution architects providing feasibility and implementation information
  • Serve as a technical consultant to developers and development managers providing design support and review for smaller portions of individual services

Team and Organization Leadership - 15%

  • Be a model of the program, department, and company's values of ownership, accountability, quality, continual growth, communication, and respect.
  • Support the tasking of work for 15-20 people in 3-4 teams. Support the team and delivery managers in planning program-wide efforts.
  • Demonstrate features and provide status of managed services.

 Qualifications

  • 15+ years of experience as a developer or architect working on large-scale systems. Experience in at least three different, complex domains preferred.
  • 5+ years of experience in designing large-scale systems with a demonstrable ability to comprehend, decompose, and construct solutions in complex domains.
  • Highly proficient with, and the ability to stay current on, the full development and deployment stack.
    • Development:
      • Backend - C#, .Net Standard/Core 2.0+, Frameworks (ASP.Net Core, Dapper)
      • Design - Microservice-based Systems, Distributed Architecture
      • Security –OAuth 2.0, data encryption and signing,
      • System Performance - load testing, application profiling, OS profiling
      • System Operations - Diagnostic and audit logging, Metrics collection and visualization
    • DevOps: Docker, Jenkins-X, CI/CD,
    • Data Storage: MS SQL Server, OpenLDAP, Cassandra, Couchbase, In-memory caching technologies (e.g., Hazelcast, Redis)
    • Operating System: Windows Server, RHEL
    • Networking: TCP/UDP/IP, HTTP/1.1, HTTP/2, WebSockets, TLS, Load Balancing, L4/L7 Firewalls, Routing
  • Strong conceptual thinking and the ability to effectively communicate technical or abstract concepts to developers, technical, and non-technical businesspeople.
  • Proven ability to stay focused, prioritize competing demands, manage multiple concurrent tasks and adapt to changing priorities