About the Job:
The Java Architect’s primary responsibility is to own the technical solution being delivered for the client. Owning the technical solution goes well beyond architecture.
The Java Architect is expected to be a lead; helping to drive all aspects of delivery. The Java Architect is expected to be skilled in client service, analysis, architecture, design, development, testing, ALM, and agile project management (typically Scrum or Kanban). Every project will vary based on the nature of the work and the people assigned. The Java Architect is expected to help fill in and/or identify gaps so that the project’s delivery can be managed effectively.
Java Architects are expected to be leaders that demonstrate aptitude for learning new technology, situational awareness with the client, demonstrate a positive client service attitude, and hold themselves accountable to the outcomes they commit to.
Java Architects are expected to be skilled developers. Part of their time is to be spent doing the equivalent work of a Senior Developer. The time spent de-queuing stories (coding) will vary depending on the project.
Responsibilities for the role can vary from project to project; due to the nature of every project being different in problem, client, and team. The following captures the broad expectations of the role.
- Technical excellence on delivery engagements; this includes architecture, design patterns, quality and testing, development operations, and release management as a holistic consideration of the solution
- Lead teams delivering quality software using agile principles and a devops mindset
- Explain abstract technical concepts, risks, and options to non-technical stakeholders
- Provide guidance and support across the entire project lifecycle: from sales, to development, to maintenance, to retirement/replacement
- Guide clients and teams in planning, scoping, development practices, and quality
- Lead design reviews of systems architecture for cloud, on-premise, and hybrid topologies
- Evaluate, define, and create reusable development frameworks, tools, platforms, and documentation
- Provide technical oversight and guidance
- Model and evangelize agile practices and mindset for team members and clients
- Maximize value produced for the client
- Provide technical estimates for sales pursuits and present as a technical SME
- Provide organizational leadership and guidance regarding technology-focused strategic objectives
- Support the practice on staffing decisions for new and ongoing engagements at the direction of a Principal TA
- Mentor and manage career development for up to 4 Developers
- Coach and support TA Track team members
- Participate in the interview process for Developers and TAs
- Self-manage competing responsibilities and commitments
- 8+ years relevant professional work experience
- 5+ years of hands on development experience in a technical role
- Exceptional written and oral communication skills
- A strong sense of ownership and a willingness to work with team members to drive successful client outcomes
- A desire to constantly learn, teach, and share new knowledge
- Skilled in understanding and abstracting complex business problems to develop technical solutions
- Skilled in communicating technical decisions, risks, and options to non-technical stakeholders
- Skilled in negotiating mutually beneficial outcomes
- Demonstrated ability to communicate collaboratively in front of a whiteboard (both physical and virtual)
- Demonstrated ability to understand audience and adjust communication style as necessary
- Back End Architects: Expertise designing and implementing enterprise applications with .NET Core or Java
- Front End Architects: Expertise designing and implementing enterprise applications using modern client-side frameworks such as React or Angular
- Expert-level understanding of common architectural patterns and trends
- Expertise and experience with modern DevOps patterns, practices, and tools
- Expertise and experience with modern software delivery and development tools such as Azure DevOps or Jira
- Project experience with agile frameworks such as Scrum, Kanban, or Lean
- Project experience with agile technical practices including unit testing and continuous integration
- Experience navigating client issues, constraints, and risks; demonstrated ability and willingness to communicate concerns in situationally appropriate manner.
- Excellent self-organization and time management skills
- Willingness to participate in a culture of feedback
- Commitment to professionalism in communication and action
- Desire to teach and mentor team members with respect to technology, agile practices, and career paths
- Able to lead a distributed team effectively
- Willing to travel
- Full stack architectural experience with modern front-end technologies such as Angular or React
- Professional certifications in cloud architecture, infrastructure, and platforms
- Container orchestration and microservice implementation experience
- Expertise implementing desired state configuration/infrastructure-as-code tools.
- Cloud native experience
- Academic background in computer science