
About Rivigo
About
Company video


Photos
Connect with the team
Similar jobs
Roles and Responsibilities
Code, develop, design and architect features related to the existing application. We expect you to own modules end to end and take pride in the work products you ship.
Lead from the front, when it comes to delivering high quality work products. Serve as a mentor to the team members
Create and define performance metrics. Ideate, innovate and hack through the existing systems to improve performance
Perform code reviews, set coding practices and guidelines within the team.
Make sense of the product specs, be nimble in getting the issues resolved. Be a thought leader.
Critical Functional Skills
Solid understanding and knowledge of Java/C/C++. You should understand the concepts of multithreading, I/O, messaging, instrumentation etc and their implementation in Java/Any other ObjectOriented Language.
Proficiency in the implementation of algorithms and the use of advanced data structures to solve problems in computing. A solid foundation in the principles of computer science is desired.
Ability to write clean, modular, and loosely coupled code by the use of design patterns.
He/She should be able to break down and architect complex software systems. For example
BuildCars Availability Engine for Ola.
Strong decisionmaking ability
Deep expertise in at least one programming language & tech stack.
Substantial experience in building complex and scalable solutions.
Strong object oriented design skills, ability to apply design patterns, and an uncanny ability to design intuitive module and class level interfaces
The ability to do deep problem solving and build elegant, maintainable solutions to complex problems.
Experience leading multi engineer projects and mentoring junior engineers
Experience with full life cycle development in any programming language on a Linux platform
Comprehensive operational experience including, optimizations, deployments and tuning servers like apache/mysql/tomcat/solr
Prior experience in working with Agile software methodologies (XP, Scrum), TDD, and Continuous Integration(CI/CD) a plus.
Experience in building data driven web application design and development is a plus
Expert level experience in building a scalable, large and complex business application
.Experience Required
:Typically with an experience of 5+ years of development experience in a product firm.
Must have lead, designed, architected and delivered at least 1 project in his previous assignments independently.
Minimum Qualifications Required
Btech/MS from a reputed Institute
Deep expertise with any or combination programming languages: Java, C++, C#, Ruby, Scala,
Go any object oriented high level proprietary or open source language with strong programming constructs. We are not skill specific but go by strength in competencies Machine coding Single machine in memory program
Need a working code with functionality Readable and well designed code with right abstractions, separation of concerns,right design patterns
Performant code with concurrency and efficient data structures
Write test cases covering the happy path and edge cases
Problem Solving
Choose the right combination of data structures to solve the problem
Identify most edge cases for the problem
Identify opportunities of parallelism: utilizes multicore solutions where applicable
Design & Architecture
Distributed systems design and system interaction
Identify API signatures
LLD with class design
Solve for performance & availability
- Experience: 1+ yrs - 3yrs
- Key Skills:
- Expert Proficiency in anyone the below programming language - Java, Node JS, PHP or GoLang
- Expert Computer Science fundamentals like Data Structures, Algorithms, Time Complexity, and others
- Strong Microservices, REST API, Git source control, CI/CD, and other latest technology trends
- Strong System Design, DB Design proficiency
- Strong knowledge in Design Patterns, best software development practices
- Good exposure to working in Open Source stack, E-Commerce, or Fintech domain.
Providing technical expertise for every phase of the project lifecycle—from concept
development to solution design, implementation, optimization and support. Interacts
with a set of clients (client senior developers and architects) to create technology
specifications from business requirements for one of the modules within the project.
Prepares the technical design of the more complex technology components within the
module (one or more of client/web presentation tier, server tier, data access and data
model, integration component, package function customization).
Assists the architect in articulating the pros and cons of using a certain technology stack
or component or design pattern versus another to the clients and project team and
drives selection of technologies, designs to come up with the optimal architecture.
Drives the performance tuning, re-design and re-factoring for a module.
Contributes to designing and implementing the build, releases process as well as system
configuration and deployment characteristics of the application.
Required Tech Stack
2+ years of strong development skills in Java with JDK 1. 8 & above version &
Microservices with Spring boot/ Spring.
Should have strong acumen in Data Structures, Algorithms, problem-solving and Logical/
Analytical skills.
Thorough understanding of OOPS concepts, Design principles and implementation of
different type of Design patterns.
Sound understanding of concepts like Exceptional handling, Serialization/Deserialization
and Immutability concepts, etc.
Good fundamental knowledge in Enums, Collections, Annotations, Generics, Auto
boxing, etc. Experience with Multithreading, Concurrent Package and Concurrent APIs Basic
understanding of Java Memory Management (JMM) including garbage collections
concepts.
Experience in RDBMS or NO SQL databases and writing SQL queries (Joins, group by,
aggregate functions, etc.)
Experience with at-least one NoSQL (Any of Cassandra/Couch base/Hadoop), Hands-on
experience with JMS
Hands-on experience in creating RESTful webservices and consuming webservices
Hands-on experience with Spring.
Hands-on experience with any of the logging frameworks (SLF4J/LogBack/Log4j)
Experience of writing Junit test cases using Mockito / Powermock frameworks.
Should have practical experience with Maven/Gradle and knowledge of version control
systems like Git/SVN etc.
Good communication skills and ability to work with global teams to define and deliver
on projects.
Sound understanding/experience in software development process, test-driven
development
Responsibilities
- Writing clean, high-quality, high-performance, maintainable code
- Develop and support software including applications, database integration, interfaces, and new functionality enhancements
- Coordinate cross-functionally to insure project meets business objectives and compliance standards
- Support test and deployment of new products and features
- Participate in code reviews
Skills & Qualifications
-
4-12 years of experience in Java Development.
-
Excellent verbal and written English communication is a must. You may have to interact with clients directly.
-
Technology agnostic approach is a must. Ready to adopt new technology and a faster learning curve.
-
Writing scalable, maintainable and reusable code.
-
Keen interest in SAAS based products and mobile applications.
-
Experience working with Distributed Systems
-
Java, Spring Boot, Microservices, API Design Experience with Event-Driven Architecture, Multithreading
-
Kafka iOS Experience with Event Sourcing Reactive and Functional
-
Programming Strong understanding of best practices for creating/working with Microservices
-
Experience implementing Message Brokers and Messaging subsystems(experience working with Kafka a strong plus)
-
Be open-minded, creative, and self-critical; be collaborative and communicative
-
Have experience with and curiosity about agile and lean philosophies
-
Experience working with small teams to ship products to market
-
Have experience developing full-service consumer, employee and business applications
-
Language agnostic and experienced polyglot Passion for Working Software and SOLID principles
-
Experience with designing and refactoring complex systems
-
Experience with Test-Driven Development (TDD) Interest in working in a pair-programming environment Deep understanding of design patterns and applying them in production environments
-
Passion for enabling team members
-
Java 8 or Java 11. Both are LTS. The project will be on Java11
-
Spring Boot
-
Git
-
SQL
-
AWS and AWS Aurora
-
Microservices
-
Multithreading
Perks
- Flexible time schedule.
- Work from home or work from anywhere.
- Health insurance.
- Team building activities.
- Training and conference tickets.

Preferred Skills:
We want to really emphasize Spring Boot (2+ years although 1+ if candidate particularly strong) Using Redis as a caching technology with Spring Boot would be a strong plus
Using Redisson (a particular java client library that can be easily configured with Spring Boot) would be a strong plus
Knowledge of event based messaging systems (Amazon SNS, Amazon MQ, or Kafka (in AWS) Data Cleaning tools and techniques in CSV and Excel
Strong Knowledge of Spring Boot Dependency Injection and Configuration
Experience with APIs for popular e-commerce platforms (Magento, Shopify, Big Commerce, etc.)
SDLC (Software Development Lifecycle) Tools in the context of AWS. (Tools classified under DevOps)
Experience with managing AWS EC2 VM instances and using AWS managed Services (like S3, MySQL, VPC/Networking, Lambda, etc)
Performance Analysis Tools (Code Profiling) on Java VM and particularly Spring Boot
Experience in the development of Workflow or Business Process ApplicationsNice to Have:
Experience with Cassandra or MongoDB with Spring Boot
Horizontal Scaling with Spring Boot (considerations running multiple instances of Spring Boot instances)
Experience with placing Spring Boot applications in Docker/Kubernetes container ecosystems (especially in AWS)
Search technologies such as Lucene/Solr- Independently own one or more multiple modules, which includes: requirement analysis, design, development, maintenance & support
- Write extensive, efficient code to address complex modules and that handles interaction between multiple components.
- Rapidly iterate to add new functionalities and solves complex problems with simple and intuitive solutions
- Produce architecture with clean interfaces, that are efficient and scalable
- Participate and contribute to architectural discussions
- Perform design and code reviews
- Perform technical feasibility and trade off studies & guides others to perform these studies
- Solve production issues. Investigate and provide solutions to minimize the business impact due to outage
- Continuously improve performance metrics of modules you own.
- Actively mentor and develop junior developers in all software development practices
- Participate in the hiring process (referrals, interviews, attending recruiting events or writing blogs)
- Onboard and mentors new team members, helps shape the culture of the team






