I have to say that I had an amazing experience with data platform for the past 1 and half years. One of the experiences that transformed my mindset and behavior quite significantly as a professional. The experience I got during June 2019 to June 2020 period at Bukalapak.
After joining Bukalapak in June 2019, for the first time I could see how people think, behave, and work in a very competitive e-commerce market. We moved really fast. Amazing! The organisation was structured in a way so that we didn’t have a big team that would slow us down. The team could make ideas, decisions, and soon pushed it live and experimented it in production. …
And so it was official that per June 1st, 2019 I wasn’t part of KMK anymore. I decided to move to Bukalapak to be part of their data engineering team. It was clear for me that the main reason was because it would benefit my career. However, it was still not easy when the time came to actually leave the company. I think it was because I really had some fantastic time in KMK.
If I think about it now, my frustration was a result of not having regular productive discussion, either it was with my peers or with my superiors who already had more knowledge and…
Mainly implicit is needed to cover anything that is not tightly related to business logic. Implicit is used by the compiler when it fails to evaluate a particular piece code due to type mismatch, incomplete arguments, undefined method, etc. There are 4 types of implicit that I learned:
val thisIsInt: Int = 3.5
Above code will throw error, because we tried to assign double value into an integer type variable. To avoid the error, we can do this:
implicit def autoConvertToDouble(x: Double) = x.toInt
val thisIsInt: Int = 3.5 // it will be 3
In case we have this code
val someValue = "3" x "5"
// [for the sake of example] we expect it to return "35", but it will throw an error…
It was around July 2015 when the idea of making the organisation to be a lot more data driven emerged. Our CTO, Mohan Krishnan, decided to create this data team which would responsible of exposing the data for everyone. It didn’t stop there, it was also important for us to educate everyone as well. Engineers, product managers, data analysts, content teams, sales, and marketings.
At that time, I didn’t have much experience on data and, to be honest, there were a lot of my other colleagues who I thought had more skills and experiences to play around with data. But nevertheless, the data team initiative started with me as the first member. …
Today I decided to start my own code kata and hopefully I can be consistent enough to keep it going. To give a little context, code kata is way for programmer to practice their programming skill. Sometimes the same problem is done multiple times and the purpose is to find a better approach to solve the problem. This is also a good way to learn new technology, programming language, or even new methodology. This time I’m going to start slow by solving the Word Count problem and I’m going to write it in python.
Imagine that I have this sentences:
Hello world! Today I’m going to learn new skill and that is programming. …
In your PrestoDB, suppose you have a table named
events and it contains a column which you use to store a json string, let’s call it
properties. One day, you store a json which one of the attributes is actually an array of object. You do this because you think you could query the value of each element so that it will ease your analysis. However, that json data is a string, how can you do that?
Let’s have an example of JSON data that we’d like to query:
Airflow is a workflow management tool built by Airbnb. This open source project has been a very important tool in our organisation. At first, we used that only for our ETL, but now we’ve expanded its usage to almost all scheduled jobs that we have.
The power of this tool are its capability to schedule jobs and make the execution distributable across instances. When we’re talking about schedule, sometimes we have to deal with unexpected problems that affecting the job’s schedule. It’s relatively okay when the job is behind schedule for the unit of minutes, but what if it’s left behind for hours or even days? It’s frustrating. We’re aware that there’s no easy way to deal with this situation, it still requires effort and time. …
At first, I’m quite sceptical about resolutions. I got through years without having resolutions, since I thought it didn’t work for me. Why? It’s because I’m really bad at being a consistent person. To have a 1 year long self goal doesn’t really make sense for me. But not this year, year 2016.
I wanted a change in me, it was to be a better learner. So I decided to have some resolutions. I realised that so many resolutions will leave me with nothing but no results, so I started small with 2 resolutions.
To be honest, I really hated reading books. I knew I had to learn, but I was just so lazy to do that (oh dear, what an idiot). So, I started to read more, either it was book, blog post, newspaper, etc. It was good, I was getting better for a lot of things. Then, I wanted that attitude to present in me at all time, and to have reading target every year sounded a good idea. So, this year I hoped I could read 5 books. …