This is a collection of test projects/assignments to use for interviews. They don’t need to be used as-is (or at all). They should be tweaked as needed and follow up changes added to them as necessary.
Feel free to add to this list by adding to it directly or suggest improvements in the comments.
Judging Criteria
- How well it works.
- Time to implement.
- Quality of the code.
- Attention to details.
- Extras.
Senior #1 – Unity 3D
The requirements are quite straightforward. You are to dynamically compose and render a waving flag in 3D where the mesh is moving in a wave form (like a fabric). The texture on the flag should animate in pulses that animate from the center outwards. The artistic appearance of the texture or flag do not matter.
Finally, you are not allowed to use any 3D models. You are to generate the mesh of the flag yourself in code.
Senior #2 – Unity 3D
Build a Universal Windows 10 App that can post on your FB wall or send game requests to your friends (you pick one of the two to implement).
Standard #1 – Unity 3D
Render a curved cone with animated pulsating texture. The cone should start from the ground, arc up then reach the ground at a distance making an oval intersection with the ground. The pulsating waves move from the tip of the cone towards the base.
To help you imagine this in context, consider that you are firing a ballistic projectile with a gun that has some accuracy error margin. The tip of the cone is the gun, the section on the other side is the area where the projectile is expected to land (not a point, because it is not perfectly accurate). The curve mimics the area where the projectile can be, during its flight, as it goes up and down to the other end.
You are free to construct the cone however you want as long as it looks right.
Standard #2 – Unity 3D
Render a 3D sphere and allow the user to click and drag somewhere. As he drags, render and resize a circular dark section on the sphere starting at the point he originally clicked and ending at the point where the mouse cursor is currently dragging. The circular section needs to be curved with the sphere.
Junior #1 – Unity 3D
Create a dialog tree creation system. Include an example scene that contains a pre-built dialog tree. On playing the example scene, the player should see text and a variable number of clickable response options. On clicking a response option, a new set of text and response options appear.
On reaching the end of any dialog path, there is a single response option to replay the dialog. When selected, the dialog returns to the beginning of the tree and the only response options available are the ones the player selected the first time through.
The dialog tree does not need to be extensive and you may use placeholder text. With this system, a developer should be able to create a branching dialog tree (in Unity or via an external file) without modifying code. Your example scene should be created in this fashion.
Junior #2 – Unity 3D
Create a 3D shape generator program. The user sees a cube in black in the center when the program starts. There are two controls on the screen and a button. The first allows him to change the shape between cube, sphere, and cone. The other allows the user to change the color of the shape. Once he is happy with the shape he pushes the button to “save” it which results in a small copy of that shape getting created and placed somewhere else on the screen in a list (or grid). The user can then continue to customize the main shape and save more instances that go into the same list.
Senior #1 – Azure
Create a simple program that just writes the time to file every 30 seconds.
Write some trivial unit test.
Automate build such that when requested, the project builds, tests the unit tests, and if they pass, deploys the program to an Azure cloud service.
Senior #2 – .NET
Write the AI for a ship that moves randomly, and if it is within range of another enemy ship, it should follow it and fire every 5 seconds as long as it has more health. Otherwise, it should fire but run away from it. If there are multiple ships, just pick one target at random and apply the above logic to it.
Standard #1 – Azure
From a simple program running on a cloud service, log custom logs traces that include text and some parameters to somewhere on the cloud where they can be easily analyzed when problems happen. (Hint: Look into Azure Diagnostics and AppCenter).
Standard #1 – .NET
We have our own Property class that holds properties of different kinds to send to the server. This type gets serialized when sent over the network. We have serialization implemented for all basic types. However, it is broken for lists. A list is a Property instance that contains other Property instances. Your task is to correctly implement this serialization/deserialization using JSON.NET.
Standard #1 – ASP.NET
We have a web API that returns information about in-game consumables. Your task is to take the data from this API and render it into an ASP.NET web page. The data should be shown in tabular form, one row per consumable. There are two things that deserve special attention:
- The Icon property should render the icon at the specified URL.
- The fields that include text in braces are references and need to be resolved by extracting their value from the properties with the same name. For example
“value”: { “resource”: “Credit”, “amount”: 1000 },
… ,
“valueFormat”: “{Value.Amount} {Value.Resource}.”
Means that when we display this field we use the format above (two values separated by a space) and the text to display is amount component of the “Value” property followed by the resource component of the “Value” property in the same JSON blob. The end result would be “1000 Credit” in the table.
This is the API: http://api.wartothecore.com/api/ShopCatalog/ConsumablesItems (Swagger: http://api.wartothecore.com/swagger/#!/ShopCatalog/ApiShopCatalogConsumablesItemsGet)
Junior #1 – Azure
Configure a cloud service on Azure to use two separate storage accounts/tables based on whether it was deployed to staging or production. Ideally, you will do this without changing the code.
Junior #2 – Azure
Configure a cloud service on Azure to deploy different files based on whether it was deployed to staging or production.
Intern #1 – .NET
The user’s Facebook username is sent to the server on authentication. This could be too long, so we need to truncate it to be less than 20 letters. If there are spaces near, and before, the 20 letters-mark, we should truncate there instead.
Recent Comments