Roles & Responsibilities :
Actively drive discussions to improve product across engineering teams, wherever there are inter dependencies across products
Influence product requirements & operational plans while working with product manager to estimate and plan projects in agile development framework
Instil best practices for development and champion their adoption, Mentor junior engineers on software design, coding practices and TDD strategies
API Definitions and end-to-end service design and implementations
Design applications in true service oriented architecture
Develop object-oriented models and design data structure for new software projects taking systems aspects into account
Participate and contribute in discussions and decisions for creating and improving architecture across applications.
Make correct design choices in the context of problem for datastore, caching, search, scaling etc.
Write good quality, modular, reusable, performant, well documented, unit-tested code, Identify the areas and approach to refactor and simplify the modules;
refactor code to improve code quality and bring modularity and simplicity.
Translate high level business problems into scalable design and code
Create common libraries & Utilities to be used by multiple engineering teams
Requisites / Prerequisites :
BE or higher in Computer Science or related technical discipline (or equivalent)
Minimum 5 years of experience in product based company
Strong expertise in at least one programming language & tech stack for web development to write maintainable, scalable, unit-tested code
Strong object oriented design skills, knowledge of design patterns, data structures and algorithms
Strong expertise of working with relational and nosql databases
Experience in building large complex business applications with only high level tech guidance
Experience leading multi-engineer projects and mentoring junior engineers
Experience with full life cycle development on a Linux / ubuntu platform
Prior experience in working with Agile software methodologies (XP, Scrum)
Knowledge of Test Driven Development