Who are we?
IOG, is a technology company focused on Blockchain research and development. We are renowned for our scientific approach to blockchain development, emphasizing peer-reviewed research and formal methods to ensure security, scalability, and sustainability. Our projects include decentralized finance (DeFi), governance, and identity management, aiming to advance the capabilities and adoption of blockchain technology globally.
We invest in the unknown, applying our curiosity and desire for positive change to everything we do. By fueling creativity, innovation, and progress within our teams, our products and services are designed for people to be fearless, to be changemakers.
What the role involves:
As a Senior Technical Architect at IOG, you are responsible for leading the technical direction and architectural decisions for products. This role involves mentoring other architects, supporting the design and validation of their work, and ensuring that technical solutions (products, components, features, libraries, etc.) meet both functional and non-functional requirements based on user needs.
Working closely with Product Managers, you will assess the feasibility of requirements, propose alternative solutions, and provide objective evaluations of trade-offs. This role also provides technical leadership to development teams, ensuring effective delegation of architectural tasks to maintain efficiency and consistency across teams. The role requires a pragmatic approach to technical debt, with a focus on delivering minimum viable products within reasonable timeframes while balancing long-term architectural goals.
As a Technical Owner, you will ensure that feature requests and the product roadmap support the long-term stability, extendability, maintainability, and security of the system. This includes ensuring that development processes remain sustainable and efficient.
Collaboration with Product Owners, technical leads, and researchers is essential to translate user needs into technical requirements that align with system constraints. The Senior Technical Architect also identifies and prioritizes maintenance and stability tasks in the roadmap, consulting with cross-functional teams to optimize development processes and team structures in line with evolving product needs.
Software Architecture and Technical Design
- Define and document technical and architectural visions for products, components, and libraries.
- Ensure recommended software engineering principles are followed across projects.
- Design solutions that satisfy business, functional, and non-functional requirements.
- Distinguish features from enablers and recommend enabler work to support future feature development.
- Define subsystems, their interfaces, and allocate clear responsibilities.
- Establish critical non-functional requirements and raise awareness among stakeholders.
- Document architecture and technical decisions in a centralized, accessible location.
- Evaluate and select appropriate software, hardware, and integration methods.
- Manage and evolve legacy solutions and integrate with legacy technology where appropriate.
- Ensure products do not rely on unstable or immature external libraries.
- Be conscious of architectural decision costs and factor them into decision-making.
Teamwork and Delivery
- Support agile software development practices.
- Participate in planning, solution definition, and exploration of alternatives.
- Provide technical advice during work prioritization and iteration planning.
- Contribute to work breakdown and task allocation to maximize team effectiveness.
- Provide technical guidance and mentoring to team members.
- Review acceptance criteria for critical developer tasks.
- Communicate technical details clearly with scientists, researchers, developers, and business stakeholders.
- Summarize proposed technical solutions to management and business decision-makers.
- Enable continuous delivery of features through appropriate architectural planning, timeline setting, and milestone definition.
Knowledge and Continuous Learning
- Acquire deep technical understanding of problem and solution spaces.
- Maintain updated expertise in computer science and engineering techniques.
- Review relevant literature and learn new topics as necessary for solving problems.
- Recognize the limits of personal expertise and seek additional knowledge or external input when required.
Requirements
Who you are:
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, or a related technical field.
- A minimum of 7 years of professional experience in software development, including significant experience delivering production systems.
- At least 3 years of experience in a technical architect role, designing solutions and overseeing system architecture.
- At least 2 years of experience leading software development teams, providing both technical leadership and mentorship.
- Practical experience applying Agile software development methodologies in cross-functional teams.
- Proficient in version control practices, including experience with Git and common Git workflows.
- Solid understanding of both functional and object-oriented programming paradigms.
- Experience collaborating with scientists, researchers, and/or formal methods specialists in interdisciplinary environments.
- Hands-on experience with selected programming languages such as Haskell, JavaScript, Rust, or Scala.
- Ensure that software engineering principles are followed
- Ability to define and articulate technical and architectural visions.
- Design technical solutions (features, libraries, components, ...) for business requirements and objectively document how well the solutions satisfy the requirements
- Ability to break down solutions into manageable tasks with clear acceptance criteria.
- Leadership in mentoring, influencing, and managing software engineering teams.
Benefits
- Remote work
- Laptop reimbursement
- New starter package to buy hardware essentials (headphones, monitor, etc)
- Learning & Development opportunities
- Competitive PTO
At IOG, we value diversity and always treat all employees and job applicants based on merit, qualifications, competence, and talent. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.