Wednesday, July 17, 2024
spot_imgspot_img
HomeBlockchain JobsSenior Technical Architect

Senior Technical Architect

1775 NW 70th Ave # 300, Miami, FL 33126, USA
IOHK
SummaryAs a Technical Architect at IOHK you take ownership and are accountable for technical decisions of a product. You are responsible for designing solutions (products, components, features, libraries, …) that satisfy functional and non-functional requirements driven by the needs of users of our products. To this aim, you must interact with the product managers, provide feedback on the satisfiability of requirements, present various alternative solutions for satisfying the requirements and provide a critical and impartial analysis of the pros and cons of the alternatives. You must also provide technical leadership and oversight to the development teams, and must delegate architecture tasks effectively and responsibly to the teams in order to avoid both efficiency bottlenecks and architectural disagreements. You must be pragmatic about technical debt, and must be willing to make difficult compromises in the architecture in order to deliver minimum viable products within reasonable amounts of time. Duties
Team Work and Methodologies

Support agile software development practices Participate in planning, definition, and high-level design of the solution and explore solution alternatives Participate and give technical advice in decisions related to work prioritization Participate in iteration plannings to decide how much of the highest priority work is reasonable to select for execution in a given iteration Review acceptance criteria of critical task assigned to developers Communicate technical details with scientists, researchers and developers. Summarize technical details about proposed solutions to management and business decision makers. Contribute to the work breakdown and allocation decisions to get the best out of team members.

Software Architecture

Ensure that recommended software engineering principles are followed Enable a continuous delivery of features through appropriate architecture design and establish timeline and milestones Distinguish features and enablers and proactively recommend work on enablers to allow the future implementation of features Define subsystems and their interfaces, allocating clear responsibilities to subsystems Establish and raise awareness of critical non-functional requirements Document the architecture and technical solution decisions in a common source of truth location Ensure that our products do not depend on unstable and immature external libraries Evaluate and select appropriate software or hardware and suggest integration methods Select appropriate solutions to problems Be conscious of the costs of architectural decisions and take these costs into account when jointly making important decisions Manage and evolve legacy solutions and integrate with legacy technology when appropriate.

Knowledge:

Acquire deep technical understanding of problems and solution spaces. Maintain a firm and updated grasp of CS and Engineering techniques. Review literature and learn new topics that are relevant for the problems that need to be solved. Know the limitations of your own knowledge and experience to know when to learn more or when to look for outside expertise.

Leadership:

Support and encourage the software engineers. Provide technical guidance to software engineers Recognise when training is worth the time and contribute to decisions on training.
Key Competencies
Ensure that software engineering principles are followed Define and document technical and architectural visions for products, libraries or components Design technical solutions (features, libraries, components, …) for business requirements and objectively document how well the solutions satisfy the requirements Break down solutions into smaller tasks with clear acceptance criteria and a short completion time Mentor, influence and/or lead teams of software engineers (including line management duties)
Education / Experience
A Degree in Computer Science/Engineering A minimum of 5-10 years of industrial/commercial development A minimum of 5 year as technical architect A minimum of 1 year as leader of a software development team Practical experience with Agile software development methods Experience working with Git and Git workflow Knowledge of functional and object-oriented programming paradigms Experience working together with scientists, researchers and formal methods specialists Knowledge of selected programming languages (e.g. Haskell, Javascript, Rust, Scala) Proven aptitude in:
Writing and Oral Communication Organization Problem-solving1775 NW 70th Ave # 300, Miami, FL 33126, USA
IOHK
Summary

As a Technical Architect at IOHK you take ownership and are accountable for technical decisions of a product. You are responsible for designing solutions (products, components, features, libraries, …) that satisfy functional and non-functional requirements driven by the needs of users of our products. To this aim, you must interact with the product managers, provide feedback on the satisfiability of requirements, present various alternative solutions for satisfying the requirements and provide a critical and impartial analysis of the pros and cons of the alternatives. You must also provide technical leadership and oversight to the development teams, and must delegate architecture tasks effectively and responsibly to the teams in order to avoid both efficiency bottlenecks and architectural disagreements. You must be pragmatic about technical debt, and must be willing to make difficult compromises in the architecture in order to deliver minimum viable products within reasonable amounts of time.

Duties

  • Team Work and Methodologies
      • Support agile software development practices
      • Participate in planning, definition, and high-level design of the solution and explore solution alternatives
      • Participate and give technical advice in decisions related to work prioritization
      • Participate in iteration plannings to decide how much of the highest priority work is reasonable to select for execution in a given iteration
      • Review acceptance criteria of critical task assigned to developers
      • Communicate technical details with scientists, researchers and developers.
      • Summarize technical details about proposed solutions to management and business decision makers.
      • Contribute to the work breakdown and allocation decisions to get the best out of team members.
  • Software Architecture
      • Ensure that recommended software engineering principles are followed
      • Enable a continuous delivery of features through appropriate architecture design and establish timeline and milestones
      • Distinguish features and enablers and proactively recommend work on enablers to allow the future implementation of features
      • Define subsystems and their interfaces, allocating clear responsibilities to subsystems
      • Establish and raise awareness of critical non-functional requirements
      • Document the architecture and technical solution decisions in a common source of truth location
      • Ensure that our products do not depend on unstable and immature external libraries
      • Evaluate and select appropriate software or hardware and suggest integration methods
      • Select appropriate solutions to problems
      • Be conscious of the costs of architectural decisions and take these costs into account when jointly making important decisions
      • Manage and evolve legacy solutions and integrate with legacy technology when appropriate.
  • Knowledge:
      • Acquire deep technical understanding of problems and solution spaces.
      • Maintain a firm and updated grasp of CS and Engineering techniques.
      • Review literature and learn new topics that are relevant for the problems that need to be solved.
      • Know the limitations of your own knowledge and experience to know when to learn more or when to look for outside expertise.
  • Leadership:
    • Support and encourage the software engineers.
    • Provide technical guidance to software engineers
    • Recognise when training is worth the time and contribute to decisions on training.

Key Competencies

  • Ensure that software engineering principles are followed
  • Define and document technical and architectural visions for products, libraries or components
  • Design technical solutions (features, libraries, components, …) for business requirements and objectively document how well the solutions satisfy the requirements
  • Break down solutions into smaller tasks with clear acceptance criteria and a short completion time
  • Mentor, influence and/or lead teams of software engineers (including line management duties)

Education / Experience

  • A Degree in Computer Science/Engineering
  • A minimum of 5-10 years of industrial/commercial development
  • A minimum of 5 year as technical architect
  • A minimum of 1 year as leader of a software development team
  • Practical experience with Agile software development methods
  • Experience working with Git and Git workflow
  • Knowledge of functional and object-oriented programming paradigms
  • Experience working together with scientists, researchers and formal methods specialists
  • Knowledge of selected programming languages (e.g. Haskell, Javascript, Rust, Scala)
  • Proven aptitude in:
    • Writing and Oral Communication
    • Organization
    • Problem-solving

Read More

- Advertisment -spot_imgspot_img

Most Popular

Latest News