Job Description
We are seeking a highly skilled and experienced Principal Software Engineer with a strong background in open-source applications, DevOps, and project management. The Principal Software Engineer will be responsible for designing and developing software systems, managing and mentoring junior developers, and leading technical projects. They will work closely with cross-functional teams to deliver high-quality solutions.
Responsibilities:
- Lead the design, architecture, and development of scalable and robust software applications, with a focus on open-source technologies and frameworks.
- Collaborate with cross-functional teams to understand requirements and translate them into technical specifications, utilizing your open-source expertise to identify relevant solutions.
- Actively participate in project management activities, including defining project timelines, deliverables, and resource requirements.
- Conduct code reviews and provide constructive feedback to ensure code quality, maintainability, and performance in open-source applications.
- Collaborate with QA teams to ensure comprehensive test coverage and participate in troubleshooting and debugging efforts.
- Provide technical guidance and support to resolve complex technical issues and challenges in open-source environments.
- Communicate effectively with stakeholders to provide project updates, manage expectations, and address any concerns or issues.
Requirements:
- Bachelors or Master’s degree in Computer science, Software Engineering, or a related field.
- Minimum of 8 years of hands-on software development experience, with expertise in Ruby on Rails, JavaScript, and TypeScript.
- Strong understanding of DevOps practices.
- Strong communication skills with the ability to convey technical concepts related to Ruby on Rails, JavaScript, and TypeScript to both technical and non-technical audiences.
- Strong understanding of software design principles, patterns, and best practices.
- Experience with Agile methodologies and project management in the context of the specified technology stack.
- Excellent problem-solving skills and the ability to make sound technical decisions under pressure.
- Exceptional communication and interpersonal skills, with the ability to collaborate effectively across teams and levels of the organization.
- Should have leadership and project management skills