presentation - Careerdays.bg

Download Report

Transcript presentation - Careerdays.bg

One does not simply start a career in IT:
Launch yours with an internship @VMware
Alexandar Bonev, Manager QE
© 2010 VMware Inc. All rights reserved
Career in IT?
2
But…
3
Well.
4
/.
5
So.
6
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
technology”
 Unlimited supply of coffee, water, tea and juice
7
“IT will be fun, they said”
8
…then it goes like that for a few months...
 Working on real-life project, especially designed for the
internship program
 Duration is 3 - 6 months. Starts beginning of summer
vacation or earlier

9
…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 
10
…and before you know it, it’s over!
11
This year’s projects @VMware
 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!
12
Do you know about the VMware academy @FMI?
13
So do not fear, for I am with you
Questions?
14
Thank you!
15
References
 dilbert.com
 quickmeme.com
 clker.com
 memegenerator.net
16
Backup slide
 Full project descriptions (attached)
 Chromium Embedded http://code.google.com/p/chromiumembedded/
 FUSE - http://fuse.sourceforge.net
 HP Quality Center
 Hypervisor - http://en.wikipedia.org/wiki/Hypervisor
 Vmware - http://www.vmware.com/
 Interns program - http://intern.vmware-bulgaria.com/
17
Software Engineer for Client Platform
Development
 Overview:
“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
technology”
 Skillset:
Good knowledge of C++ and/or Objective C;
Experience with Visual Studio, XCode and/or GCC;
Basic understanding of JavaScript, HTML and Adobe Flash
English
18
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-ofmemory 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
19
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
20
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
21
“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
22
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
23
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
24
vCenter Orchestrator –
Plug-in Development #1
 Overview:
“The project will test the capability of a workflow engine (vCenter
Orchestrator) to reach its orchestration capabilities into the realm of the
real world. It will also test the readiness of the currently available robotic
simulators (building and controlling a real robot is not in the scope) to be
controlled by a complex enterprise-tested system”. The solution will be
developed as a Java-based plug-in for vCO”
 Skillset:
Good understanding of OOP and experience with Java / XML,
JavaScript;
Knowledge of virtualization would be an advantage;
English;
Fast-learning abilities
25
vCenter OrchestratorPlug-in Development #2
 Overview:
“The goal of the project is to build a plug-in for VMware vCenter
Orchestrator that integrates and provides orchestration capabilities for
VMware View”
 Skillset:
Good understanding of OOP and experience with Java;
Knowledge of any of the modern communication / remote technologies
(TCP/IP, SOAP, REST);
Knowledge of virtualization would be an advantage;
JavaScript is an advantage;
PowerShell is an advantage;
English;
Fast-learning abilities
26
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;
27
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 bindings”
 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
English
28
 Overview:
Software Engineer for UI Test
Automation Research #1
“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
29
 Overview:
Software Engineer for UI Test
Automation Research #2
“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
30
 Overview:
Software Engineer for UI Test
Automation Research #3
“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
31