Fixed Solutions→
Software Tech Lead at Fixed Solutions in Cairo, Egypt
Job Description
Software Tech Lead
Role
Participate in the vision creation, design, development, deployment, testing, release, maintenance and support of high quality software applications for Fixed Solutions Customers, as well as applications for Fixed Solutions internal use.
Responsibilities
• Supporting the sales team in achieving the company's sales target by creating a solution vision, designing, sizing and estimating the implementation cost of competitive software solutions.
• Selecting the most effective and efficient approach for delivering software solutions.
• Ensure junior and mid-level team members have the required knowledge, skills and experience for successful delivery.
• Leading a project's software development team throughout the whole software development life cycle.
• Ensure junior and mid-level developers participating in projects have a clear vision of the project and their role, and work on clearly defined tasks.
• Ensuring the developed software solutions meet all the customer's functional and non-functional requirements.
• Ensure every component of the delivered software applications meets or exceeds both the customer's and Fixed Solutions quality objectives.
• Ensure successful delivery of the developed software solutions.
• Expending every effort to ensure software development projects stay on track from the time and cost points of view.
• Participating in improving the effectiveness and efficiency of the software development operations.
Duties
• Creating high level design for software solutions during the bidding process based on the available business requirements.
• Sizing software development projects and estimating the effort required to deliver high quality software solutions.
• Participate in defining the project scope, creating high level design diagrams and defining project implementation timeline during the bidding phase.
• Breaking down the overall software system into components with clearly defined functions and integration interfaces, whenever required.
• Creating detailed design and producing high quality accurate and complete design documentation during project delivery.
• Breaking down software development projects into well defined tasks and activities, with clear dependencies.
• Overseeing release planning activities (backlog estimation, etc…)
• Guiding and coaching junior and mid-level developers both on and off projects.
• Reviewing and approving effort estimations during sprint planning.
• Working closely with a multidisciplinary team (Developers, DevOps, QA engineers, Product Owners) throughout the software development project's life cycle.
• Developing software components and modules, especially those of higher complexity of criticality.
• Performing unit testing on developed modules and components.
• Reviewing code and artifacts developed by peers and other team members and creating peer review analysis reports.
• Deciding when to conduct application penetration testing and engaging application penetration testing teams when required.
• Reviewing source code baseline after every sprint.
• Participate in roll-out planning
• Evaluating the performance of junior and mid-level software development project team members.
Requirements
Required Qualifications:
Knowledge:
• Excellent knowledge of software sizing and effort estimation methodologies.
• Excellent knowledge of HTML, CSS and JavaScript.
• Excellent knowledge of back-end development using Node.js and Python
• Excellent knowledge of relational and non-relational database systems
• Good knowledge of Front-end JavaScript frameworks such as React
• Good knowledge of information security and secure programming practices.
• Good knowledge of messaging queues applications (Kafka, RabbitMQ, etc...)
Skills
• Excellent software design skill
• Excellent ability to develop modular, well-organized, secure, high quality clean code.
• Excellent problem solving skills
• Very good leadership skills.
• Excellent verbal and written communication skills
Experience
• 10+ years experience as a Full Stack Developer or a related field.
• 10+ years experience in developing Python and Node.js backend applications
• 10+ years experience in designing database systems using MySQL, PostgreSQL and MongoDB.
• Solid experience working with Containerization technologies (Docker, Kubernetes, etc..)
• Experience with Front End development using JavaScript, Typescript, React.
• Experience in using agile development methodologies and practices in software development (e.g. Continuous Integration, Refactoring)
• Experience working within a Scrum team
• Experience working with Atlassian toolset (Jira, confluence, etc...) is a plus
Other Qualifications
• Bachelor's degree of Computer Science, computer engineering or an equivalent degree.
• A track record of delivering software to agreed quality and cost.