Explore With Us
Are you looking to grow your career and make a meaningful impact? Interested to tackle new challenges? We’re looking for people like you!
The Proactive Hiring process is specifically designed for applicants who are seeking job opportunities at a later date. Applying for roles under Proactive Hiring means that you are applying for roles without immediate vacancies. However, we anticipate that we will need to hire for these roles in the next few months.
Here’s what you can expect when applying for a Proactive Hiring role:
At Thinking Machines, we treat all our candidates with great care and fairness while ensuring we stay ahead of the curve to anticipate our clients’ needs.
Working at Thinking Machines
Thinking Machines is a technology consultancy building AI & data platforms to solve high-impact problems for our clients. Our vision is a future where data-driven decision-making is a norm and where AI is used to support humans in making excellent decisions. 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.
Role Description
As a Software Engineer, you will be working with our team to create and maintain web apps that our clients will use to interact with our machine-learning solutions and data pipelines. It will be your job to make sure our users can intuitively make sense of our solutions. This can be in the form of an interactive map with various feature layers, a custom dashboard with features beyond Tableau’s capabilities, a knowledge base that leverages our ML predictions, or a mobile web app that uses the camera to classify different items on a store shelf. No two projects will be completely the same!
You will be involved in designing, creating, and maintaining both frontend and backend components. If you have been focusing on one over the other thus far, we still encourage you to apply but expect that you will need to train to become a full-stack developer to be fully effective in the team.
You must be comfortable working with APIs — expect to build web applications that will consume both internal and external APIs. You will also be responsible for building and maintaining web services that will interface our ML models with apps. At the end of the day, we are committed to giving our clients the best user experience when using our web apps.
Across the board, you are expected to have great code hygiene. Readable, documented code is at the core of our collaborative projects. Even better if you are already routinely testing your code. Finally, it is very important that you are comfortable using version control systems (ideally git).
Role Requirements
At its core, we need engineers who have strong fundamental, language-agnostic skills. You must be able to create web apps as well as design and build APIs. We believe that great engineers do not necessarily perfectly match our tech stack in the beginning, but will be able to pick it up quickly.
We’re Looking For Someone Who
Has 3+ years of relevant experience in web development
Enjoys coding and has great code hygiene: You must be very comfortable with writing and explaining code. In addition, you must be able to write clean, clear, and maintainable code as you are not the only one who will read and work on your code.
Has demonstrated experience working with:
different cloud computing platforms (e.g., AWS, GCP, or Azure)
some or all of our usual tech stack (i.e., Python, Javascipt, React, Django, Flask, FastAPI, Airflow, Dagster)
any SQL/NoSQL databases (e.g., PostgreSQL, Elasticsearch)
git (bonus points if you have experience with trunk-based development!)
Has strong communication skills: You'll be explaining things during most conversations either internally or externally, and with tech and non-tech audience. 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.
Makes 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, and build reusable code.
Has 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.
Benefits And Perks
We offer the following compensation and benefits: