Resume of Automation Developer




Title
Automation Developer

Primary Skills
C, C++, Java,VB, C#, .NET,Scripting - VBscript, Perl, QTP

Location
US-CA-

Posted
Feb-15-08

RESUME DETAILS

Objective:

To work in an environment that constantly challenges and emphasizes
on creative, innovative and initiative skills.



To work in a motivated environment with good growth prospects.

Currently looking for tele-commuting opportunities only.



Residency: US Citizen



Education:

Present: 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 for the past 2 years.

2) Worked as automation engineer for 1-1/2 years at Autodesk.

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 from November 2005 till date:

--------------------------------------------------------------------------



BACS Automation :

Have automated testing of the Broadcom Advanced Control Suite (BACS) GUI using VB script,
VB .NET, Windows Management Instrumentation and Automation tool Mercury's Quick-Test Pro.

BACS is Broadcom's network adapter GUI Diagnostic tool for windows. This was a very
coding intensive project Using Mercury Quick-Test Pro's automation model. 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.



Automation to test Network adapters in DOS:
Have written DOS shell scripting to automate testing of the network adapters in
DOS. This automation tests the various DOS drivers available for the Broadcom network
Adapters. It also tests the functionality of various diagnostic tools that ship with the Broadcom Network adapters.

CD Checker Automation Tool :
Have written a tool in VB Script to validate the CD's that get shipped with the Broadcom
Network adapters. This tool checks for network adapter driver Files and MSI installs in a driver
installer CD. Coded in vbscript. This is again a very coding intensive project.



Windows diagnostics Automation Tool:
Have worked on creating a diagnostic tool to run some network test in Windows using C++, This diagnostic tool uses Broadcom's network
Adapter management APIs to test the various properties of Broadcom's network adapters.


API Automation:
Have written an automation to test Broadcom Network adapter related Public APIs in C++
for Windows and Linux platform. This is a very coding intensive project.



Broadcom Network Adapter Management Tool Automations:
Have automated testing of various management tools that gets shipped with the Network
Adapter CD for both windows and linux platforms. Have used C++, VB script, Windows
Management Instrumentation to test these tools.

Socket Programming:
Have worked and enhanced an automation tool in C++ that involves socket programming
to perform the core confidence test on Broadcom network adapters. This project involves passing traffic between management system and the test system and measuring various parameters of the network adapters that are present in the test system and verifying to make sure that the results are correct. Have given support to testing of network adapters in all Windows OS including window's latest Vista/LongHorn releases.


Wake-On-LAN testing Automation:
Have written an automation tool to test the Wake-On-LAN property of Broadcom Network
Adapters. In this project, we put a remote computer to sleep and then wake up the sytem by Sending different types of wake-up frames from the management system to the test system's network Adapter and verify that the test system has woken up. This is again a very coding intensive project In C++ using socket programming.


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.


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 some 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:



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.



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 »

View other Automation Developer resumes, Programmer / Developer resumes