7 Start an Internship with us and get… Computer, chair and a desk Mentor Task description of the sort: build a cross-platform lightweight wrapper for the vSphere Web Client that allows packaging and distribution in a native desktop application format. Utilize the Chromium Embedded Framework (CEF) or a similar technologyCEF Unlimited supply of coffee, water, tea and juice
8 IT will be fun, they said
9 …then it goes like that for a few months... Working on real-life project, especially designed for the internship program Duration is months. Starts beginning of summer vacation or earlier
10 …during which you have the chance to… Learn how software development process works in practice Get acquainted with VMware culture, portfolio, different projects etc. Gain immense technical growth Checkout the peer professions Pick up some presentation skills
11 …and before you know it, its over!
12 This years We have 14 projects planned for this summer Programming skills – Java, C/C++, Python, SQL… Different areas of interest: - low-level OS stuff - Java, REST, Spring - cross-platform integration and scripting - UI-automation and research - algorithms - …more!
13 Do you know about the VMware
14 So do not fear, for I am with you Questions?
17 Backup slide Full project descriptions (attached) Chromium Embedded - FUSE - HP Quality Center Hypervisor - Vmware - Interns program -
19 Multi-platform crash handling facility for native code Overview: vmacore team is owner of the C++ application framework that is used by most of the C++ based VMware products. It provides generic OS abstraction layer, RPC invocation mechanism, comprehensive logging and crash-handling facility. This project target is to improve the reliability of the above mentioned crash handling facility. It should be able to generate crash dumps even if the crashing process is in completely unstable state e.g. has hit a stack overflow or an out-of- memory condition. It should support Windows, Linux, Mac and vSphere platforms. Skillset: OS architectures and different process abstraction implementations; C/C++ and OOP for Linux, Windows and Mac; Data structures and algorithms, design patterns and unit testing; Analytical and problem solving skills English
20 Third-Party Hypervisor Management Java Library Overview: When automation-testing a product that manages different hypervisors, a standard approach would be to use a form of direct communication with them, to check their state or the state of any related entities. Deliver a prototype of such an independent library that can be consumed by Java application. Skillset: Good knowledge of Java; English
21 Move the offline Virtual Machine management functionality from host to Virtual Center Overview: This project is driven by the VM-management team, who is the owner of the code both on ESXi and VC side that provides public-facing APIs for VM configuration and management. The goal of this project is to prove the feasibility of moving management of the offline VMs from host to VC Skillset: C++, Python and OOP in general; Good knowledge of different DBMS; Data structures and algorithms, design patterns and unit testing English
22 HP Quality Center – Eclipse bridge Overview: Develop a tool which can translate test-description information, stored in HP Quality Center database, into comments or annotations of the automation code, and keep those descriptions in those two places synchronized. Updating the test-description in automation code should automatically synchronize those to HPQC database Skillset: Computer Science student or relevant education; Excellent knowledge of Java and OOP ; Interest in scripting languages, like PowerShell, Python, Perl; English
23 Auto-generate a REST API client Overview: Some VMware back-end services are exposed as REST endpoints and are implemented on the top of Spring REST support. It would be great if REST service providers also provided REST API clients for remote access of their services. This Intern project aims to facilitate the service providers and their users by creating a tool that auto-generates REST API clients in an automated manner. The tool must be built on the top of Spring framework and in consistency with existing Spring projects and concepts Skillset: Good knowledge of Java and OOP; Understanding of design patterns; Experience with Spring framework, Maven or REST is a plus; English
24 HTML 5 extension library for SUITA test automation framework Overview: SUITA test-automation framework is facilitating rapid test development in heterogeneous UI environments – environments with multiple technologies used to develop the product UI. SUITA is capable of handling Selenium based UI as well as any other graphical UI via its Sikuli extension. The objective of this project is to evaluate existing HTML 5 functional test libraries, select the best one and implement SUITA extension to enable interaction with HTML 5 user interfaces. Skillset: Excellent knowledge of Java and OOP ; Experience with HTML 5 is a strong plus; English
27 Software Engineer for vCloud Navigator Overview: Build a web-based application that will provide easy navigation through VMware vCloud Director resources and easy execution of HTTP requests (GET, POST, PUT and DELETE).The application should leverage the vCloud API, which enables deploying and managing virtualized workloads in private, public and hybrid clouds as well as interoperability between clouds. It is an open RESTful, pure virtual, API that supports multi-tenancy and enables the upload, download, instantiation, deployment and operation of vApps Skillset: Good knowledge of the Java programming language; Very good understanding of HTTP; Good coding skills; English; Experience with HTML/CSS is considered as advantage;
28 vCloud Virtual File System Overview: Build a (sysfs-like) virtual file system that will allow Linux users to control their VMware vCloud Director environment in an easy file-based manner. The project should expose vCloud Director runtime information, allow interaction with existing objects and allow creation of new objects. The solution will be developed with FUSE (http://fuse.sourceforge.net) and Python bindingshttp://fuse.sourceforge.net Skillset: Good knowledge of the Python (or another dynamic) programming language; Good knowledge of Linux and good programming skills; Experience with RESTful web services is considered an advantage; Experience with FUSE is considered an advantage EnglishFUSE
29 Software Engineer for UI Test Automation Research #1 Overview: Evaluate different approaches to automatically collect images from successful automated UI test runs and develop a mechanism to share these images (in order to visualize UI test results). The project will focus on Selenium and Sikuli UI frameworks. Must develop images-repository server, which will be used to store and share the acquired images. Additionally, java libraries must be developed in order to enable easy integration between that server and existing automated tests Skillset: Good knowledge of Java and OOP; Good knowledge of data structures and algorithms; Experience with scripting languages is a plus; English
30 Software Engineer for UI Test Automation Research #2 Overview: Automate the process of verification and validation of data that is shown in charts and graphs. Across the UI of VMware products we visualize performance data of virtual-machines and hosts in one way or another. This data is usually coming from the same source, but is processed by different engines and presented to the user in a graphical format – 2D_charts, stacked charts, etc. Testing whether data shown on such a chart is correct, is a purely manual process. This project will explore approaches to analyze the charts in order to automate this process and create a working proof of concept for a specific scenario Skillset: Good knowledge of Java and OOP; Good knowledge of data structures and algorithms; Experience with scripting languages is a plus; English
31 Software Engineer for UI Test Automation Research #3 Overview: Evaluate methods of DOM tree analysis and comparison in order to test web-UI. During development of software with large WEB based HTML user interface, lots of changes are happening on daily basis. Sometimes it is difficult to find what was changed and how – was there something added, or deleted. We are exploring ways of automating that process by means of DOM tree analysis and comparison. A proof-of-concept tool should be able to run across WEB pages, analyze and save parts of DOM tree, and then be able to tell in a smart way what got changed on each page Skillset: Good knowledge of Java and OOP; Good knowledge of data structures and algorithms; Experience with scripting languages is a plus; English