company :https://shurutech.com/
position: remote(full time)
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.
#LI-Remote
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 or Java
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.