Senior Software Engineer - Backend JD
We are seeking multiple talented and experienced Senior Product Engineers to lead the design and development of new and existing products. As a pivotal member of our engineering team, you should possess strong analytical and design skills, a profound understanding of software design principles, and advanced problem-solving capabilities. A top-notch Senior Product Engineer will not only transform ideas into high-end products but also drive team success through exemplary leadership, fostering an environment of learning and adherence to best coding practices. Our goal is to consistently exceed the expectations of our customers with outstanding product solutions.
Job title: Senior/Lead Software Engineer
Work Location: Remote
Department: Engineering
Reports to: CTO
Min Relevant Experience: 4+ years
Responsibilities:
- Own the design, strategy, and quality of software development for your team.
- Translate objectives into iterative MVPs, evaluate, and then refactor into a scalable and extensible design.
- Design and develop highly scalable, reliable, secure, and fault-tolerant systems with a clean code base, requiring minimal guidance.
- Mentor team members, review code, and advocate for improvements to ensure high standards.
- Continuously research new technologies and tools to enhance product offerings.
- Exercise high ownership and initiative in all projects.
- Analyse different technical options for a problem statement, evaluate them with pros and cons and propose optimal solutions based on thorough research.
- Collaborate with other engineering teams to learn from and share best practices.
Requirements:
- Experience: Minimum of 4 years in software development, with practical experience in creating, testing, deploying, and designing large-scale applications for consumer or enterprise products.
- Programming Skills: Proficient in various programming languages including Golang, JavaScript, Ruby, Python, and Java. Eagerness to learn additional languages as needed.
- API Design: Skilled in designing and implementing high-performance RESTful and GRPC services with low latency.
- Infrastructure Tools: Experienced with tools such as Ansible, Terraform, Docker, Kubernetes, and databases including PostgreSQL, MySQL, and MongoDB.
- Development Practices: Proficient in Agile methodologies, Test-Driven Development (TDD), Continuous Integration and Deployment (CI/CD).
- Software Concepts: Excellent understanding of memory management, performance optimization, concurrency and multithreading, fault tolerance, and security.
- Design and Architecture:
- Object-Oriented Programming and Design Patterns: Strong grasp of object-oriented programming principles, coupled with proficient use of design patterns to solve complex problems and enhance code maintainability and scalability.
- Domain Modelling: Exceptional ability to model complex real-world processes and interactions into clear and effective software solutions. This involves leveraging OOP and design patterns to ensure that the software architecture aligns closely with business needs.
- Communication Skills: Exceptional verbal and written communication abilities, with a proven track record of effectively engaging with both internal and external stakeholders.