Junior Software Engineer (Backend)





Job description

The Junior Backend Software Engineer will help developing the backend components of the company’s products such as Edge Virtualization Platform (EVP) or Simple Training Service (STS). Together, these products make up an innovative edge computing platform that brings next-generation AI onto the IoT devices equipped with various cutting edge sensors. We solve challenging problems in the world of IoT such as centrally managing massively distributed devices, deploying and upgrading applications remotely, securing data end-to-end, retraining AI models on demand and optimizing the placement of workloads onto a set of heterogeneous devices.

We are looking for a highly motivated new player to join our team who is also willing to learn new technologies and innovate.


  • Develop backend components in high quality and on schedule to help achieve company business goals.
  • Implement scalable and efficient software components.
  • Deliver fully tested software and debug and troubleshoot it when necessary.
  • Deliver software following our operability, security and support standards.
  • Interact with the product team to gather requirements and understand the reasons behind them as well as our customers’ needs.
  • Be an active participant in Midokura´s engineering community helping to continuously push it to higher levels of excellence.

Desired Skills and Experience

We believe you will thrive in Midokura if you possess some of the following skills and experiences:

  • Good communication and analytical skills.
  • Knowledge regarding distributed systems (high availability, fault tolerance, consistency, replication protocols).
  • A solid base of software engineering fundamentals.
  • Development experience in Java and/or Golang and eagerness to learn new technologies and languages.
  • Cloud platforms such as Azure and AWS.
  • Container and container orchestration technologies such as Kubernetes and Docker.
  • Good understanding of network protocols.
  • Concurrent and asynchronous programming.
  • Distributed storage: Cassandra, DynamoDB, Redis, etc.
  • Version control, continuous integration, continuous deployment tools.
  • Experience with developing microservice architectures and everything associated with them: instrumentation, service to service communication, testing, continuous deployment strategies, etc.
  • Experience being part of a team that takes full responsibility for the operations of the software it builds.
  • SaaS development
    • User management, RBAC, authorization and authentication
    • API designs (REST, etc)

Additional skills and experience as a plus

  • Experience in C and C++.
  • Machine Learning libraries, such as Tensorflow and Pytorch.
  • Understanding on ML Dataset management (knowledge of COCO format)
  • Sensor technologies and image signal processing.
  • Experiences with IoT
    • End-to-end security architecture
    • Remote management of devices


BS or MS in Computer Science, or a related field.

Other requeriments

  • EU Working Permit
  • Team worker.
  • Strong written and verbal communication skills in English (Full Professional Proficiency)
  • Spanish or Japanese as a plus
  • Job location in Barcelona (Spain).

What we offer

  • Permanent contract.

  • Competitive salary

  • Very flexible remote work policy: You can choose the days you want to come to our office!

  • Career Plan: biannual performance evaluation review.

  • Health insurance full paid by Midokura

  • Transport to the office paid by Midokura

  • Working in our Midohouse: an attractive place located in 22@ District in Barcelona.

  • Exchange program: possibility to move to our office in Tokyo.

  • The possibility to be part of a senior talented technical team in a fast-growing company.

  • Training credits

  • Free coffee, fruit, soda...

Come and join us!!!