Principal Software Engineer
Job Description
Job title: Principal Software Engineer
Company: GuruLink
Job description: Location: REMOTE / Toronto, Ontario
This job allows you to work remotely.The Principal Software Engineer will be a major contributor to the organization, leading the technical direction and implementation of complex software projects, and will collaborate with cross-functional teams to design, develop, and deploy high-quality software solutions that meet business objectives.Duties & Responsibilities:– Collaborate with Architects and Senior Leadership to define system architecture, making thoughtful and merchant focused decisions on technology stack, scalability, and performance optimization.
– Lead the technical design and implementation of software sprints, providing guidance to the engineering team on best practices, design patterns, and coding standards.
– Conduct thorough code reviews to ensure code quality, maintainability, scalability and adherence to coding standards.
– Mentor junior engineers, providing guidance on technical skills development, problem-solving techniques, new tools and best practices.
– Monitor service operations, performance, reliability and costs, and provide ownership and solutions to drive best in class scalability.
– Work closely with product managers, designers, and other stakeholders to understand requirements, prioritize tasks, and deliver high-quality solutions on time.
– Deeply understand the needs of our merchants and proactively identify solutions that address their pain points.
– Stay up-to-date with the latest technologies and trends in software development, evaluating new tools and frameworks that can enhance productivity and improve software quality.
– Investigate and resolve complex technical issues, providing guidance to the team on debugging techniques and problem-solving strategies.
– Create and maintain technical documentation, including system architecture diagrams, design documents, and API specifications.
– Collaborate with QA engineers to define test strategies, automate testing processes, and ensure software quality through comprehensive testing.
– Identify areas for process improvement and drive initiatives to streamline development workflows, increase efficiency, and enhance overall software quality.Must Have Skills:Required Experience:Expert in…
– Node JS as well as at least one strongly typed language (C# a plus, but not required)
– Highly maintainable functional code patterns
– Data architecture at scale (Postgres + SQL Server a plus), and a practical understanding of how to do data re-architecture and migration on live application states
– Horizontal and vertical auto scaling practicesStrong practical knowledge…
– on how to build services to scale on demand using queues
– of at least one Cloud platform, and how to build highly scalable systems on that cloud (AWS preferred)
– of Infrastructure Architecture, and comfortability with at least one Infrastructure as Code tool (terraform preferred)As well as…
– Practical experience writing unit tests, and working with a modern CI/CD pipeline
– Solid understanding of design patterns, architectural best practices (SOLID, DDD, Microservices, Messaging, and etc.)
– Exceptional verbal and written communication skills
– A Continuous learner who keeps up to date on current technologies, methodologies and tools
– Highly analytical, loves looking for solutions to complex scenarios!
Expected salary:
Location: Toronto, ON
Job date: Fri, 24 May 2024 22:38:06 GMT
Apply for the job now!