Key Responsibilities:
- Design, develop, and implement high-quality, scalable, and maintainable software solutions across the full stack, utilizing Scala, JavaScript, or Java as primary programming languages.
- Translate complex business requirements into technical designs and scalable architectures.
- Write clean, efficient, and well-documented code following best practices and coding standards.
- Participate actively in code reviews, providing constructive feedback and ensuring code quality and adherence to architectural guidelines.
- Collaborate closely with Product Managers, UX/UI Designers, and other engineers to define, prioritize, and deliver features.
- Lead the troubleshooting and debugging of complex software issues, ensuring optimal performance and stability of applications.
- Contribute to the continuous improvement of our software development processes, tools, and technologies.
- Mentor and provide technical guidance to junior and mid-level engineers, fostering their growth and development.
- Stay up-to-date with emerging technologies and industry trends, evaluating and recommending their adoption where appropriate.
- Ensure the security, reliability, and performance of applications.
Required Qualifications:
- Bachelor's or Master's degree in Computer Science, Engineering, or a related technical field.
- 5+ years of professional experience in software development.
- Strong proficiency in at least one of the following programming languages: Scala, JavaScript, or Java. (Experience in multiple is a plus).
- Solid understanding of software engineering principles, design patterns, data structures, and algorithms.
- Experience with building and consuming RESTful APIs and microservices.
- Familiarity with relational databases and strong SQL skills.
- Experience with version control systems (e.g., Git).
- Demonstrated ability to deliver high-quality, scalable, and performant software solutions.
- Excellent problem-solving and analytical skills.
- Strong communication and collaboration skills, with the ability to articulate technical concepts to both technical and non-technical audiences.
- Experience working in an Agile development environment.