
Principal Software Engineer - Java
- Bangalore, Karnataka
- Permanent
- Full-time
- Supply Chain optimization,
- Pricing strategy,
- Service Lifecycle Management (e.g. warranty management, field service management, service parts management, knowledge management).
- You will engage in conversations with different stakeholders to elicit requirements, discuss technical approaches for the solution.
- You will design, develop and deploy solutions, microservices with focus on high availability, low latency and scalability.
- You will be developing solutions across the full stack of Web technologies – Persistence, Services, Platform, Performances, and with a focus on great experiences.
- You will have to write and maintain deployment scripts and process for the services owned by you and your time
- You will be exposed to cloud technologies on the AWS public cloud. Your solutions will have to take advantage of some of the cloud service capabilities and be cost optimal.
- You will participate in periodic and on-demand postproduction care activities for services.
- You will participate in technical discussions and contribute with ideas to define architecture & design conforming to identified functional and non-functional requirements.
- You will produce high quality artifacts including and not limited to requirement analysis, design, deployment and documentation for services you own, manage.
- 8-13 years of development experience, 4+ years of Java and web technology experience.
- Solid experience building service-oriented systems with Java, Spring Boot, Hibernate/JPA, Kafka, DBMS (SQL, NoSQL)
- Very Strong emphasis in object-oriented design and analysis, design patterns and best practices
- Deep understanding with hands on experience of Web technologies, Microservices and databases.
- Experience with tools such as Maven/Gradle, Git, Jenkins, Github
- Experience with RESTful web-services, event-driven architectures and GraphQL services
- Experience in building, enhancing & maintaining low-latency, highly available multi-tenant systems, techniques and approaches
- Strong communication skills and ability to articulate ideas and ability to effectively communicate product architectures, design proposals
- Ability to write automated unit, integration or functional tests that verify system expectations.
- Self-driven, able to work independently to complete assigned tasks
- Structured about work, understands how tasks can be broken down, estimated. Understanding of Scrum process and tools like Jira, Confluence
- Comfortable working with Linux/Unix development environment and tools.
- Ability to guide junior team members.
- Exposed to design and development in a secure Distributed Microservices oriented architecture which utilizes the auto-scaling, robustness and resiliency of IaaS platforms such as AWS
- Experience with Continuous Integration and Continuous Deployment tools and techniques.
- Experience with Go, Node.js (JavaScript/Typescript), Python and related tooling
- Experience with frontend web technologies & frameworks like Angular, PWA, Micro-frontends
- Experience with NoSQL data stores such as Redis, DynamoDB/Cassandra, Elasticsearch
- Experience with instrumenting applications & services for observability using tools like Prometheus, OpenTelemetry
- Familiarity with agile software development with experience driving product backlogs.
- Optimize JVM based services for optimal performance & operation with focus on observability, performance and cost consumption.
#LI-Remote
#LI-Hybrid