Hi! I'm Daniel Kristiyanto. Trained as a computer scientist, I've spent most of my career in data science. In my case, that often means teaching computers how to spot patterns, make sense of messy information, and give helpful recommendations. The goal is turning rough ideas into software people can actually use day to day. Sometimes they're built for a small team. Other times, it's for millions of users.
Outside the day job, tinkering never really stops. Side projects range from mini-tools and small websites to practical guides, built either to solve a quick (often my own) daily problem, or to help other folks and communities just for the fun of it. Some of these experiments live over on GitHub.
Life so far has spanned three countries. Growing up in Indonesia eventually led to studying and working in the US on two Fulbright scholarships, followed by a career chapter in Singapore. Today, home base is back in the US. Daily conversations happen in Indonesian, Javanese, or English, with Japanese being the latest work in progress.
While solo tinkering is great, the best work usually happens in teams. Spare time often goes toward volunteering in online communities and chipping in on research efforts. If you want to build something fun or just chat about an idea, feel free to reach out!
Links are not in any particular order.
This project presents a practical machine learning approach to managing user engagement, starting with defining engagement metrics to evaluating the solution using experimental design. We built a data pipeline for feature extraction, model training using PySpark and Scikit-Learn, and data visualization with Seaborn is used to assess performance.
A contextual recommender system is then implemented with Alternating Least Squares (ALS) to personalize interactions, and its effectiveness is evaluated through A/B testing. The project focuses on building an ML pipeline to produce actionable insights from a 19-month dataset of financial transactions, from analysis to A/B testing plans.
Using The dataset, sourced from Airbnb rentals in Tokyo, this project explores the application of Natural Language Processing (NLP). This hands on tutorial walks through data preparation, custom lemmatization and various NLP techniques to analyze rental listing descriptions; focusing on keyword extraction and text summarization. Using spaCy and Scikit-Learn, we implement methods such as Named Entity Recognition (NER), TF-IDF, and Google’s T5 LLM model.
This article outlines the process of centralizing Next.js logs in the cloud using Google Cloud Logging and Winston. It covers the necessary steps, practical considerations, and detailed configurations required for seamless integration. By the end, readers will have a robust logging system designed to enhance the reliability and performance of a Next.js application.
We present the BioDepot-workflow-builder (Bwb), a software tool that allows users to create and execute reproducible bioinformatics workflows using a drag-and-drop interface. Graphical widgets represent Docker containers executing a modular task. Widgets are linked graphically to build bioinformatics workflows that can be reproducibly deployed across different local and cloud platforms.
Each widget contains a form-based user interface to facilitate parameter entry, and a console to display intermediate results. Bwb provides tools for rapid customization of widgets, containers and workflows. Saved workflows can be shared using Bwb’s native format or exported as shell scripts.
We introduce GUIdock-VNC, a tool that allows us to run bioinformatics workflows with graphical user interfaces in Docker containers, accessible through a web browser, which enhances reproducibility in research. GUIdock-VNC also supports cloud deployment with OAuth2 for secure access, simplifying the setup process. We tested the tool using gene network inference and observed minimal performance overhead compared to native applications.
GUIdock allows for the facile distribution of a systems biology application along with its graphics environment. Complex graphics based workflows, ubiquitous in systems biology, can now be easily exported and reproduced on many different platforms. GUIdock uses Docker, an open source project that provides a container with only the absolutely necessary software dependencies and configures a common X Windows (X11) graphic interface on Linux, Macintosh and Windows platforms.
As proof of concept, we present a Docker package that contains a Bioconductor application written in R and C++ called networkBMA for gene network inference. Our package also includes Cytoscape, a java-based platform with a graphical user interface for visualizing and analyzing gene networks, and the CyNetworkBMA app, a Cytoscape app that allows the use of networkBMA via the user-friendly Cytoscape interface.
We applied the k-nearest neighbor method for missing data imputation, the hill climbing algorithm and random forest importance for feature selection, and the random forest algorithm for classification. We also empirically studied the performance of many classification algorithms, including support vector machines and neural networks. Additionally, we found using random forest importance for feature selection provided slightly better results than the more computationally expensive method of hill climbing.