Build huge, highly scalable solutions for big data ML products...
Thinking Machines is a technology consultancy building AI & data platforms to solve high impact problems for our client. Our vision is for Southeast Asia to become a global hub for data science. To do that, we create data cultures, one organization at a time.
We’re a company made up of intellectually curious, civic-minded, forever-learning individuals. We believe that great data science products are built with care for people, and that the best way to drive inclusive innovation is to start with a diverse team.
Our field of work is incredibly dynamic, so we want to work with people who are committed to growing with us. We want to hire people who can demonstrate an ability to learn, then provide them with personalized coaching, growth opportunities, and a great working environment to get them to world-class.
As a Machine Learning Engineer, your main responsibility will be building large, scalable solutions for big data problems. You will be highly involved with the various machine learning specialization teams, transforming their work into systems that are able to handle immense amounts of data. To do this, you will be expected to approach problems from many different ways: from leveraging cloud solutions in order to process embarrassingly parallel data problems, to picking apart and writing your own algorithms to speed up computations. Through this practice, you will be cutting down processing time from literal years to mere days, hours, or even minutes, all while being within budget.
You will also be involved in creating machine learning production systems, akin to DevOps, called MLOps. Your main challenge will be building, deploying, and maintaining highly reliable and available systems, powered by the machine learning models we create, that live in real-world production environments. This is especially important for ML projects with user application components, which need to consume and interact with our machine learning models, be it through an API that serves real-time predictions, or feedback mechanisms to continually update them.
Overall, you will be an engineer specializing in handling machine learning components for parallelization and productionalization. You are expected to have a solid engineering sense to piece together solutions from all available tools, as well as strong algorithmic thinking to create one if it does not yet exist.
Since the startup space can get crazy, we are looking for someone who is up for any challenge and has the initiative to seek out ways to be useful. We move fast, and we expect you to keep up!
This position will start with a 6-month fixed-term contract which will be converted to a full-time role once our Thailand operations have been finalized.
We’re looking for someone who meets the following profile:
Enjoys coding - You must be very comfortable with writing and explaining code.
Great code hygiene - You are not the only one who will read and work on your code. You must be able to write clean, clear, and maintainable code for the whole team.
Enjoys optimization problems - You will be working on algorithms that you may not have created, and have to find ways to maximize every step of it.
Builds things fast - Time is our most precious resource. You can always throw money at things to make them faster but that’s not very engineer-y.
Builds sustainably - It’s okay to labor over a new thing once or twice, but if we have to do this a third time, we need to think of how to scale it with less effort. Suggest best practices, create frameworks, build reusable code!
Communication skills - You’ll be explaining things during most conversations either internally or externally. Therefore, you need to know how to phrase yourself to be understandable depending on who you’re talking to. Documenting your code is a given, and you also need to write technical documentation in the form of manuals, guidelines, etc.
High initiative - Sometimes, the team won’t know that they need you. You need to be aware of the projects people are working on and support when applicable. You don’t need to know how to use/fix the printer.
This position requires the following minimum technical skills and experience:
2+ years working experience as a software engineer, DevOps, or similar backgrounds
Proficiency on version control tools (preferably Git) and modern terminals
Demonstrated experience using DevOps concepts and tools such as:
Continuous deployment and integration
Docker and Kubernetes, or similar alternatives
Working knowledge of ML modules such as sklearn, torch, keras
Working knowledge of web services and scraping
Bonus points for experience working on Google Cloud Platform, AWS, or similar cloud providers, and can demonstrate reasonable knowledge of its architecture and moving components. Further bonus points if you have already performed ML Ops at a professional capacity.
We offer the following compensation and benefits: