IOG Principal Software Engineer Role
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 the Cardano blockchain, as well as other products in the areas of decentralized finance (DeFi), governance, and identity management, aiming to advance the capabilities and adoption of blockchain and Web3 technology globally.
As a Principal Software Engineer, you will lead and support the direction of complex software initiatives, driving high-level technical decisions and providing guidance across the software development lifecycle. Leveraging deep technical expertise, you will shape the architectural design of systems, support the evolution of engineering practices, and mentor other engineers to foster technical excellence across the team.
This role is not limited to hands-on development - it involves improving development processes, influencing strategic technology decisions, and collaborating closely with cross-functional stakeholders. You will work with product managers, delivery managers, and architects to define goals, plan milestones, and navigate evolving priorities with clarity and leadership.
You are a senior specialist that requires not only technical expertise but also the ability to lead and inspire teams, make critical architectural decisions, and drive the successful delivery of complex software projects.
Strategic Technical Leadership :
- Lead and mentor software development teams, providing technical guidance and expertise.
- Advocate for coding best practices, design patterns, and architectural excellence.
- Collaborate with cross-functional teams, including product managers, designers, and QA engineers, to define technical requirements and project goals, ensuring that technical direction complements overarching business goals.
- Collaborate with research teams and academic partners to translate cutting-edge theory into practical engineering solutions.
- Evaluate experimental technologies and guide strategic investments in technical capabilities that give the organization a competitive edge.
Software Architecture and Design :
Architect and design complex software systems, considering scalability, performance, and maintainability.Evaluate and recommend technologies, tools, and frameworks for development.Create and maintain architectural documentation.Coding and Development :
Write high-quality, clean, and efficient code.Participate actively in coding and development tasks.Set benchmarks for code quality, championing clean and efficient code.Technical Problem Solving :
Tackle complex technical challenges and provide innovative solutions.Troubleshoot and debug software issues in production environments.Project Management :
Collaborate with project / delivery managers to define project timelines, deliverables, and resource requirements.Offer insights on tech feasibility during project planning and execution stages.Continuous Improvement :
Stay up-to-date with industry trends and emerging technologies.Identify areas for process improvement and lead initiatives to enhance development processes and methodologies.Encourage feedback-driven improvements to drive a continual learning culture in both tech tools and processes.Documentation and Knowledge Sharing :
Create technical documentation, including design documents and API documentation.Establish avenues for smooth knowledge exchange within the team.Mentorship & Team Growth :
Nurture the professional growth of software engineers, offering guidance and technical mentorship.Lead regular tech sessions and workshops, fostering a culture of continuous learning.Identify and nurture potential leads or senior developers within the team.Champion diversity and inclusion within the technical team, promoting a wide range of perspectives and approaches.