Software architect

Key duties & responsibilities include:

  • Understand from the stakeholders the product to be developed and the high-level features needed and validate it from technical perspective.
  • Ensure that plans and estimations are aligned to meet the release dates.
  • Understand the future plans for the products and ensure that the architecture and design is flexible to achieve it.
  • Contribute in facilitating different technical obstacles during the implementation.
  • Ensure that company polices are not violated during the software life cycle.
  • Identify external integration points like third party systems and participate in all technical communications and provide the integration flow and its technical aspects.
  • Participate in technical interviews and selecting very good technical candidates.
  • Provide any technical training required for either existing developers or new hires.
  • Decide on technology stack to be used for the product, that suits the product needs and aligned with team skills.
  • Create prototypes and POC for any new introduced topic or idea to prove its validity before demonstrating it to stakeholders and team members.
  • Increase coding quality by deciding coding conventions and best coding practices and performing regular code reviews to ensuring that best coding practices and patterns are applied all the time.
  • Decide on the tooling, for instance what tools will be used by the developers to build the project.
  • Create the high-level architecture and high-level solution design. And solution needs to be as flexible as possible to cater to changing needs as the sprints go by.
  • Work with the PO and SM to understand what features need to be implemented in the near future and (next few sprints).
  • Work ahead of the development team at least by 2-3 weeks and decide on a strategy, for instance an architecturally correct approach to implement the user story.
  • Work with the PO team regularly to make sure both understand how the solution is going to be implemented. Discuss the drawbacks and advantages.
  • Take a pragmatic approach to arrive at a solution that fits both the business and the technical needs of the system. Also, be open for new ideas from both PO and developers.
  • Manage the quality of code and technical debt.
  • Align with TLs to ensure that delivery and technical tasks are going smooth during the sprints and provide any support needed.
  • Create “technical” user stories that the PO might have missed or needs architect’s help to write.
  • Support the development team.
  • Bridge the gap between the PO and the development teams. An important aspect in doing this is to manage conflicts between PO and development team. The PO/SM are always going to push for quick development, and it’s the architect’s responsibility to make the POs understand the “proper” way of approaching the solution through the right architecture and software development principles.
  • After the development team has completed implementation, review their work and make suggestions.
  • Always stay up to date with both PO as well as development team’s work.

ABOUT YOU

The ideal candidate has exceptionally high ownership, excellent critical thinking skills and the ability to work with agility in a fast-paced environment. They would also be insanely focused on demonstrating excellence in service delivery and problem-solving; breaking down complex information into understandable and actionable items.

Other qualifications include:

  • BS in Engineering or Computer Science, or equivalent.
  • 10+ Years of experience in software development.
  • 4+ Years of experience in leading teams.
  • 2+ Years of experience in doing effective software architecture.
  • Having experience in different software life cycle methodologies especially Agile.
  • Having excellent coaching and leadership skills
  • Having excellent communication and demonstration skills.
  • Having excellent documentation skills with high ability to visualize different solutions in a clear way.
  • Having strong technical knowledge in different software architecture patterns especially micro-services architecture.
  • Having experience in different software development patterns like TDD and BDD.
  • Having experience in working with different relational databases like (MS-SQL Server and MySQL) and No-SQL databases like (MongoDB and Redis)
  • Having UI and UX skills
  • Having knowledge in frontend technologies using (HTML5, CSS “SaSS and LeSS”, JQuery and Bootstrap)
  • Having experience in frameworks like (HAPI-JS and React-JS) is a plus
  • Having experience in Mobile development.
  • Having experience in different build tools like Ant and Maven and Source Control tools like GIT.
  • Having experience in working with different Web servers and Application servers.
  • Having clear understanding of different security aspects.
  • Having knowledge in CI using different pipelines like Jenkins and CD using containerized solutions like Dockers
  • Having hands in DevOps using different configurations and orchestration tools is a plus
  • Having very good analytical thinking and inspection skills
  • Having the ability to provide wise judgement in different situations.
  • Self-Learner and always having hands on new technology in trends in the field

Apply for this position

Allowed Type(s): .pdf, .doc, .docx
Menu