KamaLabs

CSS

PrivaTutor

Demola Project – Fingrid Electricity Market Visualization

Jquery CSS Gradient Generator

Dekbed Expert

Enjoy Jakarta

Litwe

Mikalu

GameMart

Loueva

Social Media Analytics Tool

Demola is an international organization that facilitates co-creation projects between university students and companies, either locally or internationally. This is the project brief from Demola's website: Visualising the Future Electricity Market. In this project, we were tasked to formulate an idea along with its concrete example i.e prototype to reach the goal. The goal in this project is to make sure people could understand the electricity market in an easy way. We were team of 5. 3 of us were developer and theo other two were from social sciences which had been working previously in the energy sector. The first few weeks was all about idea formulation. We map the main problem that need to be solved. Analyze to root cause of those problems. We define the main value proposition that we want to offer. Until we came up with several ideas such as:
  • Integrated marketing campaign which includes: social media campaign, microsite campaign, youtube campaign etc.
  • Simcity-like game but in this case, instead of managaing cities, the player would manage an electricity grid company like Fingrid.
  • Mobile apps to track electricity usage.
  • Electricity marketplace which will connect electricity buyer and electricity provider.
  • Open, personalized and extensible electricity market visualization dashboard.
With several considerations, we finally decided to build the last idea. We Developed the dashboard using NodeJS and D3.js. I setup the framework for the technical team so that they could code it faster. I prepared the build process. I split the job of creating visualizations to the three of us, including myself. We also did intensive testing on their newly developed RESTful API and found several critical bugs to which they finally made some big adjustment to their API configuration. Basic demo: http://kamalabs.com/fingrid/

Challenges

This was my first experience working with a big international corporate client professionally. There were a lot of communication challenge on this part. We have to make sure that we could really understand what Fingrid wants. Initially the scope of the porject wasn't very clear. And it was intentionally designed that way by Demola. They expected us to dig the problems by ourselves and formulate the solution for that. Fingrid of course already something in mind but they want to see what kinds of problems that we find and solutions that we offer to them. Fortunatelye, with good communication through Slack and various other channels, we could come up on the same ground.
This was a project on web software development course at Aalto University. In this project, we were tasked to build a JavaScript games marketplace. It also needs to be a platform where each submitted games could communicate with the platform. I lead a team of three to became one of the best team in the class. Our tech stack was Python, Django, PostgreSQL, Bootstrap, Vagrant and Heroku. The features that we developed are:
  • Social media login system
  • Browse and search games
  • Play games
  • Submit games
  • Record highscore
  • Save state of the game
  • Game developer dashboard which contains statistic of their sales and submitted games
  • Simple payment service integration
  • RESTful API
Demo: http://gamemart.herokuapp.com/
This was a school project on Business Development Lab course in KTH, Stockholm. In this course, we were given task to build a real startup with a real product, real customers and solid business model. We had about 6 months to start everything from group forming, ideation, prototyping to product launching. So, the product idea that my team decided to work on was a social media analytics tool. The brand name  that we chose for this tool was LettuceMine, it was a pun of "Let-Us-Mine the social media data for you". With this tool, customer can track social media conversation about a keyword which they are interested in. They can see all sort of data analysis from those conversations. They can how many people are talking about a particular topic at any given time. They can see the sentiment analysis towards a topic. They can see the traction velocity of a topic to see beforehand if a topic will become a trend or not.
Loueva is a body care product to help minimize the effect of cellulite. It was a new product of PT Ratu Farmaka Prima. The company asked me to create a nice looking web page for this product as a powerful tool to spread the information about this new brand product. I helped them craft the information architecture of the web, design the site and code it altogether.

Project Challenge

Although it's actually quite a simple project (considering the specs), the project didn't run really well. The project didn't meet the quick deadline that I set. Normally, I could finish this kinds of website in a day or two. But it turns out to take about two months to finish it. Mostly because of I have to wait for the content to be available from the producer. loueva_screenshot
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
Spectral Jquery Gradient Generator This is a jquery plugin which are able to generate CSS gradient lengthy script. This tool was meant to be used by theme designer who want to incorporate customizable CSS gradient within their theme. It's built using jQuery UI and jQuery Colorpicker. Github page: https://github.com/emkamal/Spectral-Jquery-Gradient-Generator Demo page: http://kamalabs.com/Spectral-Jquery-Gradient-Generator/
dekbed-scrSoon after I close my own startup, Univind (web design agency), I got a job offering from a similar firm in Netherland: YaviDesign. They have office both in Netherland and in Bogor, Indonesia. They gave an option for me either to move to Bogor and work on their Indonesian office, or to work remotely from home. I chose to work from home. In there I was being tasked to handle several projects with their clients, one of the most prominent client was Dekbed Expert. It was all Magento based online shop. Below are some of my job responsibilities:
  • Design a Magento template to be used by their clients
  • Create proprietary template framework to be used company-wide on future theme design project.
  • Develop some Magento plugin
  • Do a test and some bug fixing to some of their templates / plugins

Project Challenge

All my work here was done remotely. We used SVN as the versioning control and Redmine as collaboration and project management tool. This was my first time doing a fully remote software development project. Initially, there were many mistakes I did here and there with the collaboration tools. But as the time goes by, I was becoming used to the whole remote collaborative project.
enjoy-jakarta-11 The client of this project is DISPARBUD DKI Jakarta. It's an abbreviation of "Dinas Pariwisata dan Kebudayaan DKI Jakarta". In English, it is translated loosely to "Tourism and Cultural Office of Jakarta". It's a local government institution which deals with tourism and cultural issue. My responsibility in this project was to rebuild their website. Their old website was developed using a custom built PHP CMS. Unfortunately, this custom built CMS has too many fault in it. It had too many bugs. It's slow and unsafe. The design was clumsy. The code was a mess. At first we planned to annihilate this old website and rebuilt a new on with better CMS, but then I ended up fixing it instead.

Project Challenge

In the middle of the project, there were a succession of the leadership in Jakarta. We were finalizing an election and just got a new governor in Jakarta: Mr Joko Widodo (Jokowi). Jokowi did some reshuffle to his officials, including officials at the Tourism Office. So, at that time, the PIC of the project moved to another person. This turned out to be a big dilemma for the project. We were halfway through our project and then there was someone new "in town" and she wants everything changed. The institution didn't have a good succession mechanism to make sure that the works which were still running, could still run smoothly. The new official demanded so many new things from us that we ended up being brought back to the beginning of the project. And all of a sudden, we were finally just brought back the old website and fixed what's wrong it instead of continuing to develop the half-finished new website. Of course we're familiar with the fact that fixing someone else's code is harder than writing a new one. But, in this case, where there's already too much miscommunication between us and the recently-changing client, doing whatever the client wants is better than just dumping the whole project. For the sake of our integrity and credibility, we chose the hard way to fix the broken web. Thankfully, we managed to finish the project with client somewhat satisfied (although I wasn't ;) ).

Older posts