CoinBakers is an automated crypto trading bot.
CoinBakers reflects my willingness to learn new tech, stay updated, and execute a vision into a product, based on a need for myself to have my crypto investments being passively managed.
My learnings are mainly related towards how to handle and educate customers properly about the mental hardships that comes with trading and money management.
CoinBakers is a solo-founded project built on Node.js, Vue.js, Nuxt.js (similar to Next.js for React) and Postgres.
The front end is written in Nuxt.js (web) for SEO purposes and Vue.js (dashoard) using Vuex, Bootstrap 4, SASS, JWT, Axios, Font-Awesome (with three shaking), and Jest for testing.
The API is written in Node.js using an MVC structure. I use Koa.js as web framework with type checking by Joi. For testing Jest and Knex as the SQL layer.
The strategy, data fetchers, order executors are based on an open source project. I've tailored this to my needs and separated each concern into a microservice, to make it scalable, and increase reliability.
Sensitive data like API keys from exchanges are stored as environment variables on each client instance, and not in the database. In the unlikely event of a database breach, we leak limited privacy sensitive data.
The admin dashboard gives me an overall state of market and see if all services are running properly.
Everything is hosted on Heroku. I use Heroku Pipelines for staging.
It requires very little attention from me due to the micro-service architecture, and the nature of the trading strategy that is designed to run on autopilot. I have implemented some automated self-recovery systems to improve this further. I love automation. A good developer is a lazy developer 🤓Vue.js Vuex Nuxt.js Node.js Postgres Redis Heroku Websockets Binance API CoinBase API Twilio API Twitter API Reddit API Stripe API CoinBase Commerce API Raspberry PI Standard Library GitLab
JpopAsia is one of the largest websites for foreign Japanese music enthousiasts.
JpopAsia reflects my skills to launch a successful consumer focused, high-trafficked, community driven product, and create a team of volunteers to help manage all the user submitted content. I'm not involved in day to day ops anymore.
My learnings are to handle complete site overhauls and community management differently.
I solo founded JpopAsia. JpopAsia offers news, lyrics, music videos, and weekly charts for Japanese Pop (J-Pop), J-Rock, and K-Pop and serves over half a million visitors each month.
The database exists of over 412K lyrics. It is run by moderators in Wikipedia style, where anyone can contribute content. Everything is written in a custom MVC framework what we used for LeadSocial.
I did 3 major overhauls in JpopAsia's existence and have gained valuable experience in what to do and what not to do during overhauls and rebrandings.
With breaking news JpopAsia would sometimes see immense surges in traffic. Also because of the data-rich nature, the speed of SQL-queries became a bottleneck. I solved this in several ways, but basically learning how to improve MySQL performance on the query and schema level. For example putting TEXT columns at the end, smarter JOINS, using more INT's columns, better use of indices, using fixed length CHAR's in cases instead of VARCHAR etc.
Furthermore I improved performance using CDN's to serve images, lazy loading, caching database queries, Gzipping, and aggressive long-lived caching in the .htaccess file.
There's a section where users can add and modify album content. I used drag and drop to sort album tracks, save on blur, and adding tracks on the fly, to make album management as easy as possible.
Next to the videos I have different types of lyrics. Japanese, romaji (a system of writing Japanese using the letters of the Latin alphabet), and translated lyrics. A lot of people use JpopAsia in learning Japanese because we have translations. Anyway, I'm proud in how I solved this all this data-rich information with the limited space I have. Check out this video as an example.
Fun fact: people can have their own JpopAsia user profile where they can meet other members. I've received a story from a member - meeting another member, and eventually they ending up marrying eachother. Mission accomplished! 🥰PHP MySQL jQuery Memcached Community Consumer
LeadSocial was a B2B Facebook analytics reporting service.
LeadSocial reflects my skills to co-found a B2B focused, data driven, product loved by its customers.
Turning data into actionable KPI's for businesses and executives and working with high-profile pages like Samsung, Unilever, and McDonalds.
It also reflects my failure in growing the business and finding a sustainable business model.
I co-founded LeadSocial with a friend of mine. LeadSocial helped mainly social media agencies in providing in-depth analysis of their perfomance on Facebook posts. We analyzed Fortune 500 companies. LeadSocial has been louded by many customers for its design, value, and metrics. Some tweets:
Hele interessante nieuwe website om je ROI te gaan monitoren. http://t.co/kXS3eXfuHP— Diederik Broekhuizen (@d_broekhuizen) September 30, 2013
"Very interesting new website to monitor ROI" Diederik is the founder of @thebestsocialNL the biggest social media awards initiative in the Netherlands.
"What does that LeadSocial have that many numbers about your post on your Facebook Page. Especially the most bottom graph is nice." Danny was a data scientist at @Marketingfacts, one of the largest Marketing blogs in the Netherlands.
Our main products was monthly reports and yearbooks. Both available as white label. The customer dashboard was simple and gave access to historical reports. Customers were able to create custom reports in the dashboard.
I worked on the front-end, parts of the back-end, the reports, and data analysis. Check the PDF examples below. I worked together with my co-founder on the backend and occasionally pair programmed.
Below are some examples of my Product execution.
An 18-page monthly report was automatically created and sent to our customers each month. It included how the Facebook page performed compared to last month and their custom set goals. The report included KPI's for specific stakeholders/departments.
The data and results in the reports was done by going through all posts, comments (for sentiment analysis), likes, shares, and Facebook insights data through their API.Download Example Monthly PDF Report (1.3MB)
Yearbooks were really awesome because they were ready for print. You could order a yearbook anywhere in the world and have it shipped to you from local print shops. It showed a summary of your efforts and best posts from the selected year. Another chapter went more in depth on data to share recommendations for your content, based on analysis of historical performance.Download Example Yearbook PDF (18MB)
The weekly competition reports provided an overview in how many posts and engagement your competitors were generating. The matrix chart showed their position based on page like growth vs share of likes.
LeadSocial was developed in PHP with some services using Node.js and Gearman. We used an in-house developed MVC framework, and MySQL and MongoDB as our database. I was responsible for architecting the MySQL database while my co-founder was focusing on MongoDB.
We are both full-stack engineers but I mainly focused on the business side, front-end, and products (monthly, yearly, and competition reports).PHP MySQL jQuery MongoDB DigitalOcean Amazon S3 Gearman Memcached Facebook API Stripe API B2B GitHub
CoreSocial was a B2B Enterprise Social Media Management tool.
CoreSocial reflects my skills to co-found a B2B enterprise application and bring life to a product that solved the problems that our customers faced when using hundreds of distributed social media pages.
CoreSocial was rebranded from SocialCounter. This service focused on monitoring, planning, and sharing social media content to Facebook and Twitter. We ran this company along LeadSocial. Insights data from LeadSocial was used in CoreSocial, if customers used both services.
We served household names and the biggest franchises in Netherlands and Belgium. Each frachise had their own local Facebook page. The tool managed access and permissions for hundreds of local facebook and twitter pages for local franchises. This was done using fine grained user permission models.
I lead development of the core products in both front-end and the back-end. I also worked on the user permission models and onboarding flow.
The core products included composer, monitoring, and analytics section.
In the composer I implemented live previews that adapted to how your message would look like on Facebook and Twitter. You could schedule message to be published later. Later on I implemented real-time suggestions based on LeadSocial reports data as the user was typing their message. For example, the best times to share the messages, or to omit or add certain words.
The monitoring section allowed the user to reply directly from the feed. The feed was a combined data feed from different Facebook and Twitter pages. With highlighted keyword triggers for further analysis or escalation to certain persons/teams.
The analytics section turned Facebook insights data into more human readable reports.
Fine grained user permission models.
CoreSocial was discontinued after our decision to move on after LeadSocial. CoreSocial had a grace period of 1 year before shutting down due to contracts.PHP MySQL jQuery MongoDB Bare Metal Servers Multi-language Gearman Memcached Facebook API Twitter API B2B Enterprise GitHub
WeAppCare was a B2B Enterprise AI based chat for customer service.
WeAppCare reflects my skills to turn an idea into a production ready solution. Learning new tech as necessary to realize this product.
It also reflects my poor go-to-market strategy decision making process.
Based on the problem for managing massive incoming volume of chats effectively from Facebook Messenger or WeChat, WeAppCare was created to route popular chats platforms based on AI to manage volume effectively and direct conversations to the right department.
Using IBM Watson AI we could suggest replies based on a confidence score. With auto post enabled, it would reply automatically on high confidence replies. Besides support for Facebook Messenger, Telegram, and WeChat, customers could contact and reply via SMS too.
WeAppCare was production ready and a project for me to learn Vue.js and using real-time data. However due to limited time while running LeadSocial, we decided not to continue as this would be a very sales-heavy product.Vue.js Vuex Firebase i18n Multi-language IBM Watson AI Facebook API Twilio API Digital Ocean Micro-services