JOB DESCRIPTION
We are looking for a Senior Software Development Engineer who will be responsible for developing high-quality software solutions that meet business needs.
Your work will be pivotal in shaping the technical direction of the projects you are involved in and in mentoring junior team members to improve their skills.
You will work directly with the product head, who you will assist as his lead to manage the software design and development of all the product develop by the company or our contract manufacturer.
JOB SCOPE
Software Design and Development:
- Lead the design and implementation of complex software features or systems.
- Write clean, efficient, and maintainable code in programming languages such as C#, C++, Python, or others as appropriate.
- Apply design patterns, algorithms, and best practices to build robust, scalable systems.
Code Review and Mentorship:
- Review code contributions from other developers, ensuring high code quality and best practices.
- Mentor and guide junior engineers, helping them grow technically and professionally.
Collaboration and Problem Solving:
- Work closely with product managers, designers, and other teams to understand user requirements and translate them into technical solutions.
- Troubleshoot complex issues across the software stack and work on performance optimization.
Architecture and Technical Leadership:
- Contribute to the technical architecture of systems, ensuring scalability, security and maintainability.
- Take ownership of major system components, driving their development from inception to production.
- Ensure the codebase follows industry standards and best practices for security, performance, and reliability.
Testing and Quality Assurance:
- Develop unit tests, integration tests and other automated testing procedures to ensure software quality.
- Participate in continuous integration and continuous delivery (CI/CD) processes.
Innovation and Continuous Improvement:
- Stay up-to-date with the latest technology trends, frameworks, and development tools.
- Propose new ideas and techniques to improve software development processes and product quality.
Documentation:
- Document software design, implementation details, and testing procedures.
- Create and maintain technical documentation for internal and external use.
QUALIFICATIONS
Technical Skills:
- Proficient in one or more programming languages such as Java, Python, C++, C#, or JavaScript.
- Solid understanding of software development methodologies (Agile, Scrum, etc.).
- Strong experience in object-oriented design and design patterns.
- Knowledge of databases (SQL, NoSQL) and data modeling.
- Familiarity with cloud platforms (AWS, Azure, Google Cloud) and containerization technologies (Docker, Kubernetes).
- Experience with version control systems like Git.
- Experience with performance tuning and optimization of software systems.
Experience:
- 5+ years of experience in software development.
- Proven track record of delivering high-quality software systems.
- Experience in leading or mentoring teams of software developers.
- Knowledge of full software development lifecycle (SDLC).
Soft Skills:
- Excellent communication skills, both written and verbal.
- Strong analytical and problem-solving skills.
- Ability to work effectively in a fast-paced, collaborative environment.
- Leadership skills with the ability to make decisions and drive technical direction.
Preferred Qualifications:
- Experience in working with microservices and distributed systems.
- Familiarity with DevOps practices and CI/CD pipelines.
- Experience with automated testing frameworks and tools (JUnit, Selenium, etc.).
- Knowledge of Agile methodologies and experience working in Scrum teams.