Learning opportunities

TFG and TFM proposals:

Here you can find a list of the current TFG and TFM proposals for this year:



Tools/languages you’ll learn:

In our group you’ll be able to learn a lot of tools that you’ll need when you go to find a job in a company.

Some of the tools we use are:

  • Linux usage and management: we usually work with Linux, so you’ll be able to learn how to use and administer this OS.
  • Github: version control system (VCS) are used in almost all companies to track software versions. Among all of them, “git” is the most widely used, and “github” its is “social” version.
  • Matlab: this is a key tool for researchers, as it enables us to easily generate our models and optimizations
  • Programming languages: we usually code in C/C++ or Java to implement the algorithms developed in C++/Java in our demo setups, or in our simulators. Of course, if you code in C/C++, we’ll help you understanding the use of Makefiles.
  • Scripting languages: we use scripts to launch optimizations and models in real hardware. When we need to develop scripts, we usually use Python or Bash.
  • Useful command-line tools that you must know as an engineer: SSH/rsync, screen

Software and Hardware:

All the algorithms we develop for research purposes in Matlab, are finally ported to our demo setups, where we run everything for real.

In the lab, you’ll develop and work with production-ready software used by many companies, such as:

  • OpenStack
  • Profiling tools such as: Valgrind, Oprofile, operf, papiex, etc.
  • Data Center Simulators: CloudSim, iCanCloud, DEVS…

From the hardware perspective, you’ll work with

  • High-end enterprise servers.
  • Visualization and monitoring tools
  • Current, humidity, temperature and pressure sensors, and wireless sensor networks that we use for monitoring purposes.
  • FPGA’s, Big.LITTLE ARM cores, etc.


You’ll work with a group of researchers that will teach you what research looks like.