JVM Memory Profiler
Java Virtual Machine (JVM) provides a runtime environment for running the Java byte code while having an abstraction from the underlying OS. JVM memory management is still a very complex problem and having the visibility into the JVM memory usage over the lifetime of the application would be a really good metric for debugging applications. This will be really helpful in pretty much any java based application.
The idea is to create a pluggable utility which can be run with any java application. Uber has an open source project on the similar lines. This utility can be built as an extension to that and can leverage its groundwork. If things workout well, we can try to contribute this back to the Uber's open source JVM profiler. Additionally, apart from more components can be added to this.
Expected outcome -
User should be able to pass the config to get the application profiled. The idea is to create a time series data on the memory usage over the lifetime of the application. User should be an option to see the memory usage during the application run. Also at the JVM termination (successful/failure), we should also print the usage graph to the command-line.
Prior experience with Java/Scala based application development would be a huge plus
Project Duration (in Months)
Number of openings
Many of the scalable web applications, distributed system are still primarily built using Java. Apart from the OOP concepts, having understanding of the Java runtime, Java memory management is key in developing high performant applications. This project will a good starting point to venture into this domain.
Apart from the normal project details, try to mention which programming language, framework or database you used and why you chose those.