The Role:
The Software Development Manager focuses on operational and/or tactical responsibilities by providing management to a group of professionals. He implements software and platform development strategy and provides advice on security requirements. He translates user requirements into technical specifications and manages the preparation of design specifications. He oversees the development of Proof-of-Concept for solutions, and provides technical expertise on the development of software and platform features, ensuring appropriate security and risk factors are considered. He manages the implementation of software and platform solutions and leads efforts in improving the scalability, reliability and performance of software and platform.
He leads a team and is responsible for managing projects and resources, as well as coaching team members to build technical and leadership capabilities. He is proficient in programming languages required by the organisation. He is familiar with software development tools and standards and the relevant software platforms on which the solution is deployed.
The Software Development Manager applies critical and analytical thinking toward developing optimal application solutions. He is a strong leader who is decisive, able to engage, influence and communicate his ideas persuasively to others.
Job Responsibilities:
Develop software and platform development strategy
- Assist in the development of software and platform development roadmap and business plan
- Develop models and structure changes needed to meet the evolving software and platform strategies
- Align software and platform architecture priorities with roadmaps that anticipate the changing technology landscape
- Provide advice on security requirements from a software and platform development perspective
- Drive the adoption of Agile and DevOps practices
Analyse user and business requirements
- Formulates the strategy and direction for the requirements process across projects
- Oversee the analysis of user requirements based on business needs
- Provide guidance on developing solutions and alternatives to overcome technical challenges
- Create new requirements validation and verification techniques
- Develop business cases, proposals, and communication materials
Manage the design of software
- Evaluate the effectiveness of the application of software design enabling techniques
- Determine the process, strategy and design methodology to be used in software design
- Provide guidance and advice on the use of software design strategies and methods
- Assess the effectiveness of the application of the selected software design methodology
- Evaluate the effectiveness of the software architecture
- Assess the quality of the software design
- Provide guidance and direction on the need for requirements change resulting from design review
Manage software construction processes
- Select processes and models for constructing software on individual projects
- Select frameworks, platforms, and environments for individual projects
- Establish project standards for unit test coverage, version control and configuration management
- Plan and initiate model-driven development processes
Oversee software testing
- Establish organisational procedures for testing and criteria for test completion
- Determine project test objectives, success and failure criteria for system and acceptance testing
- Design system test plan and test cases
- Conduct root cause analysis and analyse test data to determine necessity for further testing activities
- Evaluate test results to identify opportunities for process improvement
Oversee security provisions in software
- Establishes organisation coding standards to avoid security vulnerabilities
- Establishes organisation standards for security assessment processes
Manage software management configuration (SCM)
- Determine constraints and impact of constraints on SCM imposed by policies, contracts, and software development life cycle (SDLC)
- Specify the SCM measures and tools to be used
- Establish mechanisms for generating SCM audit reports
- Develop software release plans
Manage people and organization
- Manage the budget expenditure and allocation across teams and projects
- Monitor and track the team’s achievements and key performance indicators
- Propose new operational plans, including targeted budgets, work allocations and staff forecasts
- Acquire, allocate and optimise the use of resources
- Develop learning roadmaps to support the professional development of the team
- Manage the performance and development process, including providing coaching and development opportunities to maximise the potential of each individual
Job Requirements:
- Bachelor degree or above, major in computer, communication, mathematics, etc.;
- Good data structure and algorithm foundation, solid programming skills;
- More than 4 years of Go Lang development experience;
- Proficient in MySQL and Redis, with experience in database optimization;
- Experience in distributed server architecture design and practical experience is preferred;
- Familiar with the basic commands of the Linux server, able to independently deploy the online environment of the Go Lang project;
- Possess demand analysis and system design capabilities, as well as strong logical analysis and independent problem-solving capabilities;
- Positive and optimistic, strong sense of responsibility, serious and meticulous work, good team communication and collaboration skills;