It Specialist Resume
Lafayette, LA
TECHNICAL SUMMARY:
- Experience in developing Web Applications using Ruby on Rails MVC framework.
- Experience with many open source tools for C, C++, Java, Ruby development on Linux platform.
- Experience with developing web applications using Ruby on Rails, Servlets and JSP, Struts.
- Experience in designing database using data modeler ErWIN.
- Can also work with XML/Database mapping, writing SQL queries with major Relational Databases Oracle 8i/9i, MySQL, PostgreSQL, DB2.
- Experience with Version Control System tools Subversion and TortoiseSVN.
- Knowledge of issue tracking system TRAC, Bugzilla.
- Experience in OOAD Techniques, Developing Use Cases, Integration Diagrams (Sequence, Class and Collaboration Diagrams), Packages and Classes using Rational Rose and Umbrello.
- Experience in code debugging and code fixing.
- Experience in Design Patterns such as MVC, Singleton, Factory method.
- Work experience on Linux , UNIX and windows 2000/NT/XP/ Vista.
- Good knowledge on Object Oriented Programming and UML.
- Quick learner with strong technical skills with excellent communication and problem solving ability.
TECHNICAL SKILLS:
- Languages: C, C++, Java, SQL, PL/SQL, Ruby, Python.
- GUI Tools: AWT, Swing, Applets, HTML, DHTML, XHTML
- Databases: MySQL, PostgreSQL, Oracle 8i/9i, DB2.
- Operating Systems: Linux, Unix, Windows 95/98/NT/XP, MS-DOS.
- Application Software: MS OFFICE. (PowerPoint, Excel, Access, Word, Outlook).
- Web Technologies: Ruby on Rails, Servlets, JSP, RMI, Java Script, HTML, XHTML, XML, CSS.
- Case Tools: Rational Rose 4.0, Umbrello.
- IDE: Eclipse, Netbeans, Kdevelop.
- Assembly Language: Microprocessor 8085, 8086, MIPS.
- Tools: Rational Rose, Umbrello, CVS, Subversion, Erwin, TortoiseSVN, Trac, DDD, gnuplot.
EDUCATION:
- Recent graduate with a Masters Degree in Computer Science
- Bachelor’s Degree in Computer Science
EXPERIENCE:
1/09 – Present Confidential, Lafayette, LA
Scientific visualization of Hurricane Isabel. The dataset has information about the clouds, velocity of wind, pressure at each point, precipitation etc. The features are visualized by applying appropriate filters depending on the feature. The dataset has data of 48 time stamps and each time stamp has the features mentioned above. The aim is to dynamically switch between each of the features and also have control over the speed of visualization along with the capability of being visualized on different VR display devices.
Responsibilities:
- To be able to load the data on any on the VR display devices.
- To navigate through the data using the various interactive devices like game pad, wand, keyboard.
- To be able to extract the skin or bone or muscle based on button clicks on the interactive devices.
- Also change the filters that are being applied to the data on button clicks.
Environment: C++, VR Juggler, VTK, GMTL (Math library), Linux (Fedora).
6/08 – 12/08 Confidential:
Confidential is a project to have tilt maze that can be tilted using either mouse or keyboard to alter the gravitational force that is acting on the ball. The ball collides with the various obstacles in the scene and responds to the collision on detecting a collision.
Responsibilities:
- To create a scene with different obstacles and defining the boundary of the scene.
- The simulations are carried out depending on the simulation parameters namely gravitational force and update time stamp.
- To update the velocity of the ball depending on the net gravitational force that is acting on the ball.
- To find a way to detect collision of the ball with the wall and other obstacles in the scene.
- To update the direction of the ball after the collision with either the wall or the obstacle which is the collision response after detecting collision.
- The update the velocity by damping the velocity depending on the coefficient of restitution.
Environment: C++, OpenGL, glut, GMTL (Graphics Math Template Library), Linux (Ubuntu 7.10).
Ray Tracer:
A scene is generated by shooting rays from the eye point to each pixel in the raster. If the ray intersects with one of the spheres in the scene the pixel on the raster is given the color of the sphere. It is also checked to see if that particular intersection point is obstructed by another sphere or not. If yes, then the pixel is also given part of the intersecting sphere\'s color which is the reflection of the second sphere on the first. There are two levels of reflection that is being implemented. Shadow that is being cast if any is also calculated and the overall intensity given to the pixel is calculated using Phong\'s illumination model.
Responsibilities:
- To read file that contains the position, radius and color of the different spheres and the triangle and store them in separate variables for further use in the various calculations.
- A ray is shot with the eye point as the origin and the direction of the ray being the vector from the eye point to rasters pixel coordinate.
- Each ray is tested for intersection with each of the object. If the ray does not intersect any of the object, the pixel is given zero intensity.
- When the ray intersects many objects we need to find the closest object to the eye point.
- The pixel is given the effective color of the multiple reflections with other objects. This is done for two level multiple reflection.
- Depending on the position of the object from the light source, a decision is to be made whether light reaches the particular point on the sphere. So a shadow ray is shot from the point on the sphere to the light source to see if this ray intersects any of the objects. If it intersects, then that point on the sphere is given an intensity based on “ambient occlusion”.
- To make the scene look good anti-aliasing also implemented which divides each pixels into 25 smaller sub-samples based on super sampling mechanism.
Environment: C++, OpenGl, glut, GMTL, Linux (Ubuntu 7.10).
Implementation of Scanner, Recognizer and Parser:
A java application that scans input string and classify them to various tokens. Depending on the set of grammar rules that are predefined, parse tree is constructed. Error messages are displayed depending on the error in the input string at the different stages i.e. Scanner stage and the Recognizer stage.
Responsibilities:
- Input strings are read from a file and there is one input string per line in the file.
- Scanner reads each input string and scans through to classify each input token (alphabet) to various predefined names like CHAR, LEFT_PARAN etc.
- Error message is displayed if the scanner sees a token that is not defined.
- The classified tokens are recognized depending on the grammar rules and parse tree is “displayed” (without constructing the actual parse tree). Error message is displayed if the string violates the grammar rule.
- The actual tree is built if the string passes the Recognizer stage. The actual tree data structure is implemented i.e. the concrete syntax tree is built.
- Abstract syntax tree is built using the previously built concrete syntax tree.
Environment: Windows Vista, Java, Netbeans.
1/08 – 4/08 Confidential:
A robot localization problem where the actual position of the robot is compared to the believed position of the robot. The project uses the Kalman filter as the algorithm that the robot uses to locate its position in the world. The robot uses the input from the sensors and moves in a path and it tries to co-relate the readings from the sensors and with the map given to it and tries to localize its position.
Responsibilities:
- Map contains the land marks and they are uniquely given id\'s.
- The robot\'s sensors is the distance between its belief position (center) to each of the land mark. Noise (5% - 10%) is being added to the distance measure to make it approximate to real life scenario.
- The belief position is an uncertainty ellipse which is grows as the robot moves away from the land mark\'s and as it moves closer, the uncertainty reduces.
- The actual position and the belief position are written into separate files to compare the result of the simulation.
- Gnuplot is used as the tool to visualize the result of the simulation i.e. the comparison between the actual and the belief position of the robot.
Environment: C++, OpenGl, glut, gnuplot, Linux (Ubuntu 7.10).
2/07 – 11/07 Confidential
Restructure the existing MyProjects
The customer of the company can build their own projects by creating their rooms which needs the floor heating device of WarmlyYours. The users have their accounts and their set of projects that they had already built. They could modify the specifications of their room and order floor heating system once they have finalized their floor plan.
Responsibilities:
- Restructure the existing control flow of the project.
- Restructure the database design that would suit the new demands of the company.
- Merge the MyProjects project with the newly built heat loss calculator.
- Clean up the old customer\'s database so that it could be used in MyProjects.
Environment: Ruby On Rails, Ajax, PostgreSQL, Mongrel, ErWIN, SVN, Trac, MacOSX 10.2 Tiger.
Heat Loss Calculator:
This application is intended for the customers who are interested to know the amount of power consumed by the floor heating system for their room. The customer would just give the specifications of the room and based on a formula the power consumed in BTU (British Thermal Units) is displayed to the customer.
Responsibilities:
- To design the database model for the various parameters and integrate it to MyProjects (mentioned above).
- Extend the project for the existing set of customers already registered in the company\'s database
- Based on the temperature of the city where the customer resides and overall heat loss in the room, the tool gives a result whether WarmlyYours product can be used or not. If yes, then the power consumption in BTU is also displayed to the customer.
Environment: Ruby On Rails, Ajax, PostgreSQL, Mongrel, ErWIN, MacOSX 10.2 Tiger, SVN, Trac.