R&D Software Engineer (CTO Team)
Midokura is seeking candidates who are interested in developing novel engineering solutions in a wide variety of problem domains, including distributed systems, machine learning, edge computing, IoT, security, and cloud infrastructure.
You will be working in the CTO team, a versatile and diverse group of software engineers, program managers, and designers. The team is built on collaboration, execution excellence and technical leadership, and is always learning and adapting to new technologies. In our team you will have a supportive platform to grow your software design and development skills while working on the latest research innovations. Our projects span topics such as safe languages, distributed machine learning, security using trusted execution environments, the Internet of Things (IoT), and more. Working on a different project every 6 to 18 months, you will be able to propose solutions, architect and implement them, then evaluate/ship/transfer them as needed. You should be passionate about technology and innovating, be eager to learn and grow, enjoy creative thinking and collaboration, and be comfortable dealing with ambiguity.
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.
- Work with CTO and other R&D engineers to develop and drive a high-impact research agenda and engineering plan.
- Collaborate with engineering teams to develop and test out new ideas.
- Collaborate with academic and industry partners to develop new technologies.
- Build software systems that test new approaches or develop novel theoretical and practical insights.
- Assist in the preparation of technical papers and patent applications.
Desired Skills and Experience
- 4+ years of commercial engineering experience in software development, or equivalent years of graduate studies.
- Experience designing and developing distributed systems (high availability, fault tolerance, consistency, replication protocols).
- Cloud technologies such as Azure, AWS.
- Concurrent and asynchronous programming.
- Experience with Version Control tools and Continuous Integration frameworks.
- Excellent analytical skills.
- Strong written and verbal communication skills.
- Fluent in written and spoken English.
Additional skills and experience as a plus
- Container technologies such as Kubernetes and Docker.
- Machine Learning libraries, such as Tensorflow and Pytorch.
- Experiences with IoT
- Wireless communication protocols such as LoRaWAN, Thread, LTE
- End-to-end security architecture
- SaaS development and operations
- Compilers, such as LLVM
- User management, RBAC, authorization and authentication
- API designs (REST, SOAP, etc)
- Experience with relational and no-SQL databases (PostgreSQL, Redis)
MS or PhD in Computer Science, or a related field, required.
- EU or Swiss Residence (Mandatory)
- Strong written and verbal communication skills in English (Full Professional Proficiency)
- Spanish or Japanese as a plus
- Job location in Barcelona (Spain) or Lausanne (Switzerland).
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.
- 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!