User:Vishnuparammal: Difference between revisions

Jump to navigation Jump to search
1,008 bytes added ,  28 March 2020
no edit summary
No edit summary
No edit summary
Line 14: Line 14:
== E: Coding experience ==
== E: Coding experience ==
* '''C/C++:''' I started using C++ as a part of my college curriculum. Additionally, I studied data structures in C++. I moved on to use it in various micro-controller based projects. Describing a few of them:
* '''C/C++:''' I started using C++ as a part of my college curriculum. Additionally, I studied data structures in C++. I moved on to use it in various micro-controller based projects. Describing a few of them:
**'''3D Mapping and odometry:''' Obtaining 3D point cloud of a closed room and performed odometry using 1D LiDAR sensor and servos. The C++ code was written into Atmega16 micro-controller. For plotting the points, I used python matplotlib library. Project Link [https://github.com/Vishnuparammal/3D_mapping] [https://github.com/Vishnuparammal/Lidar_odometry]
**'''3D Mapping and odometry:''' Obtaining 3D point cloud of a closed room and performed odometry using 1D LiDAR sensor and servos. The C++ code was written into Atmega16 micro-controller. For plotting the points, I used python matplotlib library.[https://github.com/Vishnuparammal/3D_mapping] [https://github.com/Vishnuparammal/Lidar_odometry]
**'''Maze-runner:''' Designed a C program to completely explore a complex maze in first-person perspective. Implemented graphs to store the entire maze dynamically. Obtained the shortest path using Dijkstra's algorithm. Project Link[https://github.com/Vishnuparammal/maze_runner/]
**'''Maze-runner:''' Designed a C program to completely explore a complex maze in first-person perspective. Implemented graphs to store the entire maze dynamically. Obtained the shortest path using Dijkstra's algorithm.[https://github.com/Vishnuparammal/maze_runner/]
**'''WiFi-bot:''' Designed a web-page controlled bot connected to a common WiFi network. The C++ code was written into NodeMCU chip with HTML elements embedded into it. Project link  [https://github.com/Vishnuparammal/Wifi_bot]
**'''WiFi-bot:''' Designed a web-page controlled bot connected to a common WiFi network. The C++ code was written into NodeMCU chip with HTML elements embedded into it.[https://github.com/Vishnuparammal/Wifi_bot]
* '''Octave:''' Octave has been by far the most used language in my curriculum. Needless to mention the simple yet powerful syntax has made life of engineers quite easy. I have been using octave for 2 years now in the following subjects:
* '''Octave:''' Octave has been by far the most used language in my curriculum. Needless to mention the simple yet powerful syntax has made life of engineers quite easy. I have been using octave for 2 years now in the following subjects:
** Analog Communication Systems
** Analog Communication Systems
Line 27: Line 27:
* '''Python:''' This language has been the beast of my projects. My goto language for scripting purposes and project-Euler problems. Describing a few of my projects:
* '''Python:''' This language has been the beast of my projects. My goto language for scripting purposes and project-Euler problems. Describing a few of my projects:
** '''PLC security:''' I have worked on vulnerability analysis and penetration testing of PLC devices. I was responsible for writing malware scripts and modifying CIP protocol packets in a network
** '''PLC security:''' I have worked on vulnerability analysis and penetration testing of PLC devices. I was responsible for writing malware scripts and modifying CIP protocol packets in a network
** '''LiFi:''' Visible Light Communication implemented for sharing of data between multiple devices (text, images and other formats). I was responsible for managing the data fragmentation, packaging and directing data to the USB port on the sender device, and all the reverse operations by the receiver device using python. Project link[https://github.com/laukik-hase/Li-Fi]
** '''LiFi:''' Visible Light Communication implemented for sharing of data between multiple devices (text, images and other formats). I was responsible for managing the data fragmentation, packaging and directing data to the USB port on the sender device, and all the reverse operations by the receiver device using python.[https://github.com/laukik-hase/Li-Fi]
** '''The n game:''' It was the very first code I wrote for myself. A generalized version of the famous "21 game". Project link[https://github.com/Vishnuparammal/The_n_game]
** '''The n game:''' It was the very first code I wrote for myself. A generalized version of the famous "21 game".[https://github.com/Vishnuparammal/The_n_game]
** '''Astro-shoot:''' A shooting game set in space. Used pygame library for GUI. Project link[https://github.com/Vishnuparammal/Astro-shoot]
** '''Astro-shoot:''' A shooting game set in space. Used pygame library for GUI.[https://github.com/Vishnuparammal/Astro-shoot]
* '''JavaScript:''' Intermediate experience in front-end development
* '''JavaScript:''' Intermediate experience in front-end development
** '''Simulighter:''' A browser-based Ray optics simulation software. Used p5.js library for GUI. Project Link[https://github.com/Vishnuparammal/Simulighter]
** '''Simulighter:''' A browser-based Ray optics simulation software. Used p5.js library for GUI.[https://github.com/Vishnuparammal/Simulighter]
** '''Visualizing Fourier:''' A graphical visualization of Fourier series and transform with an application of convolution in audio processing. Project link[https://github.com/Vishnuparammal/Fourier-Series-and-Transform]
** '''Visualizing Fourier:''' A graphical visualization of Fourier series and transform with an application of convolution in audio processing.[https://github.com/Vishnuparammal/Fourier-Series-and-Transform]
* '''Java:''' Part of the college curriculum. Intermediate experience.
* '''Java:''' Part of the college curriculum. Intermediate experience.
**'''Trace_It:''' A software capable of plotting graph of any polynomial. Cross-platform implementation for Windows, Linux and Android. Used JavaFX for GUI.
**'''Trace_It:''' A software capable of plotting graph of any polynomial. Cross-platform implementation for Windows, Linux and Android. Used JavaFX for GUI.[https://github.com/Vishnuparammal/Trace_it]
* '''PostgreSQL:''' I have experience using PostgreSQL for database management.
* '''PostgreSQL:''' I have experience using PostgreSQL for database management.
* My best experience being in a development team was for my Java project, Trace_It. Earlier, I liked to 'code' my projects single-handedly (thinking it was better-off alone), but then working with a team gave me some new insights. I understood the importance of why and how tasks should be defined and divided among the team. I also got the gist of time and resource management and the inevitably important role they play in a team project. I learnt to use git with collaboration. We faced many merge conflicts. Even had to delete the repository and start over. There were suggestion, revisions, conflict of ideas, differences in coding style, but we worked through it all. I learnt many skills like coordination, communication, feedback, trust, focus and a sense of respect for opinions different than mine. After weeks of early-morning and late-night efforts, we completed the project. The feeling itself was rewarding for me.
* My best experience being in a development team was for my Java project, Trace_It. Earlier, I liked to 'code' my projects single-handedly (thinking it was better-off alone), but then working with a team gave me some new insights. I understood the importance of why and how tasks should be defined and divided among the team. I also got the gist of time and resource management and the inevitably important role they play in a team project. I learnt to use git with collaboration. We faced many merge conflicts. Even had to delete the repository and start over. There were suggestion, revisions, conflict of ideas, differences in coding style, but we worked through it all. I learnt many skills like coordination, communication, feedback, trust, focus and a sense of respect for opinions different than mine. After weeks of early-morning and late-night efforts, we completed the project. The feeling itself was rewarding for me.
*The biggest project I have done so far is the JavaScript-based Simulighter. It is a simple ray optics simulation software. I started it as a small project which was easy to code and maintain. But as more features got added, it became difficult to track code flow, debug errors, and understanding parts of code later on. The need for code organization and documentation dawned upon me. I had to refactor the code from scratch. I split up the HTML, CSS and JavaScript files, created functions, used classes and made a hierarchical folder structure, documented them, adopted the official coding style and made sure anybody who works on the code abides by them. Having worked on such a complex project has taught me that taking small corrective measures is important, or else it will be very difficult to manage later on.
My role in the project:
** Developing the HTML page in the initial days
** Using p5.js library to build objects like lens, mirror
** Collision detection between light rays and objects
** Mathematical modelling and algorithm development for reflection
* Patches
* Patches
**I have submitted a patch for the octave bug(#57774)[https://savannah.gnu.org/bugs/?57774].
**I have submitted a patch for the octave bug (#57774)[https://savannah.gnu.org/bugs/?57774].


== F: Feeling fine ==
== F: Feeling fine ==

Navigation menu