KamaLabs

Javascript

Litwe

Demola Project – Fingrid Electricity Market Visualization

Mikalu

PrivaTutor

AngularJS Arabic Keyboard

Adhimix Precast Indonesia

Loueva

GameMart

Social Media Analytics Tool

ABB Web Based IDE

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/
I worked at ABB as a UX Designer and a master thesis worker. Here, I constructed UI/UX for their real time industrial IOT calculation engine. Built with vanilla Javascript. I also built a JS based C# parser/lexer which generate syntax/lexical tree out of the C£ code input to be used in this web based IDE to provide smart autocompletion. As part of the thesis research, I also measure the productivity gains of using a specially constructed UI/UX that I built for the purpose of creating and/or managing the calculations.

Screenshots

2017-05-30 (8) Add New Calculation View Calculation List View Calculation List View

Background

ABB as one of the leading power and automation company is connecting millions of electrical devices and systems to industrial internet of things called ABB AbilityTM. ABB AbilityTM is refining the measured real-time data with calculations to additional soft sensors signals and key performance indicators (KPIs) at the various levels from the system edges to central cloud. The engineering of the calculations requires web based IDE that provides good developer experience for the subject matter experts to be productive in their work. All configurations of the calculation engine are stored on the database engine. Currently, the calculation engine still doesn’t have a frontend view. So the user needs to work directly on the database to operate the calculation engine. This is a tedious work, especially when it comes to writing the calculation script. Thus, it is important to build a user friendly interface to configure the calculation engine. This interface needs to be integrated to ABB existing frontend dashboard system. One of the most important aspect of this UI is to have a versatile code editor. The user will need to write the calculation code directly on the front end web based system. So, it is vital to have an integrated code editor with some level of IDE functionalities embedded on it.

Objective

The objective is to design and implement web based engineering tool to enable end-to-end development of the calculations that includes:
  • Build UI for accessing and choosing the data source. It includes setting up parameters, parameter types, database mapping, dependencies and external libraries.
  • Build UI for defining the calculation. This is where we need to integrate the code editor.
  • Build UI for configuring the execution. It includes task definition, periodical based execution with scheduler, event based execution with triggers, batch jobs, simulations and diagnostics.
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.
PT Adhimix Precast Indonesia is one Indonesia's biggest player in concrete and construction industry. Their parent company, PT Adhi Karya, were first established since 1960 by nationalization of a Dutch company called Associate N.V. At 2002, PT Adhi Karya decided to sell/disintegrate their concrete production unit business because of its poor performance. Thus, PT Adhimix Precast Indonesia were born. It turns out that this disintegration was a great thing for them. Their performance went really well until today. One of the key success factor of their operation is the existence of a good enterprise resource planning (ERP) system. This custom ERP software has really helped them to make their company operation more efficient, which in turn helps to boost performance. But today, this ERP system is starting to get obsolete. It needs many adjustment to fit their newly-designed and more-efficient business processes. And as the company grows over time, it's getting more important for the top management to get a quick insight about company performance. This is why they also need a good decision support system (DSS).

Role and Responsibilities

I work on this project as a system analyst for both the extension of the ERP and also the DSS. My responsibilities include:
  • Communicate intensely with the business analyst to gather the business requirement of the system
  • Transform the business requirement into system design and development plan
  • Coordinate with the programmers to make sure the development went as planned

Project Challenge

Extending an old system has always been a hard thing to do in software engineering. We need to learn the previous system extensively to really get a good understanding of the old system works before we begin to make any extension. This is one of the biggest challenge that we have to face on this project. Another challenge is business process of the company itself. We didn't just make a system out of their own running bussiness process. We aim to reconstruct a better and more efficient business process for the company with our system. This kinds of work needs a tight collaboration between many people from many departments on the company, the business analyst and also the system analyst.

Screenshot

Below you can see some screenshot of the system that we built. The screenshot was taken from development server with dummy data.

ERP

erp login erp login2  investigasi incident listing

DSS

evaluasi safety dashboard fuel ratio
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
arabicangular This is a simple arabic keyboard built using AngularJS. This keyboard is meant to be used on desktop only.

Feature list

  • Transliterate typing (type directly with you latin keyboard and this app will automatically transliterate it to arabic text)
  • Change transliteration scheme. I have made 3 transliteration scheme so far, you could add more of it or create your own transliteration map. Just fork it, copy any transliteration json file and edit it yourself. I'd be glad to merge it here :)
  • Change font family and font size
  • Copy arabic text
  • Translate (direct translation link to google translate)
  • Search (direct search link to google)
  • Image (direct image search link to google images)
  • any more suggestion?

Demo

Live demo in here: http://kamalabs.com/arabic-keyboard

Github

Check out the source code here: https://github.com/emkamal/angular-arabic-keyboard

Older posts