DUTIES AND RESPONSIBILITIES:
- Full-Stack Development: Create, test, and maintain scalable software applications, working on both front-end and back-end to ensure smooth user experiences.
- Legacy Software Management: Work with existing legacy systems, finding ways to improve and modernize them, and optimize and enhance old code for better performance.
- System Design and Architecture: Collaborate with the team to design robust, scalable, and secure software solutions, and participate in code reviews and technical discussions.
- Continuous Learning and Adaptability: Keep up with emerging technologies and industry trends, continuously improving your skills through self-learning and professional development.
- Problem-Solving: Analyze complex problems and come up with innovative solutions, debugging and fixing technical issues quickly and effectively.
- Collaboration and Communication: Work closely with cross-functional teams, including product managers, designers, and other engineers, communicating effectively to ensure project success.
- Testing and Quality Assurance: Develop and run comprehensive tests to ensure software quality, and participate in improving our development process and best practices.
- Documentation: Create and maintain detailed documentation for development processes, code, and systems, keeping documentation up-to-date and accessible to the team.
KNOWLEDGE, SKILLS AND ABILITIES:
- Proficiency in multiple programming languages and frameworks (e.g., JavaScript, Python, Java, C#, etc.).
- Strong understanding of front-end technologies (e.g., HTML, CSS, VueJS, NuxtJS) and back-end technologies (e.g., Node.js, Django, Spring).
- Solid understanding of microservices architecture and related design patterns.
- Ability to write clean, maintainable, and efficient code.
- Strong unit testing skills to ensure code quality and reliability.
- Experience working with and modernizing legacy systems.
- Excellent problem-solving skills and attention to detail.
- Strong communication and collaboration skills.
- Ability to work in a fast-paced, dynamic environment.
- Experience with strongly typed languages is a plus
EDUCATION AND EXPERIENCE:
- Proven experience as a Software Engineer or similar role.