Domino's Corporate
Job Description
An Application Architect III has mastered the programming language and core library, including its more complex parts, numerous 3rd party libraries, and the tooling around development, building, debugging, testing, and deploying applications. They understand, at a moderate level, all of the services that make up the system and their inter-relationships and communication patterns. They have a deep understanding of the subset on which they are working and are able to mentor less experienced developers in the design of their code and the larger development ecosystem used within the project. They should have an introductory understanding of architectural design patterns especially as related to distributed systems.
Application architecture requires the development of an exhaustive understanding of the specific problem domains, the larger program context in which the architect is working, and the ability to take a longer-term view of the work in order to evaluate different design options. To accomplish this, the developer will need to deepen their understanding of why first and third party code is designed the way it is and from there begin to understand common, underlying design principles. They will also continue to develop mastery of application architecture design patterns and be able to apply to them to solutions they recommend. They must be able to evaluate patterns against potentially competing objectives such as time-to-implementation, long term maintainability, security, performance, etc. and begin to articulate the various tradeoffs of approaches.
**
Duties **
Software Design/Architecture - 80-90%
Participate in the selection and design of new patterns/libraries/frameworks used within the store systems project
Consider and incorporate concerns such as extensibility, maintainability, security, operations, performance
Produce and apply the initial implementation of the pattern/library/framework
Document for, and teach the use of, the pattern/library/framework
Work with product and architecture teams to understand capabilities, epics, and stories
Provide information on the technical feasibility/impact of choices
Work with individual teams to assist developers in the design of per-story work
Answer conceptual and technical questions
Team Management & Mentoring- 10-20%
Help developers follow established patterns and improve their code by participating in code reviews
Qualifications: Qualifications
5+ yrs experience as a developer working on large, distributed systems
10+ yrs development in any language, 4 most recent years in C# developing server-side applications
Fluent in C#, experience with .Net Standard, .Net Core, and ASP.Net Core
Expert with build, debug, and profiling tools (e.g., Jenkins, MSBuild, Nuget, YourKit, RedGate)
Expert with design methods/patterns (e.g., DRY, SOLID, ReST) and their practical application
Excellent team player with good communication skills with both non-technical & technical co-workers
Highly motivated and driven by a desire to solve difficult problems, and learn new technology
Additional Information
**
Benefits: **
Paid Holidays and Vacation
Medical, Dental & Vision benefits that start on the first day of employment
No-cost mental health support for employee and dependents
Childcare tuition discounts
No-cost fitness, nutrition, and wellness programs
Fertility benefits
Adoption assistance
401k matching contributions
15% off the purchase price of stock
Company bonus
All your information will be kept confidential according to EEO guidelines.
An Application Architect III has mastered the programming language and core library, including its more complex parts, numerous 3rd party libraries, and the tooling around development, building, debugging, testing, and deploying applications. They understand, at a moderate level, all of the services that make up the system and their inter-relationships and communication patterns. They have a deep understanding of the subset on which they are working and are able to mentor less experienced developers in the design of their code and the larger development ecosystem used within the project. They should have an introductory understanding of architectural design patterns especially as related to distributed systems.
Application architecture requires the development of an exhaustive understanding of the specific problem domains, the larger program context in which the architect is working, and the ability to take a longer-term view of the work in order to evaluate different design options. To accomplish this, the developer will need to deepen their understanding of why first and third party code is designed the way it is and from there begin to understand common, underlying design principles. They will also continue to develop mastery of application architecture design patterns and be able to apply to them to solutions they recommend. They must be able to evaluate patterns against potentially competing objectives such as time-to-implementation, long term maintainability, security, performance, etc. and begin to articulate the various tradeoffs of approaches.
**
Duties **
Software Design/Architecture - 80-90%
Participate in the selection and design of new patterns/libraries/frameworks used within the store systems project
Consider and incorporate concerns such as extensibility, maintainability, security, operations, performance
Produce and apply the initial implementation of the pattern/library/framework
Document for, and teach the use of, the pattern/library/framework
Work with product and architecture teams to understand capabilities, epics, and stories
Provide information on the technical feasibility/impact of choices
Work with individual teams to assist developers in the design of per-story work
Answer conceptual and technical questions
Team Management & Mentoring- 10-20%
Help developers follow established patterns and improve their code by participating in code reviews
Qualifications: Qualifications
5+ yrs experience as a developer working on large, distributed systems
10+ yrs development in any language, 4 most recent years in C# developing server-side applications
Fluent in C#, experience with .Net Standard, .Net Core, and ASP.Net Core
Expert with build, debug, and profiling tools (e.g., Jenkins, MSBuild, Nuget, YourKit, RedGate)
Expert with design methods/patterns (e.g., DRY, SOLID, ReST) and their practical application
Excellent team player with good communication skills with both non-technical & technical co-workers
Highly motivated and driven by a desire to solve difficult problems, and learn new technology
Additional Information
**
Benefits: **
Paid Holidays and Vacation
Medical, Dental & Vision benefits that start on the first day of employment
No-cost mental health support for employee and dependents
Childcare tuition discounts
No-cost fitness, nutrition, and wellness programs
Fertility benefits
Adoption assistance
401k matching contributions
15% off the purchase price of stock
Company bonus
All your information will be kept confidential according to EEO guidelines.