Thinking Machines is a technology consultancy building AI & data platforms to solve high-impact problems for our clients. 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 in 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! Likewise, as a company dedicated to our clients, we're seeking a customer-centric problem solver committed to their success.
Proficient in speaking, writing, and comprehending the Thai language.
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. Build things fast to find out how (or how not) to solve a problem.
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!
Strong Communication skills - You'll often translate complex technical concepts to internal stakeholders and external clients of varying technical backgrounds and skill levels. The skill to adapt your communications is key.
Documentation skills - Besides coding, you will be required to document your code, including creating technical documentation in the form of manuals, proposals, guidelines, and other relevant materials.
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 them 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 of working experience as a software engineer, DevOps, or similar backgrounds
Proficiency in version control tools (preferably Git) and modern terminals
Demonstrated experience using DevOps concepts and tools such as:
Continuous deployment and integration
Automated testing
Docker and Kubernetes, or similar alternatives
Working knowledge of ML modules such as sklearn, torch, keras
Working knowledge of web services and scraping
We offer the following compensation and benefits:
Competitive salary — the compensation amount is positively correlated with the difficulty of the job, relevant experience, fit, and skill factors.
Fully remote — due to the global pandemic, we have shifted to a fully remote company for the foreseeable future. With the exception of required in-person days for community building and a managed number of client meetings, we work from where we choose.
Individual professional development budget— an annual budget for conferences, training courses, books, and software is available to sharpen your skills and build new ones to help you grow in your role.
Full health benefits — generous health insurance package upon hiring.
Regular 1:1 meetings with the leadership team to discuss career and personal goals, job progress, and any questions and concerns.