Analyzes, designs, programs, debugs, and modifies software enhancements and/or new products used in local, networked, or Internet-related computer programs, primarily for end users. Using current programming language and technologies, writes code, completes programming, and performs testing and debugging of applications. Completes documentation and procedures for installation and maintenance. May interact with users to define system requirements and/or necessary modifications.
Designs enhancements, updates, and programming changes for portions and subsystems of end-user applications software running on local, networked, and Internet-based platforms.
Analyzes design and determines coding, programming, and integration activities required based on general objectives and knowledge of overall architecture of product or solution.
Writes and executes complete testing plans, protocols, and documentation for assigned portion of application; identifies and debugs, and creates solutions for issues with code and integration into application architecture
Leads a project team of other software applications engineers and internal and outsourced development partners to develop reliable, cost effective and high quality solutions for assigned applications portion or subsystem
Collaborates and communicates with management, internal, and outsourced development partners regarding software applications design status, project progress, and issue resolution
Represents the software applications engineering team for all phases of larger and more-complex development projects.
Specific Job Responsibilities
Contribute to development of the Scalable Test Framework. This is locally-developed scalable test automation software framework which allows testers to create scenarios to test enterprise-class software and servers by using virtual users, virtual devices and other virtual automation components running in a modeled enterprise IT environment.
Work with VM management software such as VMWare vSphere to manage the utilization of VMs to drive enterprise tests. Provide overall provisioning and management of the HP blade servers and VMs running on them.
Develop/integrate virtual devices and other software automation components into the Scalable Test Framework for use in testing.
Be involved in the setup and configuration of the complete enterprise lab environment to enable any particular test to be executed by a test engineer. The activities could include (not restricted to) the following:
Assist in defining client and server systems (typically VM based) with respect to O/S and hardware configuration.
Determine effective utilization of VM systems required for any enterprise test by working with test engineers to profile the test and what activities and workflows will be happening, then map those to the needed systems.
Integrate various existing test automation tool to define processes that will run on VMs as part of the enterprise test. This may be done through existing test tools such as LoadRunner, QTP, or other custom tools.
Configure networking to match certain criteria needed for the test. This may involve recommending setup of switches and routers, or other network related activities to match common configurations found in real enterprise customer environments.
Develop mechanisms to drive or oversee aspects of test execution, including test automation, system monitoring, metrics collection, triage, and processing of data. Because of the anticipated complexity of some of these tests, it will require a technical skill set to help ensure the systems is executing correctly.
Development and maintenance of automated components that will drive the enterprise tests. This includes components such as virtual users that can execute multiple office related activities automatically. It will require knowledge of C# as the core development language, but more importantly a strong understanding of object-oriented development and the use of the .NET framework and available system components within that framework.
Work with distributed systems and understand concepts around shared network services and inter-process communication. Requires an in-depth understanding of network messaging and network protocols, specifically an understanding of .NET Windows Communication Foundation, and familiarity with tools such as WireShark.
Development of an enterprise test infrastructure test database. This database will house manifests, scenarios, and other information that define what each automated component will be doing in the modeled enterprise environment while the test is running. It will also involve .NET, SQL Server and other development components.
HP will not sponsor individuals for immigration benefits in this position.
The successful candidate MUST have received degree within past 12 months, or prior to start date
Education and Experience
Bachelor's (undergraduate) degree or Master's (graduate) degree or Ph.D. (post graduate) degree in Computer Science, Electrical or Computer Engineering or equivalent
Knowledge and Skills
Using software applications design tools and languages.
Strong analytical and problem solving skills.
Designing software applications running on multiple platform types
Software applications testing methodology, including writing and execution of test plans, debugging, and testing scripts and tools
Excellent written and verbal communication skills; mastery in English and local language. Ability to effectively communicate product architectures, design proposals and negotiate options at management levels.
Specific Skills Needed
Experience in software engineering, specifically in object oriented design, system architecture, distributed systems and design patterns.
A strong understanding of Information Technology and associated systems found in typical enterprise environments. Experience working with or supporting an enterprise level infrastructure will be a plus.
Solid understanding of technologies and protocols used in HP printing devices, such as SNMP, Web Services, LEDM, DSMP and others.
Strong creative skills in software test automation design, specifically around integration of distributed enteprise systems and the development of automation tools based on an understanding of enterprise customer workflows and business processes.
Software development and de-bugging skills
Demonstrated strength in communication, teamwork and interpersonal skills
Excellent organizational skills
Project management skills
Ability to work independently in an R&D development/testing environment.
Research technical issues and generate creative/innovative solutions
Fluency in English
About Hewlett Packard
Hewlett-Packard Company is a provider of products, technologies, software, solutions and services to individual consumers, small- and medium-sized businesses (SMBs) and large enterprises, including the public and education sectors. Its offerings span personal computing and other access devices; imaging and printing-related products and services; enterprise information technology infrastructure, including enterprise storage and server technology and software that optimizes business technology investments, and multi-vendor customer services, including technology support and maintenance, consulting and integration and outsourcing services, as well as application services and business process outsourcing. During the fiscal year ended October 31, 2008, its operations were organized into seven business segments: Enterprise Storage and Servers, HP Services, HP Software, the Personal Systems Group, the Imaging and Printing Group, HP Financial Services and Corporate Investments.