- Plan and design highly scaleable, distributed systems, conforming to modern methods, and utilizing relevant design and architectural patterns as outlined below.
- Evolve and continuously monitor the functional, performance and fault-tolerance aspects of product architecture, and provide appropriate guidance to various product development teams.
- Serve as lead or technical expert to define and maintain the architectural frameworks/patterns, processes, standards and guidelines related to systems, business or data architecture.
- Align approach with broader architecture vision.
Develop large-scale distributed apps using:
- MEAN Stack (MongoDB, Express, Angular, Nodejs)
- Apache Kafka
- Mongoose ORM
Experience with Large Scale Distributed System Patterns and Tools:
- Continuous Integration and Deployment
- Eventual Consistency
- Event Sourcing
- Reactive Microservice Architecture and Design
- High Availability and DR
- Container Management / Docker
- Consistent REST API Design / Swagger
- Log Aggregation
- Distributed System Authentication
- Distributed System Authorization
- Enterprise Integration Patterns (EIP)
Partner with business stewards to define performance metrics for target architecture(s); Promote and educate stakeholders on the use and value of optimized architecture(s). Familiarity with AWS Stack - at least:
- ECS and ECR
- Provide technical and architectural subject matter expertise to the various development teams including communicating architectural decisions and mentoring other technical staff around the various development technologies and decisions.
- Identify core common data shared across the enterprise and participate in enterprise wide efforts to reach common understanding of those data.
- May serve as lead, technical expert or project manager to team(s) concerned with development, networking and/or project management to coordinate changes and support enterprise technology initiatives.
- Conduct studies of new technologies to provide more efficient and cost effective architecture solutions.
- Oversee multiple projects in order to preserve the architectural vision and protect stakeholder interests as well as to meet operational and financial reporting requirements.
- Confer with business units and application development staff to understand both the business and technical requirements and to define architectural constraints.
- Create performance metrics and traceability maps to determine the effectiveness of architecture solutions and facilitate governance.
- Keep abreast of relevant architecture best practices.
- May review work of other team members and mentor junior architects.
- Manage off-shore dev teams
Other skills necessary:
- Focus, and practical attitude (no purists need apply).
- Communicate clearly and understandably.
- Stay organized and prioritized, think comprehensively about issues Ability to solve specific problems into general classes of solutions.
- Ability to balance generic solutions against efficiency constraints.
- Can negotiate interfaces and integrations.
- Ability to develop strong working relationships and build trust with clients.
Nice To Have:
- Loyalty and/or marketing experience
- Payments systems experience
- Understanding of POS
- JVM-based Technologies (Java, Scala ,etc.)
- Distributed processing frameworks - Spark, Storm
- Machine Learning frameworks and algorithms (Mahout, AWS ML, Heroku)