Fatih Kalifa logo

Fatih Kalifa

Software engineering. Photography. Personal opinions.

Latest Posts

5 years

2 min read

Today marks my 5th year in Traveloka as a software engineer. 5 years ago, I didn't think I will stay this long in one company. Sure, maybe 2 or 3 years working on something, but not half a decade! Millennials are supposed to change jobs often, right?

I didn't even consider working in software engineering until after the last year of college. That's the reason that I have a degree in electrical engineering, not computer science.

Typescript Madness

7 min read

A few weeks ago, I've never heard of or even had any idea about Conditional Type, Generic Constraints, or any advanced usage of typescript. I've used typescript before but it's only a matter of adding type definition for primitive values and simple objects.

The Invisible Framework

8 min read

Over the past few weeks, I've been writing code for the new Traveloka web framework. Even though I was the one writing most of the code, this is a team effort because there's a lot of discussions happen beforehand. We learned a lot from previous framework and tried our best not to repeat the same mistakes.

Deploying Microservices using Now v2

5 min read

When Now v2 was released, I didn't immediately jump ship and refactor my blog to leverage the new infra. Sure, the monorepo integration looks cool and easy, but it requires an entirely different mindset. Even now, there still things that I don't like, but I've grown accustomed to it.

Last April, I finally decided to do the big refactor. 5 months after the official announcement.

Implementing webpack raw-loader as babel-plugin-macros

5 min read

This weekend I was working on my side project to list and display all my future tech talks. This is an overengineered web app built using CRA and Spectacle, with a little bit of React Router (I'll write about it in another post). I want to be able to display talk information in both inside app and in GitHub (where I host the repository), so I decided to put talk title and description in README.md inside talk directory to prevent duplication.

React Router and Flash State

2 min read

In early days of web, I use flash state a lot to send message after redirection. It's easy to do it using server side code, because we can use session & cookie. Now that we use SPA everywhere, navigation happen in client-side using browser history API.

If you're using React Router (v4), you might know they have component to do a redirection. So, how do we implement flash state with React Router?

Easy Authentication in Express using Passport

4 min read

Auth0 was the authentication provider I chose for my blog dashboard. They're simple and easy to set up, but I mainly used them because I haven't had the time to build one myself.

Few months after my blog went live, I begin rewriting authentication logic to the blog API itself. I decided to use password-based authentication because it's the most straightforward, and considering this is for personal use, I don't have to think about email verification and such.