Bachelor's or Master's degree in Computer Science, Software Engineering, or a related field.
Extensive experience in software development, including significant hands-on experience in building and delivering web applications.
Demonstrated experience in leading software development projects or teams
Expertise in programming and frameworks:
Deep knowledge of front-end frameworks (React, Angular, Vue.js) and back-end technologies (Node.js, Django, Ruby on Rails)
Expertise in database systems (SQL, NoSQL) and data modeling.
Strong understanding of software design principles, architectural patterns, and system scalability.
Experience in designing and architecting complex, distributed, and highly available systems.
Familiarity with cloud platforms (AWS, Azure, Google Cloud) and microservices architecture.
Proficient in implementing and driving software testing strategies, including unit testing, integration testing, and automated testing.
Experience with continuous integration and deployment (CI/CD) pipelines.
Strong focus on code quality, performance optimization, and security best practices
Responsibilities:
Software development and implementation: Lead the design, development, and implementation of complex web applications.
Utilize your expertise in programming languages, frameworks, and libraries to deliver high-quality, scalable, and maintainable solutions that meet business requirements.
Technical design and architecture: Take a leading role in the design and architecture of software systems, ensuring scalability, performance, and reliability.
Collaborate with cross-functional teams to define technical requirements, establish best practices, and drive technical innovation.
Code review and quality assurance: Conduct comprehensive code reviews to ensure code quality, adherence to coding standards, and best practices.
Mentor junior engineers, provide constructive feedback, and help drive continuous improvement in code quality and maintainability.
Technical leadership and collaboration: Provide technical guidance and leadership to a team of engineers.
Foster a collaborative and inclusive work environment, promoting knowledge sharing, mentorship, and teamwork.
Collaborate with product managers, designers, and other stakeholders to ensure successful project delivery
Troubleshooting and problem-solving: Investigate and resolve complex technical issues that arise during the software development lifecycle.
Utilize advanced problem-solving skills to diagnose and address software defects, performance bottlenecks, and system failures.
Provide guidance and support to team members in resolving technical challenges.
Research and innovation: Stay up-to-date with emerging technologies, industry trends, and best practices.
Conduct research and evaluate new tools, frameworks, and methodologies to drive innovation and enhance development processes.
Identify opportunities for process optimization, automation, and tooling enhancements.