Lead Software Engineer - Full Stack
Afiniti
- Pakistan
- Permanent
- Full-time
- Develop software solutions using both front-end and back-end technologies
- Design and implement applications in accordance with established standards and practices
- Test and debug software to ensure optimal performance and reliability
- Collaborate with cross-functional teams to identify and solve complex issues
- Create and maintain documentation of software solutions
- Provide technical guidance to junior developers
- Keep up-to-date with emerging trends, technologies, and tools within the field
- Work with development teams and product managers to ideate software solutions
- Troubleshoot, debug, and upgrade software
- Create security and data protection settings
- Bachelor's degree in Computer Science or a related field
- 7-9 Years of experience
- Currently leading a team
- Proven experience with programming in Javascript/Typescript.
- Strong understanding of web technologies and JavaScript frameworks
- Experience with front-end frameworks such as Angular, React, or Vue
- Knowledge of back-end frameworks such as Express or NestJS
- Familiarity with version control systems, such as Git or Subversion
- Excellent problem-solving and analytical skills
- Strong communication and collaboration skills
- Ability to work independently and within a team
- Familiarity with DevOps principles and practices is a plus
- Experience with NPM and Node.js packages such as axios and async,
- JavaScript build tools (e.g. Webpack, Babel.js)
- Knowledge of Angular would be a plus
- Have good knowledge of SOLID design principles and design patterns
- Must have at least one year of experience in leading a team of more than 3 developers.
- Experience in unit & integration testing and Unit testing with frameworks like Jest/Mocha,
- Understanding of basic front-end technologies. For example; HTML5 and CSS3,
- Understanding of asynchronous programming and its workarounds,
- Experience in developing Software Applications in a Linux environment, and deploying using Docker containers,
- Demonstrable Experience in Boost, TCP/IP Sockets, and multi-threaded programming would be a plus,
- Practical knowledge and experience in user authentication and authorization between multiple servers, systems, and environments,
- Good with fundamental design principles to build a scalable application,
- Knows the tools like Git,
- Error handling and debugging,
- Database basics,
- Microservices architecture and Architectural patterns basics
- Performance testing and optimization techniques.