Duties & Responsibilities:
- Strategic Leadership: Develop and implement a strategic vision for the software engineering department, aligning it with business objectives.
- Technical Excellence: Oversee the software architecture, development processes, and technology stack to ensure efficiency, scalability, and security.
- Team Management: Lead, mentor, and grow a team of software engineers, fostering a culture of innovation, collaboration, and continuous improvement.
- Product Development: Work closely with product managers, product owners, clients, designers, and other stakeholders to deliver high-quality software solutions on time and within budget.
- Process Supervisions and Optimization:
- Implement best practices in software development, including Agile methodologies, DevOps, CI/CD, and automated testing.
- Manage and oversee the software development process, including planning, design, development, testing, deployment, and maintenance of software products.
- Ensure that software projects are delivered on time, within scope, and within budget, and that they meet quality and performance standards.
- Continuously improve software development processes and tools, and implement new technologies and methodologies to increase efficiency and productivity.
- Technology Adoption: Stay updated on emerging technologies and industry trends, incorporating relevant advancements into the company's software solutions.
- Collaboration & Communication: Act as a bridge between engineering and other departments, ensuring effective communication and alignment of priorities.
- Budget & Resource Management: Oversee budgets, resource allocation, and vendor relationships to optimize software development efficiency, plan and control revenue targets.
- Risk Management: Identify potential risks in software development projects and implement mitigation strategies.
- Project Acquisition: Actively participate in identifying and acquiring new software development projects by engaging with potential clients, presenting technical capabilities, and contributing to proposals and pitches.
- Performance Management: Develop and implement performance management strategies and procedures to assess and enhance the productivity, efficiency, and engagement of software engineering teams.
- Employee Development:
- Establish training programs, career growth plans, and performance review processes to ensure continuous development and retention of top engineering talent.
- Foster a culture of innovation, collaboration, and continuous learning within the software engineering team.
Experience, Knowledge & Competencies:
Education & Experience
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, or a related field.
- 10+ years of experience in software engineering, with at least 5+ years in engineering management.
- Proven track record in leading and scaling high-performing engineering teams.
- Experience managing multiple software teams across different projects.
- Strong understanding of software architecture, system design, and cloud infrastructure.
- Hands-on experience in Python, C++, C#, or other modern programming languages.
Technical Skills
- Strong expertise in software engineering principles, data structures, and algorithms.
- Experience in cloud computing platforms (AWS, GCP, or Azure).
- Deep understanding of DevOps, CI/CD, automated testing, and microservices architecture.
- Strong knowledge of version control systems (GIT), unit testing frameworks, and performance optimization.
Soft Skills & Leadership Abilities
- Strategic leadership and team-building skills.
- Excellent problem-solving and decision-making capabilities.
- Strong communication skills in English, with the ability to engage with technical and non-technical stakeholders.
- Ability to work in a fast-paced and agile environment.
- Passion for technology, innovation, and continuous improvement.