The Software/Solution Architect will work as a senior member of a team of Architects dedicated to guiding Business, Product, and Development leaders and teams to make good technology decisions that are innovative, fiscally responsible, and aligned with the overall Technology Strategy at Vertex, evolving our offerings toward a cloud-native, SaaS-centric Platform. Work closely with Agile development teams offering guidance, proof of concepts, and technical solutions. Utilize extensive expertise in defining technical solutions, assumptions, constraints, and a quality plan for each opportunity or body of work being proposed (features/initiatives) for a given line of business. Accountable for assigned portions of the architecture output by the development teams.
Essential Job functions and responsibilities:
Understand and anticipate the technological needs of the Vertex products and customers both in the present and in the mid- to long-term
Remain well versed in new technologies and architecture patterns so as to provide them as potential solutions to business opportunities
Communicate with executives, directors and product managers to understand business opportunities, associated value propositions and provide technical consultation
Translate business opportunities and unknowns into clearly defined architecture solutions that development teams can implement
Work consultatively with development teams to help them take ownership of a solution while serving as a resource for guidance and mentoring
Assist in managing a landscape of perspectives, positions, skills, and personalities in order to lead/mentor people toward optimal solutions
Provide in-depth documentation, instructions and learning materials of all works being rolled out to the larger organization or teams - i.e. software/architecture designs and patterns that can be absorbed by development teams
Promote acceptance of and conformance to technology strategy; solutions should utilize a common services platform-centric approach whenever possible
P romote a culture of innovation and mutual advancement within the development community
Continuously improve the software development process
Supervisory Responsibilities:
None officially, but will be expected to lead/mentor less senior staff depending upon strategic demands and business needs
KNOWLEDGE, SKILLS AND ABILITIES:
Self-motivated / Creative / Innovative
Strong software engineering skills
object-oriented analysis and design
functional programming analysis and design
strong development ability in a well-known stack (functional or OO) such as Java, .NET, or Node
database design and S/W - D/B interfacing requirements verification and quality assurance
Strong understanding of distributed systems design and patterns
an understanding of performance consideration in a distributed architecture
an understanding of infrastructure as code - CICD, etc.
Strong understanding of Cloud services and how to leverage them
Experience with containers and orchestration is a plus
Familiarity with the Unified Modeling Language (UML) and ability to visually communicate complex architectures
Strong customer focus and ability to interact with and create relationships with Vertex partners and customers in order to understand the needs being defined and proposed by the Business and Product.
Ability to deliver technical expertise, excellence and guidance through a consultative approach.
Ability to learn, implement, code against, and evaluate new technologies and approaches at an extremely fast pace.
Excellent written and verbal communication skills
Quickly assimilate, analyze, abstract, synthesize and act on large amounts of information
Ability to provide guidance toward fast-paced, incrementally delivered, quality software
EDUCATION, TRAINING:
Bachelor's degree in computer science or equivalent experience is required.
Master's degree preferred but not mandatory.
Minimum 10 years of experience in software engineering
Minimum 5 years of experience in software architecture
Strong experience developing architectures which are understandable, robust, extensible, and scalable by utilizing:
hierarchical partitioning (to manage system complexity)
modular / component-based designs (to increase reuse and speed development)
middleware (to promote platform independence)
documented design patterns (to utilize best practices)
Experience implementing n-tiered, distributed systems across different HW/OS platforms
Experience with iterative, incremental software development processes
Other Qualifications - The Winning Way behaviors that all Vertex employees need in order to meet the expectations of each other, our customers, and our partners.
Communicate with Clarity - Be clear, concise and actionable. Be relentlessly constructive. Seek and provide meaningful feedback.
Act with Urgency - Adopt an agile mentality - frequent iterations, improved speed, resilience. 80/20 rule - better is the enemy of done. Don't spend hours when minutes are enough.
Work with Purpose - Exhibit a "We Can" mindset. Results outweigh effort. Everyone understands how their role contributes. Set aside personal objectives for team results.
Drive to Decision - Cut the swirl with defined deadlines and decision points. Be clear on individual accountability and decision authority. Guided by a commitment to and accountability for customer outcomes.
Own the Outcome - Defined milestones, commitments and intended results. Assess your work in context, if you're unsure, ask. Demonstrate unwavering support for decisions.
COMMENTS: The above statements are intended to describe the general nature and level of work being performed by individuals in this position. Other functions may be assigned, and management retains the right to add or change the duties at any time.