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/
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.
Social media login system
Browse and search games
Save state of the game
Game developer dashboard which contains statistic of their sales and submitted games
Add New Calculation View
Calculation List View
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.
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
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.
Below you can see some screenshot of the system that we built. The screenshot was taken from development server with dummy data.
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.
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.
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.
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)
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 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.
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.
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.
This is a simple arabic keyboard built using AngularJS. This keyboard is meant to be used on desktop only.
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)