IT Intern Bachelor/Master - Continuous Integration System - Switzerland
Stage SWITZERLAND IT development
Job description
- Location:Ecublens, Vaud, Switzerland
- Area of InterestEngineer - Software
- Job TypeIntern
- Technology InterestSoftware Development, Testing
- Job Id1264154
Internship duration: 6 months, August 2019 -January 2020
Location: Cisco, EPFL Innovation Park, Ecublens, Switzerland
Dashboard for continuous integration system
The Cisco engineering team in Switzerland is composed by developers and testers working on the IOS-XE Cisco proprietary operating system platform with a focus on wireless networking. As part of the development cycle, engineers rely on a backend continuous integration system that compile and test code in order to check the code branch sanity. The compilation is done across multiple platforms, both virtual and hardware based. The testing can either be white-box testing on linux machines or black-box testing on network topologies. All these operations (compilation and testing) are owned by the engineering team, can happen with configurable frequency, can be project specific and always generate enormous quantity of logs. Today, results consultation provided by Jenkins/builbot/email is not sufficient to convey the status of all projects in a given branch, to understand what is failing and why, to feel the overall quality status trends, to see historical data.
The goal of this internship is to implement a state-of-the-art continuous integration system for the site, taking the following considerations into account:
·Ability inspect status of a branch/project
oAllow for different configurable result views (per-project view, per-branch view, etc)
oVisual and immediate representation of the last state plus N historical
oConfigurable warning thresholds (coverage too low, too many tests failing, critical tests failing etc)
oOne-click summary to display status of a project in a given day
·Ability to inspect failures
oCompilation:one-click point to the failing logs, isolate logs error
oTest:display which tests are failing,since when, when did this test fail again in the past,known reasons,test flakiness indicator (to be linked with statistics)
·Metrics: generate code coverage and cross-correlate with specific tests, ability to select test cases based on code differences and predict failures based on results from previous runs
Desired skills:
- Bachelor or Master student in Computer Science, Computer Engineering, Communications Systems, Electrical Engineering or a related major
- Minimum of a 4.5 GPA or higher
- Good knowledge of python, ruby or equivalent scripting language
- Good knowledge of linux environment
- Familiar with software engineer dev-cycle (pull code, dev, test, etc)
- Familiar with data visualization
- Ability to inspect state-of-the-art solutions and analyze pros/cons
- Ability to work autonomously and to find innovative solutions to non-trivial problems
- Good verbal and written English