*.* years of experience in Software development life cycle specializing in
Mobile software application development, SNS, Multi-threaded application
development, User interface development and Object-Oriented Analysis and
Design. IT experience working with industry majors such as SAMSUNG with
expertise in C/C++ and little exposure to open source technologies such as
Android.
Strong SDLC experience in System Analysis, Design, Development, Testing,
Enhancement, and Maintenance of software applications.
Skilled at progressing from problem statement to well-documented designs
development tools and diagrams.
Robust knowledge of C / C++ with experience ranging from working on Win32
to MFC programming.
Possess 4 yrs of experience in desktop, mobile Application user interfaces
design and development, stand alone application development in telecom
domain and mobile technologies.
Posses 1 year of experience in developing tools for textile/paper printing,
application customization, custom control implementation and widgets
development.
SKILLS SET
Languages C, C++, Visual C+, Java
Libraries Win32,MFC, QT
Methodology OOAD, Design Patterns
Tools TRACE32,QXDM
Databases ORACLE, MySQL
Revision Control Git, perforce, clearcase
System
Domain Mobile application development, telecom, algorithms,
user interfaces, window and display managers, Mobile
user interface widgets, Social networking app
developement
Operating Systems Linux, Unix, MAC, Windows, Qualcomm REX (RTOS).
Technology Mobile application development, SNS, User Interface and
Widget Development, Graphics, http Protocol, Client
Server app development.
PROFESSIONAL EXPERIENCE
Samsung India Software Operations Pvt. Ltd. (www.samsung.com)
Sept 07 - Present
Samsung India Software Operation Pvt. Ltd. (SISO) is a subsidiary company
of Samsung Electronics Corporation. Samsung is a South Korea based
technology company involved in development of software for the mobile
devices and consumer electronics. SISO takes project from Samsung
Electronics, Korea and provides services and solution to them. Company is
also involved in developing and commercializing software for mobile phone,
consumer electronics and memory cards in India.
Project 1: File Explorer (My Files App for Tizen platform) Role:
Technical Lead
Tizen is an upcoming open source platform from Samsung and it's partner
companies. To make the SDK open for people/organizations and readily
available to the the OEM's all native application should be present in the
framework.
Responsibilities:
My Role in this project is more like an individual contributor as well as a
team lead/architect.
During the initial phase of the project, I had discussions with HQ to
understand the requirements. After detailed discussions, I made elaborated
SRS document. Once requirements were frozen, I had started with High and
low level design diagrams, including interaction diagram, sequence diagram
as well as class and interface diagram. Once all design elements were
identified, I and my team of 4 engineers started development of the
project. After implementation, this project was sent to in-house test
teams.
During the development, I designed very crucial module of this project of
generating thumbnails of each file type. Later on to improve page loading
performance I added Cache manager which keeps most recently loaded
Thumbnails. Cache manager, which keeps most recently loaded thumbnails, was
added later to improve page loading performance.
Thumbnail manager's job is to generate thumbnail by decoding the image/
first frame of video content. For all other static content it decodes one
file and uses it for all files of same kind.
Cache manager, keep three pages of thumbnails and keeps them into heap
memory. When user scrolls page, It makes sure that, images of thirty images
on top of the current image and thirty images below the current images are
already in heap memory.
This significantly improved performance of the page loading and reduced
thumbnail generation count for images which lead to improved application
performance in terms of less image decoding hence less usage of CPU cycles,
less battery consumption and and faster user experience.
Environment/Tools: C++, Tizen Platform, git, klocwork, parasoft static code
analysis tools.
Project 2: Twitter On Samsung Bada Platform Role: Lead
Engineer
Developed Twitter mobile client on Samsung's own open source platform,
Bada. My responsibility is to designing the application and developing some
back end module such Home Model, Search Model, Profile Model responsible
for integrating with twitter server and requesting and posting data to it.
I am also involved in developing the user interface of the application.
Followed MVC design model. Application is divided in to 3 modules, first
Controller, second Models and third Views. Controller is responsible for
handling the request received from the views and handling the responses
received from Models. Models are responsible for communicating with the
twitter server, request formatting and JSON parsing.
Responsibilities:
Requirement understanding, analysis and preparing high level requirement
analysis document.
Designing the application architecture and documenting the same.
Implementing the modules assigned, getting it reviewed by the peers.
Periodically running static code analysis tools on the entire code.
Deploying the application on various devices and fixing market release
issues.
Environment/Tools: C++, Samsung Bada Platform, Twitter APIs and API
guides, JSON parsers, http protocol, Klocwork, parasoft static code
analysis tools.
Project 3: NowPlus Engine (Vodafone 360 Client) Role:
Lead Engineer
Vodafone Germany launched a service called Vodafone 360, a social
networking service where subscribers of Vodafone can create their account
and upload, download and sync their contacts, Media contents, call logs,
messages, email, and activities.
Subscriber can also sync their social networking contact like facebook,
orkut and other contacts from their device to server.
I was involved in developing NowPlus Engine Media Manager, which is
responsible for uploading, downloading and syncing, Media contents, such
as, Images, videos.
Application will initiate upload, delete and syncing request. Media manager
will receive request from application, will read the file information
(bytes and Meta data), will prepare a request structure into a form
understandable by the server (Hessian body) and will send an http request
to the Vodafone server.
Server will upload the content and will give http response in hessian
format with the id of the content just uploaded on the server.
When application initiates delete request for a file already uploaded on
the server, application will pass server Id of the file already uploaded.
Media manager will prepare the request body, with the name of the API to
invoke on server and then will append the Id of the file to be deleted on
the server and will send an http request to the server.
After successful deletion server will send the id of the file deleted from
server.
Responsibilities:
Requirement understanding, analysis and preparing high level requirement
analysis document.
Designing system architecture, module design, designing inter module
communication, data flow, call flow and system states.
Preparing high level design document and skeleton code.
Developed system from scratch using C.
DB handling for storing and retrieving server ids and file info.
Performed unit, module level testing (of individually developed modules).
Getting the code review done on periodic interval by the team.
Environment/Tools: C,C++, http protocol, understanding of hessian format,
DB2-Sql queries, Trace32, QXDM, WireShark, Samsung Proprietary Platform
(SHP), Sparrow, Klocwork, parasoft source code analysis tool.
Project 4: Patent and Differential Application Implementation
Role: Senior Software Engineer-2
Data Mining:
Data mining was a grade A patent proposed by team for browser. The idea
behind data mining is an application running in background which takes
cares of keep record of any type of content (Browsed page, downloaded
images, music files, video files and saved links). Next time when user
browses the same page and tries to download the same page, data mining will
find out same files already exists on the disk, will notify the user and
won't download that file again.
Responsibilities:
Designed GUI layout and workflow of the entire application.
Implemented new GUI and made changes to the application.
Suggested new use cases and features to the application and developed 1 of
the suggested feature.
Testing, debugging and bug fixing of the porting of code added by me.
Environment/Tools: C, Samsung Proprietary Platform, QUALCOMM Rex, Trace32.
iCall:
iCall is an abbreviation of Informative call. This is a differential
application proposed and suggest by team for Call Module. The idea behind i
Call is sending additional information to a person whom you which to call
before actually calling the person. Caller party sends information to the
receiver party in form of a special message. The format of the message is
understandable by both sender and receiver party. There are three modes of
iCalls Urgent, Remainder and Find mode.
Responsibilities:
Designed GUI layout and GUI workflow of the application
Implemented all three modes of the application
Testing, debugging and bug fixing of the application of both simulator and
target.
Taking logs, ram dumps from target and debugging on target using Trace32.
Environment/Tools: C, Samsung Proprietary platform, QUALCOMM Rex, QXDM,
Trace32.
Project 5: Screen Manager porting and deployment
Role: Senior Software Engineer-2
Screen manager is a core part of windowing and drawing system. It takes
care of creating, updating, drawing, refreshing, resizing, rotating,
merging scaling and alpha blending frame buffer.
It also manages the Z-Order of all the screen and surfaces created by
applications.
Screen manager is the central part of the graphics and windowing system. It
takes care of allocating and releasing frame buffers.
Responsibilities:
Understanding and studying the architecture of screen manager.
Feasibility study and identifying risks involved.
Implementing, adding changes required to port new architecture which
existing system can adapt.
Porting, testing the system on target with target environment and taking
logs from target using target debugger tools.
Environment/Tools: C, Samsung Proprietary Platform, QUALCOMM Rex, Trace32.
Project 6: Widget Development Role: Senior
Software Engineer-1
3 * 4 Virtual Keypad
This was the next project after completing 1st phase of resource editor.
This project took me to the real telecom and mobile application development
domain. I was given the assignment of implementing a 3*4 virtual keypad for
the first touch screen phone by Samsung in Japan market.
In touch screen phones, as we don't have hardware keypad, virtual keypad
helps user in entering text, numbers, symbols, pictograms, face marks
(Emoticons) and Japanese and Korean characters.
This keypad was initially not a separate widget, but was a part of a Input
Editor widget. So initially it was designed and developed just as an
integral widget. Latter many application developers asked for such widget
for their requirement. Due to which this module changed to an individual
widgets.
QWERTY Keypad
After completing 3*4 phone keypad, I was given the responsibility to
develop QWERTY keypad. This project was an extension of the 3*4 phone
keypad. 3*4 phone keypad had 12 keys where as QWERTY keypad has 36 keys
including 26 keys for alphabets.
QWERTY keypad was written for the horizontal mode because horizontal mode
has sufficient space to display all keys and it will also help user to type
faster compare to normal3*4 keypad.
Japanese/English Input Method Editor (IME)
Input Method Editor was the widget used to enter character (text, number,
symbol, face mark (emoticon), pictogram and Japanese and Korean character.
Any application which needs user inputs is using this tool.
Input Method Editor is a collection of small widgets like a Keypad, an
editable widget (Edit area) and few other widgets. It is using APIs exposed
by the widgets which are members of it. This widget is exposing all the
necessary APIs which an application developer can use. To input telephone
number, this widget can be changed to state in which the keyboard has only
number and widget can input only numeric values.
This widget also supports text prediction for Japanese characters. English
prediction was unavailable, because English is not the primary language in
Japan.
Responsibilities:
Requirement collection from customer, analysis and high level requirement
analysis document.
Responsible for module design, inter-module communication, data flow, call
flow and API design.
Implementing APIs, user interface and application logic.
Performed system/unit testing
Fixing issues reported by customer.
Environment/Tools: C, QUALCOMM REX, Samsung Platform and Trace32.
Project 7: Resource Editor Role: Senior Software Engineer-
1
Resource editor was very prominent project. It was my first project in
Samsung. This project includes modules like
A standalone application with its unique IDE, an engine which generates
resource files,
An engine which parsers resource files and
A resource loader which takes the resource file as an input and generates
User Interface as per the resource file.
Here the term resource is generalized for a Window, bitmap, string, a
widget and anything which could be a resource for an application. A
resource is nothing but an external content which helps to enhance the
application in term of Look and feel, appearance, better readability and
visibility.
The GUI part of the project is a standalone application with its IDE. The
application and its IDE contains a visible toolbar, a drawing canvas
(area), a property window and a tree view window showing parent-child
relationship of all the resources.
Toolbar of the application has all the widget, supported by the framework
(platform), displayed in an iconic fashion which can be dragged and
dropped. Use can drag widgets and can drop them on the canvas area. The
canvas will draw dropped widgets and will place them to the point they
dropped. Use can change size and position of each dropped widget with just
a mouse click. User can manipulate properties of each dropped widget from
the property window.
Once user is done with GUI layout, and the widgets, use can generate
compile that GUI. Compilation of GUI internally generates a resource files
in a format understandable by the resource loader.
After compilation the resource generator will generate two files, one
header file, containing IDs of all resources and one binary file which
contain resource and its information. It's the resource file, which is
going to be read by the resource loader.
Now the job of resource loader is to read resource file, parse resource id
and its information and create user interface based on the resource files.
Responsibilities:
Requirement collection from customer, analysis and high level requirement
analysis document.
Designing system architecture, module design, designing inter module
communication, data flow, call flow and system states.
Designed User Interface workflow and state of each screen.
Developed system from scratch using C++ and MFC.
Performed system/unit testing.
Environment/Tools: C++, VC++, MFC, Trace32, QXDM, Samsung Proprietary
Platform Qualcomm REX, Windows XP.
Kothari InfoTech Pvt. Ltd. (www.kothariinfotech.com)
Jan 06 - Jun 07
Kothari InfoTech Pvt. Ltd is a small product based company working on
developing printing software, printer drivers and color solution software.
Company's products are based on Computer Graphics, Digital Imaging &
Computer Color Matching, Image Processing, Printer device drivers and
digital textile printing software.
Kothari InfoTech Pvt. Ltd. was my first company after completing my
studies. I was recruited by the company in campus recruitment in 2006. For
first 4 months, from Jan-06 to April-06, I worked as trainee. From May-06
to June-07 I worked there as a Software Engineer.
Project 1: Digital Artistic Media Tools
Role: Software Engineer
This was the first project we have been given white I was in the training
period. The Ideal was to build a tool which allows users to have a set of
artistic tools by which it is possible to draw/create artistic painting,
images and sculptures on computer.
We were 7 people working on this project; all of them were new recruited in
campus recruitment process.
To achieve this I had to simulate all possible tools which an artist can
use to make a painting, such as crayon, water color, pencil color, oil
paint, sketch pens, etc...
We successfully managed to simulated Crayons and Water color within time
limit of our training period.
In this project I was involved in more than one area of work such as crayon
simulation, colors science and computer generated match prediction, user
interface development for the application and application state management.
Responsibilities:
Design and development of crayon simulation, user interface development and
application state development and management.
Testing, debugging and bug fixing of crayon and user interface.
Environment/Tools: C++, VC++, MFC, Windows
Project 2: Customized Controls (Widgets)
Role: Software Engineer
After completing project training, I was given a module to develop in which
I had to implement customized use interface controls, such as Multi Row
list control, menu with user defined color and images, colorful cursors for
company's largest selling product Print Pro. In this project I also handled
application state management using registry and INI files
Responsibilities:
Designing each control with its class diagram.
Developing, testing, and debugging each widget.
Fixing issues encountered in each widget.
Project 3: Customization of application User Interface
Role: Software Engineer
This project was the next project of mine after completion of Customized
Control development. I entered in this project when one of my senior was
about to leave company. I had to handle this project and so it was quite a
learning experience for me.
This project was about changing application state as per the user
requirement and user need. User can create new toolbars in which user can
create and put buttons, menus and nested toolbars, user can create
customized menus which contain option which user wants, and user can change
position, size and orientation of windows, toolbars and menus.
Later this project was included in the company's largest selling product
Print Pro
Responsibility:
Understanding UI customization and its architecture and design.
Preparing design diagrams and class diagrams.
Implementing new features like, custom toolbar, a toolbar which acts as a
container for other toolbars, docking toolbars, docking menus, Drag and
Drop functionality using OLE.
Testing, preparing test cases, testing documents.
Debugging and bug fixing of the entire module.
LEARNING AND DEVELOPMENT ACTIVITIES
Studied, learned Samsung's new open source platform Bada and participated
in Samsung bada application developer fest and submitted an application
called, Up2Date developed by me and my team colleague using Samsung bada
platform.
Studying Android SDK and development environment as a step towards learning
android SDK and application development on android.
ACHIEVEMENT IN SAMSUNG
Participated in In-house application develop contest mentioned above and
won the first prize among 90 participants.
EDUCATIONAL Qualification
Bachelor of Engineering (Information Technology) with 78.00%, from U V
Patel College of Engineering, North Gujarat University, Gujarat, INDIA,
2006
Holding 2nd rank in University for the batch 2002-06 for IT Department and
has also won silver medal for the same.
PERSONAL INFORMATION:
E-Mail Address : acctjh@r.postjobfree.com
Contact No : +91-994*******
Landline No. : +91-80-416*****
Local Address : 203, Shiva Classic, 6th Main, Balaji Layout,
Khaggadasspura, C V Raman Nagar, Bangalore, Karnataka- 560 093.
Permanent Address: 10, Devbhoomi, Kh-Road, Near Sargasan Circle, Vasana-
Hadamatiya, Near Sector-4, Gandhinagar, Gujarat-382006.
Passport No. : G4328343