At Ericsson, you can be a game changer! Because working here isn’t just a deal. It’s a big deal. This means that you get to leverage our 140+ years of experience and the expertise of more than 95,000 diverse colleagues worldwide. As part of our team, you will help solve some of society´s most complicated challenges, enabling you to be ‘the person that did that.’ We’ve never had a greater opportunity to drive change; setting the bar for technology to be inclusive and accessible; empowering an intelligent, sustainable, and connected world.

Are you in?

Master Thesis in Computer Science

Job Description

Date: Jan 8, 2020

Do you want to do your thesis with us in Kista?


Would you like the chance to do your thesis together with one of the world’s leading technology companies? We are on a quest to enable communication for everyone and everything and we believe that we do that by being as innovative as possible. If you want to help us to be even more innovative – then you are on the right track!


We want you to become a part of a truly global company working across borders in 180 countries, offering a diverse, performance-driven culture & an innovative & engaging environment where employees enhance their potential every day. Come and learn and grow with us at Ericsson.



We are looking for Students in their final year of Computer Science (or equivalent) that would like to work closely with our research team in solving a cutting edge research topic within Cloud/5G and distributed mobile systems. Your assignment will be in the form of a Master Thesis on a given topic. We have 3 topics that are of especially high value - they are listed in this Ad. Please respond with a CV as well as a cover letter explaining why you are interested in Research, and which of the topics you would consider covering as part of your Thesis. You will be part of the team and working closely together with us at Ericsson headquarters in Kista. The work is expected to start in Jan/Feb 2020, and proposed for a duration of 6 months. Please submit your application in English as soon as possible - we will continuously process the applications.


Overview of Topics

Topic 1: "Functional Package Management and Distribution"

Topic 2: "Distributed quota management"

Topic 3: "Distributed Edge Cloud Availability"


Detailed Topics Information


Topic 1: "Functional Package Management and Distribution"


Containers solve several different problems when running applications in the cloud, one of the problems is how to distribute software to multiple machines. The correct behavior of an application typically depends heavily on its environment, which consists mainly of files in the filesystem (configuration-, data-, library files, etc.) and other applications running that the main application may communicate with.
Containers solve this problem by packaging the application with its environment, as an image. The container image is a snapshot of the filesystem and services together with which the application has been tested. While there are some things in the environment that still may change when the application is run, it reduces the number of possible environments from potentially infinite to one. Most current systems for creating the container images generates a series of layers, generated from a list of commands. In Docker, a Dockerfile is used to build an image using a series of commands which can e.g. add files into the image from the host, run commands in the image to install packages using an existing packaging system, download packages from the internet, and others
The main issue with container images, even when built from predefined Dockerfiles, is that they are snapshot of images containing all the actual files needed to create the environment and not a description of the environment. While Dockerfiles describe how to build the environment, they are not guaranteed to result in the same environment if run twice, on different nodes or at different times, since e.g. the packages we download remotely could be changed and thus result in a different environment when installed.
Functional package management system is a way of handling software packaging where software is installed into unique directories generated through cryptographic hashes. Dependencies from each software are included within each hash, solving the problem of dependency incompatibilities. This novel approach to package management promises to  generate more reliable, reproducible, and portable packages.

Thesis Objective
This master thesis aims to explore alternatives to current methods of building a container image by using functional package management system. Along with package management, the thesis will also look into methods of efficient container package/image distribution.

Work Description

  • Study and Investigation: The Thesis requires study of current state of the art related to package management and distribution, and how container images are composed today. Build knowledge on functional package management systems by exploring systems such as NixOS and GUIX.
  • Solution Design: Design a functional package management system for composing container images that can replace the current dockerfile based system. Explore design alternatives for efficient package and container image distribution system that can improve the shortcomings of the current method.
  • Implementation and Evaluation: Implement the functional package management and distribution system for Linux Containers as a utility tool that can later be integrated as a plugin in Kubernetes Platform.


Qualifications and Experience

  • Good and practical knowledge of Linux operating system
  • Working knowledge of Linux containers, knowledge of Kubernetes is a plus
  • Good programming skills in Python, Golang and C/C++.


Topic 2: "Distributed quota management"


Kubernetes is a popular cluster manager for containers (pods) that allow to schedule applications in a cluster of servers. It has the concept of resource limits, however they are static. Once the pod has started and once the cluster is full, it cannot allocate more pods until running pods are completed or preempted.


If you do not specify a CPU limit for a Pod, then one of these situations applies:

1.    The Container has no upper bound on the CPU resources it can use. The Container could use all of the CPU resources available on the Node where it is running.
2.    The Container is running in a namespace that has a default CPU limit, and the Container is automatically assigned the default limit. Cluster administrators can use a LimitRange to specify a default value for the CPU limit.
In Linux, Control Groups (cgroups) is a mechanism to limit, account, and enforce resource usage on a set of processes. Cgroups allows the user to allocate resources — such as CPU time, system memory, network bandwidth — among user-defined groups of tasks (processes) running on a system. This control ensures fairness when sharing resources among multiple processes and users.
However, Cgroups only operate within a single Linux node. If we are running multiple nodes in a cluster and want to set global (i.e. cluster-wide) resource limits between the same users, running their processes on multiple nodes in a cluster, there is no mechanism to enforce and maintain the limits on a global level.

Thesis Objective
The master thesis has as a goal to add a mechanism to Kubernetes to dynamically distribute unused quotas among nodes in a Kubernetes cluster using cgroups or other alternative approach.


Work Description

  1. Study and Investigation: The first item involves study of the Kubernetes cloud management platform; its architecture, its components, its limitations. This is followed by a study of the proposed distributed quota sharing design for Kubernetes using cgroups scaling and the technical challenges that remain to be solved.
  2. Solution Design: This activity involves designing a solution to the technical problems identified. The student should identify possible approaches to the problem, select an approach and develop it to a full solution.
  3. Implementation and Evaluation: This activity involves implementing the selected solution on a test environment, demonstrate its feasibility and perform performance evaluation of the proposed solution against the standard approach.


Qualifications and Experience

  • Good knowledge of distributed systems and cloud technologies.
  • Good programing skills are required; knowledge of the golang programming language is essential to understand Kubernetes code.
  • Knowledge of some (shell) scripting language, Linux and cgroups is advantageous.


Topic 3: "Distributed Edge Cloud Availability"


With 5G being rolled out across the world, new performance sensitive applications are emerging in various domains, such as, healthcare, transportation, entertainment, etc. To meet their performance goals, such as, availability, latency, etc., new distributed edge cloud will be set up near the logical edge of telecom operator’s network.

Lower availability inside distributed edge cloud could cost significant economic losses to the cloud provider. Application’s availability requirements may be expressed in terms of Service Level Agreement (SLA). The availability information cloud be exposed to an application orchestrator to ensure application’ SLA is met.


Thesis Objectives

The goal of this master thesis is to define availability metrices and efficient availability estimation methods for a distributed edge cloud. As part of the work, it is expected to model and estimate availability in a distributed edge cloud. Also, a proper evaluation is required for efficient application allocation methods in order to meet their availability requirements.


Work Description
•    Investigate and understand distributed edge cloud.
•    Understand and identify the challenges of availability estimation in a distributed edge cloud.
•    Identify input & output parameters, and model holistic as well as site availability in a distributed edge cloud.
•    Implement an application allocation algorithm using the availability information.
•    Thoroughly analyze and evaluate the proposed solution(s).  
•    Write a proper documentation for the solution(s) and their evaluation(s).


Qualifications and Experience

•    Good knowledge of distributed systems (e.g., reliability, availability, etc.)
•    Good knowledge of system modeling, queueing theory, and optimization.
•    Being familiar with programming environment in Linux.
•    Being familiar with discrete event simulation.
•    Good programing skills are required (Python and R).
•    Good knowledge of mathematical statistics is a plus.


Are you in?


If you feel interested, please send in your application as soon as possible. The start date can be adjusted to both your and the business needs – the intention is to start in January or February.

While applying please attach your updated CV, current grades and cover letter written in English into one document (under CV field in the application tool)  and clearly define your technical knowledge.

If you have any questions, please reach out to Recruitment Specialist, Sylwia Kwiecień at


To be a driver of global transformation is in our DNA and we use innovation to empower people, business and society. Through our technological leadership, global presence and the empowerment we provide to our employees, we offer enormous opportunities to change people's lives and the world we live in.


We welcome the opportunity to meet you!



Ericsson provides equal employment opportunities (EEO) to all employees and applicants for employment without regard to race, color, religion, sex, sexual orientation, marital status, pregnancy, parental status, national origin, ethnic background, age, disability, political opinion, social status, veteran status, union membership or genetics.

Ericsson complies with applicable country, state and all local laws governing nondiscrimination in employment in every location across the world in which the company has facilities. In addition, Ericsson supports the UN Guiding Principles for Business and Human Rights and the United Nations Global Compact.

This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation, training and development.

Ericsson expressly prohibits any form of workplace harassment based on race, color, religion, sex, sexual orientation, marital status, pregnancy, parental status, national origin, ethnic background, age, disability, political opinion, social status, veteran status, union membership or genetic information.


Primary country and city: Sweden (SE) || || Stockholm || Stud&YP

Req ID: 309163