Hello! I'm Rahul Aher, a seasoned Sr. Software Engineer at Morningstar, passionate about architecting transformative software solutions. With a results-oriented mindset, I pursue complex challenges in Software and Product Development.
I excel in web development, mastering Java, JS, and cloud technologies. Committed to innovation, I leverage expertise to boost team performance in dynamic environments.
I'm passionate about continuous learning and believe in the value of hands-on experience. I actively learn new concepts, ensuring a deeper understanding of each topic. This proactive approach fuels my growth mindset and fosters ongoing professional development.
I am dedicated to continuous learning, and I reinforce my understanding of new concepts by applying them to real-world projects. This approach not only enhances my skills but also allows me to delve deeper into each concept, ensuring a comprehensive understanding.
I love to share my knowledge and experience with the community. I mentor CDAC students, guiding them into the software world. I enjoy collaborating on problem-solving, discussing optimal abstractions, and refining architecture to ensure successful outcomes.
“Offline-first is not just a feature, it’s a mindset. It’s about building resilient systems that empower users, no matter their connection status.” — Akshat Paul
This course is designed to take you on a comprehensive journey into the world of JavaScript, from its foundational principles to advanced concepts. We'll start by exploring the language's core syntax, data types, and control flow, helping you build a solid understanding of how JavaScript works. You'll learn about key features like prototypes, closures, and the event loop, which are essential for writing efficient and powerful code.
NodeJs is a powerful JavaScript runtime that enables fast, scalable, and event-driven server-side development. This course offers an in-depth exploration of NodeJs internals - covering its architecture, core concepts, and essential components such as the JavaScript engine and libuv. You'll gain a solid understanding of the NodeJs ecosystem, including how its asynchronous model and event loop function under the hood. With a strong focus on hands-on learning, the course guides you through building real-world backend applications from scratch using Express.js and MongoDB.
This course is designed to take you from Zero to Hero in Frontend System Design. Through a combination of in-depth tutorials and practical, real-world examples, you’ll gain hands-on experience in designing scalable and efficient frontend architectures. The curriculum follows a ‘learn by doing’ approach, ensuring that even the most complex topics are grounded in real application scenarios. Whether you're aiming to build robust frontend systems or preparing for your next Frontend System Design interview, this course equips you with the skills and confidence to succeed. Start your journey today.
Launching soon..!!
“Offline-first is not just a feature, it’s a mindset. It’s about building resilient systems that empower users, no matter their connection status.” — Akshat Paul
This Full-Stack Real-Time Chat Application demonstrates how to build a fully functional web and mobile chat app using modern technologies like NodeJS, Angular, Ionic, and MongoDB. The app allows users to engage in live conversations with real-time messaging, upload images, and interact with others via a seamless, interactive interface across both web and mobile platforms.
In this project, I built a dating application using ASP.NET Core for the backend and Angular for the frontend, creating a full-stack solution that enables users to interact and connect in real-time. The app offers various essential features for a dating platform, such as user authentication, profile management, private messaging, and real-time notifications.
Consistency and standards are important for building a unified design language and help the user know what to expect from our product and how to use it. However, this does not mean sacrificing the user experience. In this sense, the context and needs of our users are priorities when developing our solutions.
“You might not think that programmers are artists, but programming is an extremely creative profession. It’s logic-based creativity.” — Alex Litcher
REST which stands for Representational State Transfer is an architectural style that governs how API are designed and built. REST’s popularity and ease of implementation make it the most preferred API architectural style for modern-day software development as compared to other protocols such as SOAP (simple object access protocol). REST API or RESTful web services have become the backbone for efficient communication between client and server in modern-day software development. However, to build efficient and robust REST API, it is crucial to follow some standard best practices. In this blog, we’ll explore REST API best practices that can help you build scalable, maintainable, secure, and robust API.
While consistency is vital, it’s essential to understand that achieving strong consistency in distributed systems can come at the expense of increased latency and reduced availability. Strong consistency may require additional coordination mechanisms that slow down operations. Therefore, choosing the appropriate consistency model involves striking a balance between data correctness and system performance, based on the specific requirements of the application and use case. Different systems may opt for eventual consistency or other weaker consistency models if absolute real-time consistency is not necessary for their functionality.
Rate limiting runs within an application, rather than running on the web server itself. Typically, rate limiting is based on tracking the IP addresses that requests are coming from, and tracking how much time elapses between each request. The IP address is the main way an application identifies who or what is making the request. A rate limiting solution measures the amount of time between each request from each IP address, and also measures the number of requests within a specified timeframe. If there are too many requests from a single IP within the given timeframe, the rate limiting solution will not fulfill the IP address's requests for a certain amount of time.
Consistent hashing is a distributed hashing technique used in computer science and distributed systems to achieve load balancing and minimize the need for rehashing when the number of nodes in a system changes. It is particularly useful in distributed hash tables (DHTs), distributed caching systems, and other distributed storage systems. Consistent hashing is a technique used in computer systems to distribute keys (e.g., cache keys) uniformly across a cluster of nodes (e.g., cache servers). The goal is to minimize the number of keys that need to be moved when nodes are added or removed from the cluster, thus reducing the impact of these changes on the overall system.