Careers

キャリア

Customer Support Engineer


Register

City

Barcelona


Department

PDD


Job Description

Your mission

Customer Support (CS) Engineers are key to Midokura’s success and possess a unique mix of technical savvy, communication skills, and a strong self-drive to help others and to make our products better.

We are looking for a highly motivated individual who is willing to learn new technologies and innovate, has strong analytical, problem-solving and communication skills, as well as the ability to take on multiple responsibilities at once. Must be able to work in a fast-paced environment with globally distributed teams.

You will have a deep understanding of Midokura’s product portfolio and use this understanding to work directly with customers to drive their satisfaction and success.

You will achieve this by a combination of efforts which may be reactive (troubleshooting technical issues and improving our processes for handling them) and proactive (writing customer support documentation, suggesting product improvements based on frontline experience, or educating customers about product technicalities).


Responsibilities

  • Manage communication and expectations with customers effectively, politely and transparently

  • Investigate and analyze technical issues experienced by customers

  • Escalate issues to Midokura’s engineering teams, gather data for their analysis, track their progress and communicate their status to the customer

  • Continuously improve customer support processes

  • Improve our products by contributing documentation and ideas for improvement


Your profile

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

  • You enjoy and excel at investigating and troubleshooting intricate technical issues

  • You enjoy helping others, both the customers and internal teams

  • You are a good and empathetic communicator

    • You communicate clearly and precisely, and are able to get in your counterpart’s shoes to understand their needs

  • You are proactive and curious, enjoy digging deep into problems until you find an answer

  • You are right at home in a Linux or Unix-like environment

    • The shell is like an extension of your hands

    • You can be thrown into an existing system and you’ll figure out what’s going on inside in a jiffy

  • Shell (Bash and/or others) and Python scripting

  • Network protocol and tool basics (TCP/IP, DNS, TLS, etc.)

  • General Linux toolchain (GNU coreutils, Git, etc.)

  • Docker, Kubernetes and Helm

  • Experience with public cloud providers (Azure, AWS, GCP)

  • Business-level spoken and written English language

  • If applying in Japan: Business-level spoken and written Japanese language (JLPT-N3 or JLPT-2 level desired)

Additional skills and experience as a plus:

  • DevOps experience

  • Core software development skills (C, C++, Java, …)

  • IoT / edge computing experience

  • Machine learning experience (Tensorflow, PyTorch, …)

  • Database administration (PostgreSQL, Cassandra, Redis)

WHAT DO 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.
  • 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 or full-time remote
  • 23 holidays + December 24th and 31st
  • 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...



Requirements

Based in:

  • Barcelona (Spain)

  • Tokyo (Japan)

  • Remote (Spain or Japan)




Senior DevOps Engineer


Register

City

Barcelona


Department

PDD


Job Description

Your mission

Midokura is seeking an experienced engineer to join the DevOps team, which enables our developers to manage the life cycle of our applications, from source code management and testing, to continuous deployment.

This engineer will help the team to maintain the procedure documentation and the tools needed to create new containerized applications based on Kubernetes, research and suggest platform components, troubleshoot production issues, assist developers and maintain platform services health.

A person taking up this role’s challenges also needs to know how to deal with IoT devices, such as flashing, connecting to the cloud and other devices, dealing with authentication certificates, troubleshooting network issues, and monitoring resource usage. 

We are looking for a highly motivated individual who is willing to learn new technologies and innovate, has strong analytical, problem-solving and communication skills, as well as the ability to take on multiple responsibilities at once. Must be able to work in a fast-paced environment with teams distributed internationally.


Your profile

Responsibilities

  • Design and maintain the Continuous Integration & Delivery platform:

  • Define, deploy and monitor the health our job runners

  • Document best practices for: secure code management, lowering build times, ensuring tests cover all-important business logic and functionality…

  • Create the tools necessary to quickly create new application CI/CD workflows

  • Assist developers with troubleshooting CI & delivery issues

  • Ensure and improve the platform security (credentials anonymity, scalability, platform resilience, disaster recovery strategies...)

  • Design and maintain the way of working for the containerized platforms:

    • Document and create tools for app and service definition (Kubernetes Helm charts)

    • Standardize and document how to connect and discover external components (databases, authentication, storage...)

    • Enforce proper management of authentication (TLS certificates, component credentials)

    • Provide the tools and documentation to monitor and maintain reports of application and services health

    • Build tools and tests to determine overall system availability and performance bottlenecks, and work with developers to overcome them.

  • Continuous research, evaluation, and demoing of new technologies in order to improve products and services

  • Provide instructions for maintaining Midokura IT infrastructure

Desired Skills and Experience

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

  • Ability to work as part of a team

  • Good communication skills

  • Experience in Linux administration and containers (Docker, containerd,...)

  • Experience dealing with CI & CD systems (Github Actions, Travis, Jenkins,…)

  • Designing, developing & maintaining distributed systems:

    • High Availability

    • Fault Tolerance

    • Consistency

    • Replication

  • Kubernetes management:

    • Cluster & Service management

    • DNS and service discovery

    • Job management

    • Helm chart creation

    • Troubleshooting, monitoring and log inspection

  • Monitoring and managing production environment health status, lowering outages and data loss.

  • Database administration, backup and recovery.

  • Familiarity with one of the major public cloud providers (Azure, AWS, GCP)

  • Networking (knowledge of major protocols, debugging network issues, configuring appliances…)

  • Scripting and Software Development (Python, bash, …)

  • Network security

  • PKI & TLS certificate management

These skills will be a plus

  • Database Administration: Cassandra and PostgreSQL.

  • Object storage: Minio

  • IoT device management experience

  • Realtime Operating Systems (Nuttx, FreeRTOS…)

  • Core software development skills (C, C++, Java)

  • Machine Learning libraries experience (Tensorflow, Pytorch, …)

Education

BS/MS degree in Computer Science or equivalent

Other Requirements

  • EU Residence (Mandatory)

  • Strong written and verbal communication skills in English (Full Professional Proficiency)

  • Spanish or Japanese as a plus

  • Job location in Barcelona (Spain)


Software Engineer (embedded)


Register

City

Barcelona


Department

PDD


Job Description

Your mission

The Embedded Software Engineer will push forward the next-generation edge device software that brings AI onto IoT devices equipped with various cutting-edge sensors. The software, which cooperates with cloud platforms, solves challenging problems in the world of IoT such as centrally managing massively distributed devices, deploying and upgrading applications remotely, securing data end-to-end, and optimizing the placement of workloads onto a set of heterogeneous devices. The targeted edge devices operate in ultra low-power modes and are subject to constraints such as high/low ambient temperatures and a limited energy budget from battery power or network connectivity. The devices integrate tightly with various sensors/accelerators to reduce power consumption in order to offer an optimal solution for constrained environments like Smart City or Smart Retail among others. Hence, the software we build has to meet all such operational requirements.

We are looking for a highly motivated and hands-on individual who is willing to learn new technologies and innovate; has strong analytical, problem-solving, and communication skills, as well as the ability to take on multiple responsibilities at once.  Must be able to work in a fast-paced environment with teams distributed around the globe.



Responsibilities

  • Develop high quality firmware on schedule to help achieve the company’s business goals.

  • Develop Edge Platform Software independent from various RTOS available in the market.

  • Work with developers across other disciplines, such as Backend and DevOps, to satisfy agreed functional requirements.

  • Design and implement highly concurrent and efficient software components.

  • Test and debug.

  • Interact with the product team to gather requirements, propose architect solutions, provide means to deploy and support our software.


Your profile

  • 5+ years of relevant software development experience

  • Experience with Version Control Systems.

  • Excellent analytical skills.

  • Strong written and verbal communication skills.

  • Solid development experience in C and C++. 

  • Proficiency in *NIX and Comprehension of Real-time Operating Systems.

  • Solid understanding of embedded system architectures. e.g. task scheduling, power modes, system clock and peripherals management.

  • Experience in controlling hardware inside/outside of MCU.

  • Experience in developing software for memory-constrained devices such as tiny MCUs.

  • Experience with board-level communication interfaces such as I2C, SPI.

  • Experience in On-Chip and Remote debugging.

  • Experience with IoT:

  • End-to-end security architecture

  • Remote management of devices

  • Concurrent and asynchronous programming.

Additional skills and experience as a plus

  • Sensor technologies and/or specialized computing devices programming (DSP, FPGA, etc)

  • Experience developing in NuttX RTOS.

  • Dynamic software loading on RTOS.

  • Cloud technologies such as Azure/AWS/GCP, OpenStack, etc.

  • Understanding of current InfoSec concepts and technologies (TLS, PKI, etc).

  • Knowledge about L2-L7 network protocols including Ethernet, IP, TCP, HTTP, Pub-Sub.

  • Debug peripheral buses and GPIO using an oscilloscope.

  • Knowledge about electronic circuits to read schematic sheets and utilize for debugging.


Software Engineer for IoT - Sony Group


Register

City

Barcelona


Department

PDD


Job Description

Your mission

The Software Engineer will develop 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 team player with excellent coding abilities who is willing to learn new technologies and innovate and has strong analytical, problem-solving, and communication skills, as well as the ability to take on multiple responsibilities at once.


Responsibilities

Develop backend components in high quality and on schedule to help achieve company business goals.

  • Design and implement scalable and efficient software components.
  • Deliver fully tested software and debug and troubleshoot it when necessary.
  • Deliver software that has operability, security and support as first class concerns from the design phase all the way to operations.
  • Contribute to architecture designs and evaluations. 
  • 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.


Your profile

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

  • Excellent communication and analytical skills.
  • Experience designing and developing distributed systems (high availability, fault tolerance, consistency, replication protocols).
  • A 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
    • We believe you will thrive in Midokura if you possess a mix of some of the following skills and experiences:
      • Excellent communication and analytical skills.
      • Experience designing and developing distributed systems (high availability, fault tolerance, consistency, replication protocols).
      • A solid base of software engineering fundamentals.
      • Strong development experience in Java 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)


WHAT DO 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. 

  • 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 or full-time remote

  • 23 holidays + December 24th and 31st

  • 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...