EXERCISE FOR THE INTERVIEW

DESCRIPTION

Below is the assignment for the interview. Please send me the results as soon as possible and present them during the interview.

What we expect

  • Your GitHub page or portfolio
  • Your slides/demo file/link (before 2023-08-19)
  • Your 10-15 min presentation

How to get access to the data

  • Make sure this works.
  • If it works, you can try this with query parameters "from" = "2022-10-01 00:00:00" and "duration" = "1h".
  • Try with different "from" (YYYY-MM-DD HH:MM:SS), "duration" (integer between 0 to 3000 ends with "h", but start with a small number, like "1h"), and battery ID (battery/1/logs, or battery/2/logs). Battery 1 has data from 8 Sept 2022 until 13 Feb 2023. Battery 2 is from 12 Oct 2022 until 5 Jan 2023.

Question 1

When you receive this exercise, send us your personal GitHub page (or your past portfolio if you don't have a GitHub account) to dhany.saputra@micropower.se.

Objective: We want to see your skill based on your GitHub page (or see your past products visually if you have a portfolio instead)—no need to present this during the interview.

Question 2

This endpoint is a simulation of real-time condition monitoring of lead-acid batteries. (More about battery charging fundamental theories: here). The data is sampled every ~2 minutes. Each data point consists of 4 information: state of charge (like the charge % on your phone), voltage, current, and temperature. The data point presents the voltage, current, and temperature as min, max, and average during the sampling period. Thus, in total, we have ten features per data point. Customers want to see the charging curve (voltage, temperature, current, and state of charge) over time. By looking at the charging curve, customers can understand the following.

  • How somebody uses the battery during the discharge cycle, i.e., when the current is negative
  • How many times and at what time somebody charged the battery
  • How somebody charged the battery (fast-charge, normal-charge, maintenance-charge, equalization), etc

Now you understand the difference between "discharging" and "charging" states. There is another state called "idle", where the current is around 0 A, perhaps 0.65 A, or -0.3 A or even -2.3 A. Another state is called "regen", which might look like someone charges the battery within (let's say) less than 30 seconds, but it was just a regen.

Based on what we have explained above, your task is to visualize such big data. Some information above might or might be relevant. The customer has two batteries, "1" and "2". Bonus point if you have a trick to visualize it faster than the API call or if you can suggest how to improve the API performance.

Objective: We want to know your skill in visualizing big data, preferably as a single page web application and/or app. Please mind the acceptable loading duration for the visualization.

Question 3

From the above explanation, you now understand that we can infer the "minutely data" into various valuable information for the customers, such as charge duration, charge time, etc. Even you can help the customer have an alert widget if the battery is too hot suddenly. Design a wireframe for customers. Be creative about what to show on the dashboard.

Objective: We want to know your skill in wireframing. Please use Figma, XD, or even one slide of your paper sketch is also acceptable.

Question 4

Let's say we want to sell an API to customers. Criticize this page and propose a better wireframe if you have a better idea.

Objective: We want to understand your skill in communicating API information to technical customers.

Question 5

Choose one cloud platform you like (AWS, Azure, AlibabaCloud, Google Cloud, etc.). Then, propose a cloud architecture to handle such big data and what to do when the company wants to scale up and scale out due to increased data traffic.

Objective: We want to know your cloud ETL and architecture skills. Prepare 1 or 2 slides.