- As a Senior Software Architect , you will be part of the technical team that develops, deploys, supports and maintains mission critical, distributed enterprise applications
- You will be involved in ensuring the availability of the products and infrastructure on which these are hosted
- You will be learning about the supported products and related technologies
- You will be working closely and collaborating with the Product Managers and SMEs in carrying out your day-to-day activities
- You will also be coordinating across various infrastructure teams while supporting the products that are part of the team
- You will have access to various deployment, monitoring and troubleshooting tools that you would be using to do the job
Job Responsibilities
- Review and understand the business requirements and translate them into a viable implementation architecture.
- Identify system requirements and work with entire product development team to refine the same.
- Lead the definition of system architecture and detail-out the solution design to ensure that it is scalable, robust, high-performing and extensible.
- Ensure fault-tolerance and high-availability built into the system.
- Prepare implementation analysis, Proof-of-concepts, cost analysis and document the same for review and decision-making.
- Prepare Performance Testing (Load and Stress testing) plans to validate the system design and architecture for scalability.
- Interact with various stakeholders from the management and peer teams to provide the needed clarity on a given implementation or on the product itself.
- Write concise and clear technical specifications based on analysis of complex business requirements.
- Define, maintain, and support development environment while adopting industry best practices and tools.
- Develop high-quality and detailed system designs.
- Identify risks and conduct mitigation action planning while keeping the management informed.
- Review the work of other developers and provide prompt feedback.
- Keep a critical eye on what is being injected into the code base.
- Fully own the codebase and ensure that it is in alignment with the best industry practices and is clean and green at any given time.
- Red-flag any flaws within the existing design in terms of performance, costs or security and come up with ways to mitigate and correct.
- Provide necessary support for the product in Production.
- Take part in regular architectural review meetings.
- Work in agile-scrum development environment.
Qualifications and Skills
- At least 12 years of Software development experience in Java stack.
- Experience with the following technologies: J2EE, Spring
- At least 3 years of Software development experience with Python.
- At least 3 years of solid experience on cloud product development using AWS.
- Strong knowledge on Software Design Patterns.
- At least 3 years of experience working with ElasticSearch or OpenSearch.
- Experience working with an RDBMS as a Software Developer, such as MySQL, Oracle or MS SQL Server.
- Strong knowledge of concurrent programming challenges: multi-threading, race conditions, deadlock, semaphores, etc
- Demonstrable experience with web technology stack, including but not limited to: Core Java, Webservices, REST, Microservices, JavaScript, React, Angular, AngularJS, HTML 5, CSS, JSON, node.js, Protractor, Bootstrap, and other client-side frameworks.
- Experience of building and consuming REST APIs in building scalable, modern Web 2.0 applications.
- Understanding of software development lifecycle stages required to enhance and mature CI/CD pipeline, automated tests and DevOps tooling.
- AI/ML expertise is a big plus.
- Strong knowledge of design and architecture for large scale applications.
- High energy, proactive and approachable personality who enjoys solving diverse problems with a go-getter attitude.
- Strong oral and written communication skills are a must.
- Ability to positively interact with all members of development team and product teams
- Self-starter capable of working on small teams in a fast-paced environment. Excellent analytical and organizational skills; strong deductive reasoning.
- Ability to multi-task and work in separate projects in a fast paced & dynamic environment and tight timelines.
- Should have a passion for technical excellence.
- B.Tech/B.E/M.Tech degree in Computer Science or related engineering streams/ M.S. in Computer Science