Graduate Developer (4th Year Students are welcome)
- Want to spend the first 5 weeks of your technical career in China or India with peers from around the world?
- How would you use 40,000THB to improve your technical skills each year?
- Want to spend the first 5 weeks of your technical career in China or India with peers from around the world?
Then read on…
ThoughtWorks is a global software consultancy with an aim to create a positive impact on the world through technology. Our community of technologists thinks disruptively to deliver pragmatic solutions for our clients' most complex challenges. We are curious minds who come together as collaborative and inclusive teams to push boundaries, free to be ourselves and make our mark in tech.
Our developers have been contributing code to major organizations and open source projects for over 25 years. They’ve also been writing books, speaking at conferences and helping push software development forward, changing companies and even industries along the way.
As consultants, we work onsite with our clients to ensure we’re evolving their technology and empowering adaptive mindsets to meet their business goals. You could influence the digital strategy of a retail giant, build a bold new mobile application for a bank or redesign platforms using event sourcing and intelligent data pipelines. You will learn how to apply the latest Lean and Agile thinking, create pragmatic solutions to solve mission-critical problems and challenge yourself every day.
Our entry-level consultants jumpstart their careers with a trip to ThoughtWorks University (TWU): a five-week training program in India or China. When you return home, the First Year Experience provides continual on-boarding support to help you settle into ThoughtWorks. And it’s important to call out that we consider tech talent from all walks of life. Whether you’re a Computer Science major with less than 1 year of professional experience, a coding boot camp graduate or a “career changer” who is working toward becoming a software developer, you have the opportunity to join our community.
You’ll spend time on the following:
- You will pair to write clean and iterative code using practices like TDD, SOLID principles, OO design, and pair programming
- You will use continuous delivery practices to improve software delivery speed
- You will work in collaborative, product-focused teams to build innovative customer experiences for a variety of clients
- Learn, digest and subsequently apply the latest technology thinking from our tech radar to solve client problems
- Tackle a variety of challenges for clients of all industries, while collaborating with new teammates from diverse backgrounds
Here’s what we’re looking for:
- You have less than 1 year of professional experience working as a developer
- You understand analysis, design, coding and OO concepts
- You thrive in a collaborative and un-hierarchical environment
- You have a passion for learning and a desire to create meaningful solutions for business problems
- You’re resilient in ambiguous situations and can approach challenges from multiple perspectives
- You're also welcome to apply eventhough you are in the Senior Students, or in the 4th year of your university.
Do you want to accelerate your interview process? Let's solve some problem and submit your solution. it will save a lot of time!
Instruction for Coding Problem: Open-Closed Game
The Open-Closed Game
Rules of the game:
This game is played between two players.
One player will be the predictor.
To play the game, after a count of three, the players will need to simultaneously show their hands with each hand either open or closed, and the predictor need to shout out how many hands they think will be open on total.
If the predictor is correct, they win, otherwise the other player becomes the predictor and they go again. This continues until the game is won.
The challenge:
You need to create a program to play this game against the computer. This can just be a simple console application.
You will always be the predictor first.
The “AI” player will just do things randomly.
For each round, the computer will expect player input in the following format if you are the predictor:
OC2
Or if you are not:
CO
That is, the first two characters will show how you will play your hands, O for open or C for closed. If you are the predictor, you also need to enter a third character which is your prediction for how many open hands in total.
The program should then reveal the “AI” players input and indicate if the game was won, or move to the next round.
Example of what game play could look like:
Welcome to the game!
You are the predictor, what is your input?
OO4
AI: CO
No winner.
AI is the predictor, what is your input?
CC
AI: OO0
No winner.
You are the predictor, what is your input?
CO3
AI: OO
You WIN!!
Do you want to play again?
N
Ok, bye!
Tips:
Remember to validate the input and give the user useful messages if their input is not valid.
Valid input should be either a C or O for the first two character and a number between 0 and 4 for the prediction.
For example, if the user enters “chicken” on their turn, you could display a message such as:
Bad input: correct input should be of the form CC3, where the first two letters indicate [O]pen or [C]losed state for each hand, followed by the prediction (0-4).
If the user enters “CC8” the error could be:
Bad input: prediction should be in the range of 0-4.
Or, if they are not the predictor:
Bad input: no prediction expected, you are not the predictor.
Try and write unit tests for your code, if you can, use TDD (test driven development) when writing the solution.
Think about the design of your objects and cleanliness of your code. Will it be easy for you to make changes to your code to implement some of the extensions? How about for someone else?
The coding problem ends here.
Not quite ready to apply? Or maybe this isn’t the right role for you?
That’s OK, you can stay in touch with AccessThoughtWorks, our learning community (tick 'contact me about recruitment opportunities' to hear about jobs in the future).
#LI-SEA

