Technical Architect - .Net Core + Azure (Only Bengaluru)
Publicis Sapient
Bangalore Urban, Karnataka, India
Job Description JOB SUMMARY You should have exceptional verbal and communication qualities and be able to present and communicate technical designs and solutions to peers. You should interact clearly with clients and the on-shore and off-shore project teams. You should have exceptional written skills for solution documentation creation for both technical and non-technical material. You should be able to work with minimum supervision and meet deadlines. As the Subject Matter Expert on Dot Net, you will bring in-depth development, design, and architecture expertise to lend support to the delivery of complex solutions on that platform. Your Impact Architecture & Design Prepare high-level architecture of application with various viewpoints like development, security, deployment, information, etc Identify and Establish various architecture patterns within the application Work with stakeholders to provide various architecture options with pros and cons Prepares the technical design of the technology components within the module (one or more client/web presentation tier, server tier, data access and data model, integration component, package function customization) Define the architecture of design of the application keeping various support team requirements in view Participates in design reviews and provides insightful comments to improve the design quality and design conformance to standards Provides innovative solutions to technical issues during the project that could impact one or more modules of the project Own solution and define the architecture of the application with the impact of the application in the grand scheme of things Provide a point of view in selecting the right set of tools and technology for the project including buy v/s build options Call out various platform, technology, delivery, team, and vendor risks to stakeholders along with a mitigation plan Define testing strategy, data/application migration strategy Work with stakeholders to define the application roll-out plan and application adoption plan Development Implements (hands-on) the module components based on Sapient and industry best practices Develops base components, reusable frameworks/components, and POCs to accelerate development on projects Supports the module in production, resolves hot issues, and implements and deploys enhancements to the application/package Works with/helps other team members to resolve technical issues Establish patterns or framework to manage cross-cutting concerns of application Establish automated build and release processes and tools in the project Establish SDLC processes around build, testing, deploying, monitoring,ing and improve Help team to move left for deployments and testing cycles Measure and improve delivery quality metrics Make sure the right set of environments is available for various teams and various releases Standardize the set of tools needed for the development, testing, release, and monitoring of the application Own and define NFR for application as part of application design Establish and govern engineering best practices within the team Build an eco-system of tools that will help in improving the efficiency and quality of the development/testing team Define a capacity plan of solution based upon various environments along with scalability needs Work with the testing team to define automation goals and bring as much automation as possible Planning Tracking & Estimation Estimates the implementation and deployment of the module based on design architecture, testing strategy, and overall project plan Reports progress and issues to the Manager in a timely manner. In particular, to relay issues that might impact the quality or the ability to deliver to timescales or estimates Team Provide tech mentorship to the team so that they can learn the right patterns, write quality code and testable code Provide thought leadership in the team to learn new technologies and patterns faster Qualifications Your Skills & Experience: 10+ years of strong development skills in .NET framework and .NET core framework Should have excellent acumen in Data Structures, Algorithms, problem-solving, and Logical/Analytical skills. Thorough understanding of OOPS concepts, Design principles, and implementation of different types of Design patterns. Good understanding of application architecture patterns, integration patterns, deployment patterns, data storage, and processing patterns Sound understanding of concepts like Exceptional handling, Serialization/Deserialization Immutability concepts, etc. Good fundamental knowledge in Enums, Collections, Annotations, Generics, Autoboxing, etc. Experience with Multithreading, Async-await/TPL/Reactive programming, and Concurrent collections Good understanding of .NET resource management including garbage collection concepts. Experience in RDBMS or NO SQL databases and writing SQL queries (Joins, group by, aggregate functions, etc.) Skilled in database programming (stored procedures, triggers, functions) and a good understanding of ADO.NET/ORM frameworks Hands-on experience with messaging/data streaming platforms like RabbitMQ, ActiveMQ, Kafka, etc Hands-on experience with frameworks around managing application cross-cutting concerns like logging frameworks, Dependency Injection frameworks, configuration management frameworks Experience in developing cloud applications using PaaS, SaaS, or IaaS options Experience in developing/migrating on-prem applications on cloud platforms Good understanding of automated provisioning of cloud-based resources with appropriate access controls Hands-on experience with any scripting language like Powershell, python, etc Should have a good understanding of code build, test, quality check, and release tools like Git, MSTest, TFS, MSBuild, Jenkin/Bamboo/Octopus, cloud devops tools, etc. Good communication skills and ability to work with global teams to define and deliver on projects. Hands-on experience in MicroServices architecture with a good understanding of key Microservices-based patterns Hands-on experience in creating and consuming MicroServices using .NET Core APIs Experience in security, transaction, Idempotency, log tracing, distributed caching, monitoring, and containerization requirements of Microservices Must have experience in AJAX, JQuery, and at least one JavaScript framework (like Angular, React, etc) Experience in writing Unit test cases using MSTest and mocking frameworks. Skilled/Experienced in writing end-to-end automated tests using BDD f/w like spec flow Understand and experience with application monitoring tools like new relic, ELK stack, app dynamics, or cloud monitoring tools Experience with automated on-demand provisioning of environments with various scalability needs Experience in measuring and improving the speed, quality, and team effectiveness Cloud-related experience (Azure only) Design and develop applications security considerations (eg. Data security through API endpoints etc) Hands-on experience to design and develop enterprise logging and monitoring for cloud-native platforms (including monitoring tools and dashboards knowledge) Hands-on experience on Azure cloud platform storage services (object storage, data storage, file storage, etc) Hands-on experience on Azure platform API Management Service Hands-on experience with Azure integration services (Azure Service Bus) Hands-on experience to create, deploy, configure, and scale IaaS, PaaS & SaaS applications (including considerations to manage cloud cost optimizations) Hands-on experience to design and implement data protection options, including HA and BCP protection (Iaas, PaaS & SaaS applications) Should have hands-on experience in unit testing for cloud-native applications (eg unit testing for serverless components) Please note – This role requires the employee to be locally based out of Bangalore and should be open to travel to the client office in Bangalore twice or thrice a week (basis demand). PERSONAL ATTRIBUTES Strong written and verbal communication skills Articulation skills Good team player Self-starter who requires minimal oversight Ability to prioritize and manage multiple tasks Process orientation and the ability to define and setup processes Mentoring team members Self-motivated and quick learner Additional Information Gender-Neutral Policy 18 paid holidays throughout the year for NCR/BLR (22 For Mumbai) Generous parental leave and new parent transition program Flexible work arrangements Employee Assistance Programs to help you in wellness and well being Company Description Publicis Sapient is a digital transformation partner helping established organizations get to their future, digitally-enabled state, both in the way they work and the way they serve their customers. We help unlock value through a start-up mindset and modern methods, fusing strategy, consulting and customer experience with agile engineering and problem-solving creativity. United by our core values and our purpose of helping people thrive in the brave pursuit of next, our 20,000+ people in 53 offices around the world combine experience across truly value.