Resume of Software Developer




Title
Software Developer

Primary Skills
C,C++,Java,.NET,C#,VB, Scripting

Location
US-CA-irvine

Posted
Dec-03-07

RESUME DETAILS
Residency: US citizen

Education:
MS Computer Science, San Francisco State University
Date of graduation: May 2004 Current GPA: 3.68

1996 -- 2000 : Bachelor of Engineering in Electronics and Communication
Madras University, India.
Percentile: 76.5%

Relevant Course work: Database Management Systems, Operating Systems, Distributed Systems, Computer Architecture, Data Structures, Analysis of Algorithms, Object Oriented Programming & Software Engineering.

Work Experience:

1) Working as a Software QA automation Engineer Broadcom, Inc. (2005- till date)
2) Worked as automation engineer for 1-1/2 years at Autodesk.(2004-2005)
2) Eight months of Internship experience in AutoCAD Software Development team at Autodesk, Inc.
3) Three months of work experience as project trainee in Mostek Electronics.


Skills:

Programming: C, C++,C# , managed C++, Java, VB .NET, HTML,XML,RMI,CORBA, JAVA Script,vbscript.

QA : Mecury Quick testpro, Silk Automation tool, AutoCAD Harness, Benchmarking, Black-box and white-box testing.

Databases: Database design with Oracle, MSAccess and SQL.

Environment: Visual Studio.NET 7.0, Linux, Unix, DOS and Windows


References: Will be given on demand.

Projects Done at Broadcom :
-------------------------------------

Automation using Mercury's Quick-Test Pro :

Have automated testing of the Broadcom Advanced Control Suite GUI using VB script,
VB .NET and Automation tool Mercury's Quick-Test Pro. This was basically a VB .Net project that invoked QTP using QuickTest's Automation object model and performed tests on a Windows APP.

This was a very intensive project.

I had to come up with a list of testcases that need to be automated, communicated to the team, got their feedback and finally implemented it. I have a very good knowledge in using Quick-Test Pro.


Automation For Network adapters in DOS:

Have written DOS shell scripting to automate testing of the network adapters in
DOS.

CD Checker Automation Tool:

Have Written an utility called CD Checker which checks for driver Files and MSI installs in a driver installer CD. Coded in vbscript.

Windows diagnostics Automation Tool:

Have worked on creating and modifying a diagnostic tool to run some network test in
Windows using C++, DDK APIs and using WMI.

API Automation:

Have written an automation to test Broadcom Network adapter related Public APIs in C++ for Windows and Linux platform.

Socket Programming:

Have done IPv4 and IPv6 socket programming in C++ to pass traffic between two computers and Measure various properties of network adapter.

I/O Utility:

Have created a multi-threaded I/O application in C++ that does Block I/O directly to hardisk, File I/O to partitions and Socket I/O.


Projects done at Autodesk:

C# .Net Project:

1) I worked as an intern in the AutoCAD software development team for porting the existing AutoCAD public APIs to .NET. As part of this project, I have written an automation tool in C# to throw managed wrappers for the
existing C++ APIs. I am running this tool on each and every class that is part of the AutoCAD public API and obtaining their managed wrappers thus making them .NET compatible. This project has given me a very good opportunity to learn the .NET framework, to develop applications in C#, and also to learn about XML serialization and de-serialization. Moreover this project has given me a good exposure to AutoCAD and its usage.

2) I also have some bug fixing experience in VC++ and MFC and have also helped
in writing some migration tools in C#.

Silk Automation:

I have hands-on experience in running Silk Automations and handling AutoCAD harness at Autodesk, Inc. I have also written silk test-scripts as part of AutoCAD testing.

Benchmarking:

I have created benchmark scripts to test some specific features in AutoCAD. I made
a thorough research on what needs to be measured by looking at AutoCAD newsgroups and created benchmarks to measure the performance of the same.

White-Box Testing:

I have white-box testing experience of AutoCAD APIs. As part of testing, I have created several samples that shipped with AutoCAD product. These APIs are .NET APIs so I ended up creating these samples in C#.

Projects Done during Graduate Studies:
HARDWARE PROJECT:
I have done a hardware project which involves the conversion of an ordinary,
wired PC mouse into a wireless mouse using infrared technology as part of
undergraduate study at Mostek Electronics. My role was primarily in designing
the receiver and transmitter circuit for this project. The receiver circuit was
connected to the PC's Com Port and the transmitter circuit was connected to
the mouse. I was able to achieve wireless communication between the mouse
and the PC using infra-red waves that traveled from the transmitter to the
receiver circuit.

OBJECT ORIENTED PROGRAMMING IN JAVA:

1) I was given the task of creating a virtual JAVA compiler
• First I created the lexer that reads a stream of characters which made the source program and create a stream of tokens which form the lexical units by combining characters appropriately.
• Next I created the parser unit which checks if the tokens are assembled in the
correct fashion according to the grammar in other words, checking the syntax of the user's program and build an abstract syntax tree to represent the source program.
• Finally by visiting each node in the abstract syntax tree, the compiler was able
to generate the corresponding bytecodes. So the source program is now converted to a set of bytecodes.

2) Next I was asked to create a virtual JAVA interpreter using the generated bytecodes for a given source code. For this I had to create a virtual machine which executes the bytecodes generated by the compiler. So I created separate bytecode classes which defined the execution properites of each bytecode and a byte code loader class loads the bytecode objects into the virtual machine for further processing. I
used the technique of dynamic binding while creating bytecode classes so that I could easily add new bytecodes without affecting the operation of virtual machine.
I also simultaneously created the run-time stack which maintains the stack of active frames so that when we call a function, we will push a new frame on the stack and when we return from a function we'll pop the top frame.

3) The third task that I was given was to create a virtual JAVA DEBUGGER with facilities to step over a line, step into a function call, step out of a function call, set breakpoints, list current break point settings, clear designated breakpoints, display local variables, change values of local variables, display the source code of the current
function, continue execution from the current point and then to halt the execution.
By doing the above three projects I was able to thoroughly capture the object-oriented
paradigms of the JAVA programming language and concepts like inheritance, interfaces,
exception handling, hash tables and dictionaries, enumerations, vectors, dynamic binding, mechanisms of software reuse, abstract classes, polymorphism, equality, clones and
garbage collection.

CORBA PROJECT:
I had the opportunity of doing a coding intensive distributed Ping-Pong game in
JAVA using CORBA as the middleware. The idea is to distribute the game so that two players sitting at different computers can play against each other. Since there is a graphical component involved, I implemented a user interface using Java's Swing. The communication infrastructure was implemented based on CORBA.

Java RMI Project:
I simulated the working of a cash register terminal in a store using Java RMI.
In this project multiple cash register terminals are distributed through out the store
and my job was to make the cash register have access the various parts of the store
in a remote way by having the store as the server and the various cash registers as the
clients seeking information from the store server. I also used Java's swing features
for providing GUI for the cash register.


Architectural Simulators:

1) I had the opportunity of designing a cache simulator for measuring the performance of cache functioning over Solaris 5.8 operating system. In my simulation I created a write-through cache and a write back cache with different set associativities and different block sizes and cache sizes. Finally I ran different programs on measured the read access time, write access time, the number of hits and misses for the various cache configurations.

2) I also had the opportunity of creating an out-of-order pipeline simulation in C over Solaris 5.8 operating system. I used Sun shade API's for studying the effectiveness of the out-of-order pipelined CPU. My pipeline had reservation stations, re-order buffers, registers and multiple functional units. I used SPARC instruction trace to study the effectiveness of the out-of-order pipeline that I implemented.

3) I also implemented a simulator for studying the naive, slow start and stride-based hardware pre-fetching techniques. Again I used Sun's shade API's to test my implementations and to compare the various pre-fetching techniques.

DATABASE PROJECT:

1)I have been taken through the complete process of database design in my
Data Base systems course. My term project in that course was to create an email archive and retrieve relevant information about the email from the database.
I started with designing the ER schema for the email archive and converted it
into its corresponding relational database schema using the mapping rules.
Then I used JAVA programming as the front end and MS Access as the backend to retrieve the information for various queries from the email archive.

2) A house allotment project in java using JDBC-ODBC at Software Solutions Integration. In this project I had to basically allocate houses to employees of an organization depending upon the availability of the houses and the grade of the employee. I used MS Access database as the backend and Java as the front end.

3)Access Methods (Database System): Designed and implemented access methods (Blocked Heap Access Method, Linear Hash, Extendible Hash, B+ Tree), Sorting Algorithm (Binary External Merge Sort), and Join Algorithms (Merge Join, Nested Loop Join) using C++. The implementation was a variation of the access methods provided with the Minibase software developed at University of Wisconsin- Madison.

WORM GAME PROJECT:
I have programmed the game of worm (a typical one person arcade game) in C
under UNIX platform. To start with we have a little worm displayed on the screen
and the goal of the game is to make the worm grow longer by eating the food that
is placed randomly on the screen by the computer. Cursor control keys govern the
motion of the worm. If the worm bumps into itself or the wall that surrounds the
game board, it dies and the game is over. In this project I developed an interactive
program that lets others play this game. I used the ncurses graphic library as part
of this project to get the game displayed on the screen.

AIRPORT SIMULATION PROJECT:
I have done a project to simulate an airport landing and take-off pattern
in C. The airport has 3 runways and I had to create 4 landing queues two in the first
two runways and three take-off queues one in each runway. I had to decide which
queue would be appropriate for each of the landing and take-off planes and should
generate an algorithm so that it allocates the planes in the queues in a most
efficient manner. The output of the program generates the content of each queue,
the average take-off waiting time, the average landing waiting time, the average
flying time remaining on landing and the number of planes landing with no
fuel reserve. The input consists of the number of planes arriving at the landing
queues, the number of planes arriving at the take-off queues and the remaining
flying time for each plane arriving at a landing spot. This project helped me in
having hands-on experience about the Queue data structure effectively.

BANKING SIMULATION PROJECT:
I have also done a C++ project that accepts bank client records from the user
one at a time and builds them into a dynamically allocated 2-3 tree. This project
simulated the banking process and storing records about the clients of the bank in
a tree data structure.

To get a thorough understanding about the Hash data structure, I did a project that
implemented a dictionary using a linked list hash table. The implementation used
pointers. I built my own effective hash function and my class code included all
of the dictionary ADT operations. My code was supposed to read records from a
file and insert them into a hash table based on the key field of the records. I was also
able to delete the records, retrieve the records, search for a part and change any of
the fields in a record including the key field. I did this project in C++ and
captured the semantics behind the hash data structure.

OPERATING SYSTEM PROJECT:
Have been exposed to Operating system concepts and done a project for creating
a virtual operating system in C. As part of this project, I had to create a virtual shell,
a virtual kernel and a set of system calls to mimic the UNIX operating system.
Inter process communication was achieved using named pipes. The user who
uses this virtual operating system will be provided with a shell prompt just similar
to UNIX shell prompt at the beginning. The user is then given the liberty of
doing four operations --
1) Enter a command to run any program
2) Enter a command to generate a log file for the program he wishes to run
3) Enter a command to list the set of currently running processes just like the
ls command in UNIX.
4) Enter a command to shutdown the operating system with a valid password.

Certifications
See above

CONTACT DETAILS

You must be logged in and have a current resume access subscription. Login or Register »


View all resumes in US-CA-irvine »
View all resumes in US-CA »

View other Software Developer resumes, Programmer / Developer resumes