Rust
Testing With Fixtures in RustNo more awkward test cases. Here's one fixture-based testing framework that cleaned up my Rust unit tests.
I enjoy writing about TypeScript, Rust, and web technology. Especially the subtle things that unblock engineers' daily work and inspire to strive for engineering excellence. Some of my articles are featured in publications such as Better Programming and Hacker Noon.
Jun 23, 2023
Rust
Testing With Fixtures in RustNo more awkward test cases. Here's one fixture-based testing framework that cleaned up my Rust unit tests.
May 29, 2023
Rust
Share Rust Types With TypeScript for WebAssembly in 30 SecondsDiscover the most seamless developer experience with Rust and WebAssembly. This is the fastest way to auto-generate TypeScript definitions from your Rust code.
Apr 27, 2023
Cloud
The Last Dockerfile You Need for NestJSThe ultimate NestJS Dockfile for optimized production image and local development.
Apr 14, 2023
Cloud
Optimize Google Cloud BigQuery and Control CostI unknowingly blew $3,000 in 6 hours on one query in Google Cloud BigQuery. Here's why and 3 easy steps to optimize the cost.
Mar 23, 2023
Leadership
How to Run A Tech Community in Your Company: An Ex-Principal Engineer’s Guide5 easy steps to create a sustainable tech community in your company that everyone loves.
Mar 10, 2023
Rust
WASM Semantic Search in RustIntroducing Voy, a portable WebAssembly semantic search engine with vector similarity search in Rust.
Feb 2, 2023
Cloud
Lean Docker Images for Next.JSUsing multi-stage builds to optimize production Docker image for faster deployment.
Jan 26, 2023
Frontend
Is Qwik Faster than React Server Component?A benchmark comparison and analysis between Qwik and Next.js 13.
Dec 6, 2022
Leadership
Tired of Slow Code Reviews? Read thisAn ex-tech lead's guide to create a healthy code review culture that helps you ship your code faster.
Nov 30, 2022
Cloud
Deploying Like Vercel and Netlify with Cloud Run: Live, Preview, and Modern WorkflowThe modern workflow that unlocks your team's potential to ship faster.
Nov 17, 2022
Rust
Easiest Way to Understand Rust Modules Across Multiple FilesWith a real-world example
Sep 12, 2022
Leadership
Ex-Principal Engineer's Guide to Design Thinking and Continuous DeliveryHow do the big tech companies and unicorn startups succeed in agile product development while maintaining code quality.
Aug 23, 2022
Frontend
Building A Custom Google Maps Marker React Component Like Airbnb in Next.jsWe will be building a proof of concept to create customer Google Maps markers using any React component in a Next.js project.
Aug 2, 2022
Frontend
Event Bus for ReactEvent Bus is an interesting design pattern to build a lightweight event system. We will discover its use cases in React and build a type-safe Event Bus from scratch with TypeScript.
June 22, 2022
Frontend
React Explained for Product ManagersPublished on Department of ProductEverything you need to know about the component-oriented library.
May 30, 2022
Frontend
Stress Testing Concurrent Features in React 18: A Case Study of startTransition & 3D RenderingReact 18 released the highly anticipated concurrent features. In this article, we are diving into a 3D visualization and discuss how to optimize its performance step by step with React 18's concurrent rendering.
March 30, 2022
Rust
I Built A Snappy Static Full-text Search with WebAssembly, Rust, Next.js, and Xor FiltersAfter migrating to Contentlayer, I started exploring how to use the content data to roll out a search feature for my portfolio. Inspired by some of the amazing open-source projects, I built my own full-text search engine in Rust and WebAssembly. It is fast, lightweight, and tons of fun to build!
March 7, 2022
Leadership
How to Plan A Project as A Principal Software Engineer: A Human-centered ApproachOperating as a principal software engineer is all about bringing engineering, business, and people close together. There are many things to consider in terms of time budget, resources, and even your own involvement when it comes to planning. I want to share with you how I think about the important questions to ask in the planning phase of the project.
February 4, 2022
Frontend
Building Better Next.js Static Sites with MDX and ContentlayerRecently I have been researching on reducing the effort to create a new article on my static website. I analyzed more and found out the friction was in my MDX usage with Next.js. After shifting to Contentlayer, publishing content becomes so effortless. I will show you how.
January 20, 2022
Leadership
From Frontend Developer to Principal Software EngineerI recently joined a European public company as a Lead Software Engineer. The role has a combined responsibility of Principal Software Engineer and Senior Engineering Manager. It is challenging but I was prepared. I want to share with you 50+ books and resources that help me in my journey.
January 13, 2022
Rust
Binary Tree Insertion in RustI was struggling with Rust's ownership when implementing a Binary Tree so I re-read about it. After taking my time understanding it and refactoring, I finally made a breakthrough😎 I'm very excited to share with you the awesome features in Rust I came across. You'll see interesting concepts like smart pointers and ownership.
December 28, 2021
Rust
Indexing Strings in Rust and TypeScript: A Case Study of StringText is essential in programming languages. String is the Rust's and JavaScript's definition to process text in written languages around the world. Through the simple concept of string indexing, we'll discuss how Rust and JavaScript process strings and how they handle the nuances in strings such as grapheme, or even emojis.
December 6, 2021
TypeScript
Writing Your Own TypeScript CLIWriting CLIs feels like a super power💯 You can write one too! I'll show you how to develop a CLI with TypeScript step by step and demonstrate how you can apply your CLI in CD/CI pipelines. We're going to uncover the power of Google Lighthouse and many more amazing npm packages!
February 9, 2021
Frontend
Rethinking the Next-gen Analytics Web App at trivagoPublished on trivago tech blogHow trivago Frontend Engineering revamped the company's Business Intelligence web application. After almost a decade, we decided to rebuild our in-house Business Intelligence web application to better support the organization. We successfully completed the project because we fundamentally challenged and re-thought all aspects of the project.
October 6, 2020
Performance
Using WebP for Better User ExperienceWebP is a modern image format that provides outstanding image quality with smaller image size. I'll show you how much you can benefit from it and how to setup your project for optimal developer experience.
March 18, 2020
Leadership
3 Principles to Triumph Your Software ProjectPublished on MediumPractical experience that shapes billion dollar enterprise. I have been very fortunate to take a part in important topics at trivago. We have brought groundbreaking changes in accommodation search. It was clear that our data-informed approach is the foundation to innovation. I want to share with you our learnings.
November 6, 2019
Frontend
Writing Better Marble Tests for Redux Observable and TypeScriptPublished on ITNEXTMarble testing is a brilliant way to test observables. It focuses on the behaviors of observables over time. The combination of test assertion and marble diagram let us visualize the progression of emitted values over time.
October 15, 2018
Leadership
JavaScript Workshop with Kyle SimpsonPublished on trivago tech blogA recap of the 5-day JavaScript journey. It has been a couple of months since Kyle, author of the “You Don’t Know JS” series, visited our trivago headquarters and gave us a wonderful JavaScript workshop. It was such an enjoyable week, being able to meet Kyle in person and walk through his thinking behind the materials.
September 25, 2018
JavaScript
Intuitive Transducer in JavaScriptPublished on MediumWhat is transducing? Simply put, it’s a data transformation process without creating intermediate products. It’s like a pipeline. It’s your data on one end, and the pipeline transforms the data and produce your output on the other end.