Careers

キャリア



Software Quality Assurance (QA) Engineer

Register

City

Barcelona.

Estate/Province

.

Country

Spain.

Job description

Midokura is seeking a talented Software Development Engineer in Test to carry out the Quality Assurance role with experience in systems testing and strong knowledge of IoT platforms. Our Quality Assurance Engineers are capable of reviewing the code itself, writing unit tests, and approaching the test coverage with a programmer’s mindset to ensure that our products ship free of bugs, without regressions, meeting performance/scaling goals and with all components working seamlessly together. Our QA engineers are experts at using our Edge Computing Platform (EVP) and deeply familiar with the IoT ecosystem. The QA Engineer will do manual and automated testing of EVP and its cloud/device software integrations. The QA engineer will help with root-cause analysis and drive improved testing and coverage in the entire code-base. 

We are looking for a highly motivated hands-on individual who is willing to learn new technologies and innovate, with 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 from our office in Barcelona (Spain).

Responsibilities

  • Create and review test specifications, test cases, test plans and general QA policies and procedures.
  • Write regression, black-box and systems tests and capability to write through unit tests same as a developer.
  • Managing and even customizing the automation framework/tools
  • Maintain and evolve our distributed, cloud-based testing framework.
  • Manually test our edge computing solution by generating various types of traffic between devices or between devices and cloud.
  • Automate CLI, GUI and controller testing.
  • Assisting with debugging
  • Analyzing test script results
  • Troubleshoot and isolate issues, file bugs and work with developers to find root causes.
  • Collaborate with our systems/devops engineers to deploy to our test cloud and perform smoke testing.
  • Record and track product defects.
  • Drive increased and improved test coverage across the whole code-base.

Required Skills and Experience

  • 3+ years in computer networks and distributed test systems.  
  • 3+ years programming in any OO language: Python, C++, Java, Scala or similar
  • Experience writing test plans and test cases, from analyzing feature specs
  • Strength in at least one of Shell, Puppet, Chef, Ansible within the context of deploying complex network scenarios
  • Traffic generation and analysis tools: iperf, netperf, mgen, nmap, tcpdump or similar
  • Experience working in Agile environments

Desired Skills and Experience

  • Edge Computing architecture and Services
  • IoT Devices
  •  Linux container technologies (Docker)
  • Experience with Rally, IXIA, IxLoad, IxChariot, Avalanche, Tempest, Rally, Selenium or similar tools a plus
  • Experience with Cassandra
  • Excellent problem solving and analytical/quantitative skills

Education

  • BS/MS degree in Computer Science or equivalent

Other Requirements

  • EU Residence (Mandatory)
  • English (Full Professional Proficiency) and Spanish as a plus

Contract type

Full Time.

Experience

Mid Level.


Software Engineer (DevOps)

Register

City

Barcelona.

Estate/Province

Barcelona.

Country

Spain.
08018

Job description

Software Engineer (DevOps)

Midokura is seeking an experienced engineer to join the DevOps team that manages our Continuous Integration and Delivery system to deploy the IoT management platform developed by our backend developers.

 

This engineer will help the team to maintain the application specification that is used to deploy all the containerized components, 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.

Responsibilities

 

  • Maintain the Continuous Integration & Delivery platform:
    • Optimize build times
    • Ensure tests cover all-important business logic and functionality
    • Assist developers with troubleshooting CI & delivery issues
    • Ensure and improve the platform security (credentials anonymity, scalability, platform resilience, disaster recovery strategies...)
  • Operate the containerized platforms:
    • Update application and service definitions (Kubernetes Helm charts)
    • Deal with connectivity and discovery for individual components (databases, backend, UI, storage...)
    • Manage authentication (TLS certificates, component credentials)
    • 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
  • Maintain Midokura IT infrastructure:
    • Office connectivity (Internet, Wifi, wired network, printers...)
    • VPN for employees
    • Recommend IT equipment for company employees (PCs, notebooks, devices…)
    • Maintain company’s cloud resources

Required Skills and Experience

  • 5+ years using Linux administration and containers (Docker, ...)
  • 3+ years dealing with CI & CD systems (Jenkins, Travis,  Circle CI,…)
  • 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
  • Major public cloud providers (Azure, AWS, GCP)
  • User experience in major Operating Systems (macOS, Windows)
  • Networking (knowledge of major protocols, debugging network issues)
  • Scripting and Software Development (Python, bash, …)
  • Network security
  • PKI & TLS certificate management

Desired Skills and Experience

 

  • IoT devise management experience
  • Realtime Operating Systems (Nuttx, FreeRTOS…)
  • Cassandra database management
  • Core software development skills (C, C++, Java)
  • Google Suite administration
  • 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

Contract type

Full Time.

Experience

Experienced.


Senior Software Engineer (Embedded)
Engineering

Register

City

Barcelona.

Estate/Province

Barcelona.

Country

Spain.
08010

Job description

Senior Software Engineer (Embedded)

The Senior Embedded Software Engineer will steer the development of the next-generation edge device software that brings AI onto the 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 designed edge devices should work in ultra-low-power and they are subject to several constraint conditions such as high/low ambient temperatures and 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.

 

We are looking for a highly motivated and hands-on individual 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.  Must be able to work in a fast-paced environment with teams distributed around the globe.

Responsibilities

  Develop the firmware in high quality and on schedule to help achieve company business goals.

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

  Design and implement dynamic software loading systems over the network.

      Design and implement highly concurrent and efficient software components.

      Test and debug.

      Interact with the product team to gather requirements, participate in architect design solutions, provide means to deploy and support our software.

      Provide guidance to junior engineers.

      Work with HR, eventually, to help grow the engineering team.

 

Required Skills and Experience

  • 10+ years of relevant software development experience
  • Strong development experience in C/C++, Linux and real-time operating system (RTOS)
  • Strong system architecture design experience in embedded software. e.g. RTOS selection, power modes and system clock management.
  • Deep knowledge of controlling hardware inside/outside of MCU and for designing services based on such hardware functionality.
  • Experience designing software that under memory-constrained settings such as tiny MCUs.
  • Experience designing and developing peripheral drivers such as DMAC, I2C, SPI, some specific IP.
  • Experiences with IoT

      End-to-end security architecture

      Remote management of devices

  • On-Chip debugger experience
  • Socket programming experience
  • Concurrent and asynchronous programming.
  • Experience with Version Control tools.
  • Excellent analytical skills.
  • Strong written and verbal communication skills.

Additional skills and experience as a plus

      Sensor technologies and/or specific SW programming (DSP, ISP, FPGA, etc)

  • Experience developing in NuttX RTOS.

      Dynamic software loading on RTOS.

      Cloud technologies such as AWS and OpenStack.

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

      Debug peripheral buses and GPIO using an oscilloscope.

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

Education

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

Other Requirements

  • EU Residence (Mandatory)
  • Strong written and verbal communication skills in English (Full Professional Proficiency)
  • Spanish or Japanese as a plus

 

Contract type

Full Time.

Experience

Experienced.


Senior Software Engineer (Backend)
Engineering

Register

City

Barcelona.

Estate/Province

Barcelona.

Country

Spain.
08010

Job description

Senior Software Engineer (Backend)

The Senior Backend Software Engineer will develop the backend component of the Edge Virtualization Platform (EVP), an innovative edge computing platform that brings next-generation AI onto the IoT devices equipped with various cutting edge sensors.  EVP 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.  EVP integrates tightly with various sensors and Machine Learning libraries to offer optimal edge computing solutions in various scenarios such as Smart City, Smart Factory, Workplace Safety, Retail automation, etc.

 

We are looking for a highly motivated individual 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.  Must be able to work in a fast-paced environment with teams distributed around the globe.

Responsibilities

  • Develop the backend component of the Edge Virtualization Platform (EVP) in high quality and on schedule to help achieve company business goals.
  • Design and implement highly concurrent and efficient software components.
  • Test and debug.
  • Contribute to architecture designs and evaluations to facilitate the services' implementation 
  • Interact with the product team to gather requirements and provide means to deploy and support our software and architect solutions.

Required Skills and Experience

  • 10+ years of relevant software development experience
  • 5+ years of service design and operations experience.
  • Experience designing and developing distributed systems (high availability, fault tolerance, consistency, replication protocols).
  • Strong development experience in Java ( Scala, Go, Python, C and C++ are a plus) and Spring Framework (Spring Boot as a must)
  • Cloud technologies such as Azure, AWS and OpenStack.
  • Container technologies such as Kubernetes, Mesos and Docker.
  • Good understanding of network protocols including IP, TCP, UDP, HTTP, MQTT. 
  • Good understanding of security, PKI, TLS, etc
  • Concurrent and asynchronous programming.
  • Experience with Version Control tools and Continuous Integration frameworks.
  • Excellent analytical skills.
  • Strong written and verbal communication skills.
  • English (Full Professional Proficiency) required and Spanish as a plus
  • EU Working Permit

Additional skills and experience as a plus

  • Machine Learning libraries, such as Tensorflow and Pytorch.
  • MLOps frameworks such as Kubeflow, MLFlow, 
  • Sensor technologies and image signal processing.
  • Embedded programming on MCU.
  • Experience with signal processing on DSPs.
  • Experiences with IoT
    • End-to-end security architecture
    • Remote management of devices
  • SaaS development
    • User management, RBAC, authorization and authentication
    • API designs (REST, SOAP, etc)
  • Distributed storage anr coordination such as Zookeeper, etc, Cassandra.
  • Data processing engines such as Spark and Hadoop.

Education

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

Other Requirements

  • EU Residence (Mandatory)
  • English (Full Professional Proficiency) and Spanish as a plus

Contract type

Full Time.

Experience

Experienced.

EMAIL

Eメール

CALL USE

電話