Internet Banking Data Sync





Litwe is a lite mobile web based Facebook and Twitter client application. It's built using vanilla PHP. It used TwitterOAuth to connect with Twitter's API and Facebook API to connect with Facebook. Although initially I just built it primarily for my own personal purpose, I eventually published it on domain litwe.info. And it turned out that there are many other people like me who liked to use it. This web app still run until no one else were using it anymore.

Project Background

I was a bit late in adopting smartphone. I still used feature phone while many other people have had their Android/iOS gadget. So, I didn't have the luxury to use tweetdeck, ubersocial or any other fancy social media aggregation apps which were only available on smartphone. So.... I built one for myself. An app specifically designed and developed for my own use on my feature phone. I wanted an extra lite mobile app which won't hog my data usage but still have a fully complete facebook & twitter features (mention, retweet, comment, DM, etc)

Project Challenge

This was my first time dealing with REST API. I didn't have any prior knowledge about it before. So, I had to really understand the concept of it before I stumble down the Facebook & Twitter API code. It took a while for me to grasp enough understanding of the concept of communication between web applications.
mikalu Mikalu is a bedding online shop. It is my 4th startup. While all of my startup had been closed down, this one prevail. I started it initially as a way to help my sister with her then-bankrupt offline bedding business. She used to sell bed sheet and/or bed cover offline with a store in Cipadu. Sometimes, she also tried to promote it online via Facebook. Her business didn't run very well. She got drown in the competition (her store was located in one of the center of bedding industries in Indonesia). She got too many unpaid debt and no longer had enough capital to run the business. At that time, I was also just closing down my own business, Univind. So, I thought that I could help her by focusing on the online business. Unlike her previous offline business which need quite a lot of capital for production, online business doesn't really need that. With online business we could do a make-to-order business scheme. We make the product only after the customer paid for it. I proposed this idea to her and she agreed to do a joint online business. We named it Mikalu after her first son's name. In this startup my role is specific to all the IT and online marketing stuff, while her role is in production and general business development. I deal with the website development, server maintenance, search engine optimization, social media marketing, etc. The business runs pretty well from there. It has its ups and downs but it just keeps growing until now.
Layanan Startup
privatutor Soon after Univind closed down, I bootstrapped PrivaTutor. PrivaTutor was meant to be an online tutor marketplace. I hired several juniors of mine in college to develop the product. I acted as their project manager to make sure they made a great product. All the work was done remotely from each other's places. We collaborated the code using git/bitbucket. We had offline coordination meeting once a week on campus library. The product done greatly. It reached the minimum viable product (MVP) pretty fast. We deployed it eventually and started beta testing. In this stage of beta testing, I kept promoting it to a specific target market of mine: college student. They're the perfect early adopters for this phase. Many of them are looking for a tutoring job to make some money. Most of them knows pretty well about technology. I expected lots of feedback from them.  This part turned out to be not that easy. I kept fishing for as many feedback as possible while continuing the limited promotion and iterating the software. All those activity were pay rolled from my own pocket. I kept burning money from the selling of NeoHoster to run this new startup of mine. Server costs, development costs, promotional costs were all covered by myself. I did a little calculation that I had enough fund to bootstrap it all by myself until the product reach the critical mass for me to start hunting for investment. My calculation was missed. My fund was running out long before I could brought the product to its critical mass. Privatutor couldn't survive its first year.

Lesson Learned

Just like what I think about the dissolution of Univind, I also never consider PrivaTutor as yet another failure of mine. This was all just a little more step for me toward success. Of course, I took another lesson learned from this experience, something that I didn't get from my experience with Univind. Below are some of those:
  • Don't start a startup alone. Find a fully dedicated complementary co-founder. You would easily feel exhausted without anyone to complement your skill AND your spirit.
  • If you want to bootstrap, make a really-really thorough calculation with your funding. Would you have enough money to keep your business running until you could either monetize it or finding an investor?
  • It's not easy to gather feedback from user. Satisfied user would just use your service happily in silence, Unsatisfied user would just simply leave you. You have to find a way to stimulate user to give their precious feedback for you.
Layanan Startup
neo NeoHoster is a web hosting and domain name provider. It was founded by my college friends, who was also one of Univind's crew. He started it alone on 2008. He grew his customer base from zero to about 100 in a year. That 100 customers started to occupy his energy. He could no longer handle it alone, so he proposed to me to merger Neohoster with Univind. I agreed. That merger coincided with the new office of Univind on 2009. We ran these two business from that small home office. I started to build a business system around NeoHoster. We hired full time dedicated customer service team, implement customer relationship management (CRM) tools, developed a standard operation procedure etc. We also got an investor to expand our web hosting business. We utilized the fund to build better server infrastructure and to optimize the marketing effort. Since the merger until 2 year after that we successfully boast up NeoHoster's customer base from a mere 100 to about 1500.
Layanan Startup
univind Univind, officially named Tunas Univindo Mandiri, was my very first startup. I started it on my freshman year (around 2006) back in college (Universtas Indonesia) along with 5 of my college friends. We're all from the same major back then, computer science. We positioned ourselves as a web design firm although back then, none of us had a clear idea of how to build a website. But we did it anyway, we went straightforward by promoting our new so-called business. We utilized any promotion channel that we had but after 6 month of aggressive promotion, we still hadn't got any project. Only on the edge of our desperation, the moment when we start thinking of giving up, we finally got a project. We pursue a client 800 km away from our home base in Depok. The client was located in Surabaya. All project negotiations were done remotely until we really close the deal. This first project really boosted back our spirit after 6 month of nothing. After that first project, our business life which inter-mingled with our college life, had been one hell of a roller coaster ride. We kept promoting aggressively, pursuing any slightest chance of project while dealing with our own course assignment. Sometimes we got a big project (for a college student standard), some other time we got zero.

Product Development

Knowing the fact that we couldn't rely on projects to survive, we started thinking about building a product. We began to do a lot of brainstorming to determine what kinds of product that we want to builld. We wanted to build something useful, sustainable and profitable in the long term. We came up with one idea: AnakUI.com. It is a campus online community, pretty much just like Mark Zuckerberg started Facebook as a campus online community for Harvard ;). We developed it, nurtured it until the community grows. When we were still in college, we run this business alongside with our college activity, we didn't have office of our own. Our college campus was our office. The college computer labs was our desk. We did the business while dealing with our own course. One couldn't really says that we are a professional company, we're just a bunch of college kid trying to make money. But despite that, I myself consider this phase of Univind as a training ground for a better future version of Univind. This is a phase where we learned to run the next phase of Univind.

The next phase of Univind

After we're all graduate from the college on 2009, we had a meeting to determine the future of Univind. Whether we want to continue this venture or not. Univind surely still unable to pay the roll for the whole 6 fresh graduate crews. 3 of us decided to quit to work on some "real" company. 1 still want to be Univind part time. The rest is just me and my best friend who strong-heartedly still really want to continue and even expand to a more serious, more professional business. Long story short, we decided to continue. We rented a small home near campus as our office. At this time, we started the next journey of Univind. We re-positioned ourselves to be more of an online marketing consultant instead of just web design firm. We realized that many of our old client couldn't really handle very well the website that we built for them. Most of their investment with us gone useless because they don't know how to utilize their newly created website to optimize the promotion of their business.

NeoHoster merging

Soon after we rented an office space, we merged with our friend's business, NeoHoster. You can see more detail about it here: http://kamalabs.com/2015/01/neohoster/

The dissolution

After two years running Univind with our own office, we felt stuck. The projects got monotonous, the product was unable to take off, NeoHoster stopped growing. I myself, to be honest, got bored. I need more challenges. But it seems like the team composition that we had couldn't really handle more challenges. We're all too similar, we're not complementing each other. And at that time, each owner have their own path for Univind. It's getting harder and harder to unite the mission. This is one of the reason why I finally decided to liquidate Univind. I thought it's best for each of us to start our own journey. So, we started the liquidation process. It turned out to be not that easy, especially with NeoHoster. At that time, Neohoster already had about 1500 clients. We couldn't just stop the service for those 1500 clients. We decided to sell Neohoster, it's really not that easy to find a buyer for this company. We offered NeoHoster to many people until we got one person interested. He was also owner of a webhosting company, he interested to acquire NeoHoster. From there, we started the acquisition process. This also took quite a long time considering all the negotiation, the legal aspect, the technical migration aspect etc.

Lesson Learned

To me personally, I never really see Univind as a failure. It's just another step that I took towards success. I got a huge amount of lesson learned from my experience with Univind. Here are some of it:
  • Don't start a startup with too many people. Apparently, 6 similar people is too much.
  • Try to diverge the skill set of each team member. In an IT startup, we need people who understand marketing, accounting etc as well as people who code stuff on the computer.
  • Define a clear mission from the very beginning and incorporate this mission as much as possible to the whole crews.
  • etc
Layanan Startup
TUT WURI HANDAYANIDIKTI is an abbreviation of "Direktorat Pendidikan Tinggi". In English, it means Higher Learning Directorate. It is a subordinate body of the ministry of education, Republic of Indonesia. This government institution deals with any occasion about higher learning education in Indonesia. Prior to my entrance, their website is somewhat mediocre and obsolete. It's slow, lousy, not well-organized and resource hogger. My job was to fix it all.   The first thing that I did was to give several suggestion regarding what kind of modernization needed for DIKTI's website. I, mainly highlighted on the information architecture. DIKTI has distinctive type of visitor to its website, those are:
  1. Student. They visit DIKTI's website mostly to look for scholarship opportunities, either domestic or foreign.
  2. Professor. They visit DIKTI's website to find information about lecturer certification, international conference opportunities etc.
  3. University officials. They visit DIKTI's website to check on new regulations, registering for a new field of study etc.
Old DIKTI's website didn't have easy to navigate information architecture to accommodate those 3 type of visitor. They simply just threw out any so-called "important pages" to the main menu. I fixed it by reformatting the navigational structure of the entire website along with the development of the new design template. Another thing that I emphasized is the performance. It was so slow that the connection dropped most of the time. They had problem with their obsolete CMS, conflicting plugins, and un-optimized server configuration. I dealt with all those issues. I upgraded the CMS, re-arranged all the plugins and optimized the server configuration. Beside rebuilding their main website, I also developed two subsite: the English version of the site and one other site to unify all of their public service under one roof (SatuLayanan Dikti). Those two subsite were built using the same engine: Wordpress. While upgrading their Wordpress installation, I also configured their old Wordpress to have multisite functionality. The English version of the site is using the same template as the main site for uniformity reason. While SatuLayanan Dikti use another metro-style theme design to facilitate easier finding of their public service information by the visitors.
PHP Application to crawl, retrieve, archive and compile several internet banking raw data from different Indonesian local banks. This application was scheduled to routinely get internet banking raw data using cURL. Those raw data would then be parsed using PHP Simple HTML DOM Parser to convert raw HTML data (mostly in the form of traditional HTML table) into a structured data. Finally, these structured data would be saved and archived to the database (using MySQL database) for later use. This application is able to automatically categorize each transaction by examining the sender name and the pattern of the transaction description. This automatic categorization is very useful for me to analyze my own incomes and expenses.

The Challenge

The main challenge with building this kind of application is of course tackling any kind of restriction from the banks. Many banks implement many kinds of restriction on their internet banking system to prevent robot to grabs the data. They might implement sophisticated Captcha, session based URL, HTML obfuscation etc. Also each bank has their own presentation of raw html data. This require me to build a special parser for each one of them.