Build abstractions and contracts with separation of concerns for a larger scope
Drive problem-solving skills for high-level business and technical problems.
Do high-level design with guidance; Functional modeling, break-down of a module
Do incremental changes to architecture: impact analysis of the same
Do performance tuning and improvements in large scale distributed systems
Mentor young minds and foster team spirit, break down execution into phases to bring predictability to overall execution
Work closely with Product Manager to derive capability view from features/solutions, Lead execution of medium-sized projects
Work with broader stakeholders to track the impact of projects/features and proactively iterate to improve them As a senior software engineer you must have
Extensive and expert programming experience in at least one general programming language (e.g. Java, C, C++) & tech stack to write maintainable, scalable, unit-tested code.
Experience with multi-threading and concurrency programming
Extensive experience in object-oriented design skills, knowledge of design patterns, and a huge passion and ability to design intuitive modules and class-level interfaces
Excellent coding skills – should be able to convert the design into code fluently
Knowledge of Test Driven Development
Good understanding of databases (e.g. MySQL) and NoSQL (e.g. HBase, Elasticsearch, Aerospike, etc)
Strong desire to solve complex and interesting real-world problems
Experience with full life cycle development in any programming language on a Linux platform
Go-getter attitude that reflects in energy and intent behind assigned tasks
Worked in a startups environment with high levels of ownership and commitment
BTech, MTech, or Ph.D. in Computer Science or related technical discipline (or equivalent).
Experience in building highly scalable business applications, which involve implementing large complex business flows and dealing with a huge amount of data.
An open communicator who shares thoughts and opinions frequently listens intently and takes constructive feedback.
The ability to drive the design and architecture of multiple subsystems
Ability to break-down larger/fuzzier problems into smaller ones in the scope of the product
Understanding of the industry’s coding standards and an ability to create appropriate technical documentation.
You will build Robust and scalable web-based applications
You will need to think of platforms & reuse