Job Description :
Position Summary :
The Principal Software Engineer is responsible for designing, developing, and maintaining high-quality software products that align with business requirements and exceed customer expectations. As a key member of the development team, this role involves close collaboration with product management, QA teams, and other stakeholders to drive a robust development process supporting the company's growth objectives. The ideal candidate will bring extensive expertise in full stack software development, strong problem-solving skills, and the ability to effectively communicate and collaborate across cross-functional teams.
Key Responsibilities :
- Provide technical guidance and mentorship to Software Engineers, fostering a collaborative and growth-oriented environment.
- Design and develop complex front-end and back-end components of web applications, ensuring scalability, performance, and maintainability.
- Develop clean, efficient, and well-documented code, adhering to high standards for coding practices and quality.
- Collaborate with product management to define product roadmaps, prioritize features, and align development efforts with business goals.
- Develop responsive and intuitive user interfaces using HTML, CSS, JavaScript, KnockoutJS, Angular, and NgRx, adhering to UI/UX best practices and accessibility standards.
- Develop robust server-side solutions using C#, .NET 9, and other relevant technologies, ensuring scalability, performance, and maintainability.
- Implement and optimize background job processing using tools like Hangfire to enhance application efficiency and reliability.
- Design and implement RESTful APIs, ensuring seamless integration with front-end applications and alignment with industry best practices.
- Integrate third-party APIs and services to extend application functionality and enhance capabilities.
- Manage and optimize ElasticSearch to deliver efficient and scalable search functionalities within applications.
- Utilize Git or similar version control systems for code management, ensuring collaboration and codebase integrity.
- Participate in code reviews, maintaining high standards of code quality, consistency, and security.
- Develop and execute comprehensive unit tests, integration tests, and end-to-end tests to validate application functionality and performance.
- Troubleshoot and resolve complex technical issues, providing support to team members as needed to ensure timely resolution.
- Conduct root cause analysis of defects and issues and clearly communicate findings to relevant stakeholders.
- Participate in agile ceremonies (e.g., sprint planning, daily stand-ups, retrospectives) to align testing efforts with team goals and objectives.
- Prioritize and manage multiple tasks effectively in a fast-paced environment.
- Work independently and take ownership of assigned tasks while being a strong team player.
- Demonstrate a solid understanding of the business domain and end-user requirements to ensure development efforts deliver value to customers.
- Collaborate effectively with team members to break down tasks, estimate efforts accurately, and deliver features incrementally to meet project milestones and deadlines.
Required Skills :
- 12+ yearsof experience in full stack software development.
- Proven expertise inC#, .NET Core or .NET 9, and other relevant technologies in web development.
- Strong understanding of front-end frameworks such asHTML, CSS, JavaScript, KnockoutJS, Angular, andNgRx.
- Deep knowledge ofWeb APIdevelopment principles and best practices.
- Experience in managing and optimizing databases, includingSQL ServerandElastic Search.
- Proficiency in background job processing using tools likeHangfire.
- Extensive experience withAzureandAWScloud platforms.
- Experience withAgilemethodologies and tools, includingGitfor version control andJIRAfor project management and issue tracking.
- Experience with microservices architecture.
- Experience working within a Continuous Integration/Continuous Delivery (CI/CD) process.
- Knowledge of software builds, testing, andCI/CDtools (e.g.,Jenkins,Git).
- Ability to take initiative, offer suggestions, and provide resolutions proactively.
- Passion for delivering business value and willingness to perform other assigned tasks.
- Ability to provide regular updates, system solutions, and communicate issues to the management team.
- Constantly strive to learn new technologies and stay up to date in the rapidly changing industry.
- Excellent communication skills with the ability to effectively collaborate with cross-functional teams.
- Strong problem-solving skills and attention to detail.