Software Engineer (Backend, 5-7 Years)- Financial Services
Role & Responsibilities
- Build Robust and scalable web-based applications. You will need to think of platforms & reuse.
- 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 modelling, 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 views 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.
Requirements-
- 4+ years of experience in the art of writing code and solving problems on a Large Scale (FinTech experience preferred).
- B.Tech, M.Tech, or Ph.D. in Computer Science or related technical discipline (or equivalent).
- Excellent coding skills – should be able to convert the design into code fluently. 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, concurrency programming, object-oriented design skills, knowledge of design patterns, and huge passion and ability to design intuitive modules, class-level interfaces and knowledge of Test driven development.
- Good understanding of databases (e.g. MySQL) and NoSQL (e.g. HBase, Elasticsearch, Aerospike, etc).
- Experience in full life cycle development in any programming language on a Linux platform and building highly scalable business applications, which involve implementing large complex business flows and dealing with a huge amount of data.
- Strong desire for solving complex and interesting real-world problems.
- Go-getter attitude that reflects in energy and intent behind assigned tasks
- An open communicator who shares thoughts and opinions frequently listens intently and takes constructive feedback.
- 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.