BASIC PURPOSE OF POSITION:
Architects are an important part of a well-functioning team. Architects work closely with the development team, providing mentorship through technical guidance, pair development, code review feedback, and assistance debugging stubborn issues. Product owners and project managers also work closely with the architecture team to refine requirements, identify risk, define solutions and estimate tasks. As part of our team you will be challenged to deliver secure, reliable and scalable solutions to our web and back office applications.
ESSENTIAL FUNCTIONS OF THE POSITION:
• Evaluate technologies, best practices, and patterns in the best interests for solutions design
• Create proof-of-concept level prototypes to assist in solution determination and estimation
• Coordinate cross-team development changes and vision across teams
• Champion code reviews, enforcing and creating support for best-in-class code clarity, quality, and maintainability
• Support developer workspaces and deployed environments
• Assist with issue resolution and root-cause analysis
• Act as the technical domain expert for your product
• Maintain safety, security, and privacy standards throughout all areas of responsibility.
ESSENTIAL REQUIREMENTS FOR THE POSITION:
Fluent in Java and commonly used Java libraries and familiar with modern front- and back-end development practices with an eye towards code quality and maintainability. You should understand data structures, relational databases, messaging and service-oriented architecture; have the ability to quickly grasp new languages, frameworks, and APIs. The key is being meticulous while meeting objectives, managing own assignments, and working independently towards goals.
• B.S. in Computer Sciences or related field, advanced degrees preferred
• Architecture experience with synchronous and/or asynchronous messaging constructs, standards and technologies such as MQ Series, SOAP, SOA, HTTP messaging
• Experience in performance tuning J2EE applications a plus
• Messaging or distributed caching
• Familiarity with the Spring core and MVC frameworks
• Understanding of design patterns, domain driven design, test driven development
• Experience using version control systems such as Git, CVS, or SVN
• Experience with automated build systems
• Knowledge of popular software development processes
• Solid understanding of maintainable software development principles
• Experience with various testing types: unit, integration, load, performance, functional, etc.
• Understanding of security concepts with a focus on web application security