Boyer-Moore String Search algorithm explained with visual walkthroughs, iterative and recursive Python implementations, and common pitfalls from hands-on practice.
Boyer-Moore Voting Algorithm explained with a simple analogy, JavaScript implementation, and step-by-step walkthroughs for finding the majority element in O(n) time and O(1) space.
How I built a skill to automatically capture learnings from Claude Code sessions and turn them into blog posts - building a second brain one insight at a time.
Reflecting on 2024's achievements while aiming higher—i am humbly sharing my progress, hoping others find a spark of inspiration or glean insights for their own journey.
2024 was a year that tested my limits, brought unexpected milestones, and transformed my perspective. From completing the MIT IDSS programme and thriving in my role at ByteDance to judging beatbox battles and embarking on solo adventures, this year has been a whirlwind of growth, resilience, and unforgettable experiences. Here's a look back at my personal journey.
In this note, I walk through how I reverse a singly linked list using a dummy node in JavaScript. Sharing my thought process and a step-by-step breakdown, this guide is for anyone looking to understand the logic behind linked list reversal with clear, visual examples.
A comprehensive guide to understanding greedy algorithms and how they provide efficient, optimal solutions by making locally optimal choices. Explore key concepts, implementation examples, and applications in real-world problem-solving scenarios.
Read about my experience interviewing for a Site Reliability Engineer role at TikTok. Learn from my mistakes, discover key insights, and get valuable tips for your own job search.
Explore my personal experience interviewing for a Site Reliability Engineer (SRE) role at Google, my first ever job interview. Follow my journey from the initial HR call to the technical interview rounds, including valuable insights, challenges, and key takeaways.
Dive into Dijkstra's Algorithm, a fundamental graph algorithm for finding the shortest paths between nodes with non-negative weights. Learn how it works, its use cases, and how it compares to other shortest path algorithms.
Explore the Floyd-Warshall algorithm for finding shortest paths between all pairs of vertices in a weighted graph. Learn about its applications, benefits, and limitations in handling both positive and negative edge weights.
Explore Floyd's Tortoise and Hare Algorithm for detecting cycles in linked lists and arrays. This efficient algorithm, named after Robert W. Floyd, uses two pointers moving at different speeds to identify cycles with linear time complexity and minimal space usage.
Unlock the secrets of Manacher's Algorithm in this detailed exploration. Learn how this ingenious method enables rapid identification of the longest palindromic substrings, drastically reducing computational complexity and enhancing algorithmic efficiency. Perfect for both budding and seasoned computer scientists.
Embark on my personal odyssey as I navigate the challenging world of coding interviews through LeetCode. Uncover the strategies that propelled me to secure a coveted position at ByteDance, learn from my journey's ups and downs, and gather actionable tips to boost your own performance in coding interviews.
How I stopped forgetting everything I learnt. A practical guide to the Zettelkasten method - the slip-box system that turns scattered notes into a networked second brain. Includes my daily workflow, setup, and real examples from my NUS BIT studies.
A living notebook documenting my journey through the NUS Bachelor of Information Technology programme. How I adapted the Zettelkasten method for coursework, validated spaced repetition with real data, and what I've learnt juggling programming, logic, and calculus. For current and future students.
Explore my personal collection of ebooks and resources on topics ranging from technology and coding to self-development. This list evolves as I discover new reads and valuable insights.
Explore the captured moments from the new MINI launch event. Photos taken by the Mini photography team, featuring highlights of the launch and behind-the-scenes glimpses.
Join ENKR (Jing Hui PANG) as he shares his experience at the new MINI Cooper launch event, reflecting on personal growth, teamwork, and valuable lessons learnt from industry experts.
In 2024, I am aiming to grow both professionally and personally. From pursuing a Computer Science degree and levelling up at ByteDance to rekindling old hobbies like beatboxing and investing in financial growth. Here's my plan.
Discover beatbox journey of Jing Hui PANG (ENKR) from solitude to stage performance. Learn about the personal growth, technical skills, and inspiring moments that defined this musical transformation. Share your own musical journey and join the discussion!
Embark on a journey through the Python programming language, exploring its fundamental concepts, advanced features, and practical applications. This comprehensive guide is designed for both beginners and experienced developers looking to deepen their understanding of Python and enhance their coding skills. Discover the versatility and power of one of the most popular programming languages in the world today.
Searching for a room to rent in Singapore for two siblings by July 2024. Budget around 1,100 SGD per month. Full-time employees and permanent residents. Contact via WhatsApp for more details. / 寻找 2024 年 7 月前在新加坡的租房,适合两兄妹居住。预算约为每月 1,100 新币。我们是全职员工和永久居民。请通过 WhatsApp 联系获取更多信息。
Follow my hands-on Go learning journey through LeetCode solutions and real-world comparisons with JavaScript. Discover how Go's concurrency and memory efficiency solve problems where JS hits limits.
I asked two AI models, 'What should my resolutions be for the new year? Be brutally honest.' Their responses were eye-opening. This post explores the candid insights and how I'm putting them into action.
After a deep conversation with Malaysian beatbox legend Artsy, I am reflecting on why beatboxing has been such a big part of my life. This is my journey to rediscovering the roots of my passion and reconnecting with what made me love beatboxing in the first place.
Learn how to build a robust and interactive loading progress bar that tracks images, API calls, and other assets to deliver a seamless user experience.
Learn how to configure a subdomain on GitHub Pages, troubleshoot CNAME issues, and ensure smooth deployment with Hexo. This guide simplifies the process to get your site up and running with a custom domain.
An in-depth guide to solving LeetCode 139 with Dynamic Programming. Understand the problem, approach, and implementation step by step with detailed explanations and examples.
An in-depth guide to solving LeetCode 97 with 2D Dynamic Programming. Understand the key concepts, step-by-step implementation, and analogies to master the problem.
Learn how to solve LeetCode 189 using an efficient in-place array manipulation approach. This solution explores array rotation with optimal time complexity using the reverse method.
Delve into the core concepts, practical implementations, and advanced techniques of essential data structures. This notebook covers topics like Union-Find, path compression, union by rank, and more, providing developers with the knowledge to tackle complex algorithmic challenges. Ideal for those looking to deepen their understanding of data structures and their applications in solving diverse problems.
A detailed guide to solving LeetCode 1642 using a min-heap for optimal resource management. Learn how to reach the furthest building with given bricks and ladders.
A detailed guide on how to configure a custom domain from Dynadot with GitHub Pages. Learn how to manage DNS settings and integrate your domain with Hexo for seamless website hosting.
My notes on solving LeetCode Problem 210: Course Schedule II using Topological Sort. This guide includes the problem statement, approach, and code implementation.
A comprehensive solution and detailed explanation for solving LeetCode Problem 193: Valid Phone Numbers. This guide includes the problem statement, approach, and code implementation.
A comprehensive solution and detailed explanation for solving LeetCode Problem 194: Transpose File. This guide includes the problem statement, approach, and code implementation.
A comprehensive solution and detailed explanation for solving LeetCode Problem 192: Word Frequency. This guide includes the problem statement, approach, and code implementation.
Discover the Euclidean Algorithm, an efficient method for finding the greatest common divisor (GCD) of two numbers. This guide includes a step-by-step explanation and Java implementation, perfect for software engineers and algorithm enthusiasts.
A personal collection of SQL notes, including basic commands, useful tips, and best practices for working with databases. This notebook covers practical examples and insights from using MySQL and PostgreSQL, aimed at helping you keep track of essential SQL concepts and techniques.
Explore a personal collection of Vim commands and tricks that I've found useful in enhancing my text editing efficiency. Whether you're a DevOps engineer, a frontend developer, or a backend coder, these notes will guide you through mastering Vim.
Explore my portfolio of cutting-edge software and technology projects. From mobile apps to web platforms, discover how I solve real-world challenges with innovative and effective solutions.
Join me as I explore Big-O Notation through my personal notes. This blog is a space where I document my understanding of algorithm efficiency, offering insights into how I approach time and space optimisation in coding.
Dive into the intricacies of computer networking with this detailed notebook. From basic concepts to advanced networking techniques, this post offers a thorough exploration of network design, protocols, and security measures. Ideal for students and professionals alike, learn how to effectively manage and optimize network infrastructure for better performance and reliability.
A personal exploration of Stephen Covey's The 7 Habits of Highly Effective People, delving into practical insights, reflections, and the ways these principles shape both personal growth and professional development. Discover key takeaways from each habit and learn how to apply Covey's strategies to cultivate a balanced, effective life.
Join me as I delve into the intricacies of using Hexo for blogging. This post covers everything from the initial setup to customizing themes and optimizing performance. Whether you're a blogger looking to switch to a static site generator or a developer interested in Hexo's capabilities, find detailed insights and practical tips that can help you build a faster, more secure website.
Dive into the vibrant world of Hexo-powered blogs as we spotlight some of the most stellar and inspiring examples out there. This post showcases a variety of Hexo blogs, highlighting their unique designs, innovative features, and the creative minds behind them. Whether you're looking for inspiration for your own blog or simply want to explore what's possible with Hexo, these outstanding blogs are a testament to the flexibility and power of this static site generator.
Unlock the potential of SCSS and CSS with this essential guide filled with tips and tricks to streamline your web design process. Learn how to harness the power of these styling languages to create responsive, visually appealing, and efficient websites. Whether you're a beginner or a seasoned front-end developer, discover innovative techniques and best practices that can elevate your web development skills.
Welcome to My Bash Notebook! Discover essential Bash tips and tricks in this comprehensive guide. Whether you're starting or looking to deepen your command line skills, find advanced techniques and easy-to-follow insights to boost your Bash efficiency.
Explore the powerful mottos and sayings that have shaped my outlook and driven my decisions throughout life. This collection of inspirational mottos is not just phrases to read but lessons to live by, each with a story and a profound impact on personal development. Join me as we delve into these empowering words, and maybe find a motto that resonates with your journey.
Delve into the world of JavaScript with this extensive guide designed for programmers at all levels. From basic syntax to advanced functionalities, this post explores the core concepts and latest features of JavaScript, providing practical examples and expert tips to enhance your coding skills. Whether you're a beginner looking to understand the basics or an experienced developer aiming to refine your JavaScript techniques, find valuable insights and resources here.
Unpack the complexities of unstructured data using unsupervised learning methods like clustering and dimensionality reduction to reveal hidden patterns and insights.
Dive deep into the statistical methods that power data science with a focus on inferential statistics. This post explores core concepts, distribution types, and the application of statistics in making informed decisions based on data.
Step into the realm of Data Science and AI with this introductory guide, designed for those new to the field. Covering fundamental concepts, practical applications, and insights into the future of technology, this post aims to demystify the complexities of AI and data science, making it accessible to aspiring technologists and curious minds alike.
Join me as I dive into the fascinating world of Machine Learning and AI through courses offered by MIT IDSS and Great Learning. This post details my initial experiences, the challenges I've faced, and the milestones I've achieved in understanding the complex yet intriguing domains of AI and ML. Discover the tools, resources, and insights that are shaping my journey towards becoming proficient in these cutting-edge technologies.
Explore the world of Elixir, the dynamic, functional language designed for building scalable and maintainable applications. This post delves into the core features of Elixir, including its concurrency model, fault tolerance, and functional programming paradigms. Whether you're a beginner eager to learn Elixir or an experienced developer looking to expand your toolkit, find comprehensive insights and practical examples to harness the full potential of this powerful language.
Join me on a 24-hour deep dive into Harvard's CS50 course, taught by the charismatic David Malan. This post captures the intense and enlightening experience of completing this renowned introductory computer science course in just one day. Discover key takeaways, challenging concepts, and valuable resources that can help anyone looking to start or enhance their journey in computer science.
Embark on my personal journey as I build a blog from the ground up using Hexo, the popular static site generator. This post details the step-by-step process, from choosing Hexo and setting it up to designing a unique theme and optimizing the blog for search engines. Discover the challenges I faced, the solutions I crafted, and the satisfaction of building a fully functional blog tailored to my needs.
Explore the life and leadership philosophy of Lim Hock Chee, the CEO of Sheng Siong, one of Singapore's leading supermarket chains. This post delves into the business strategies, cultural insights, and personal principles that have shaped his journey and the success of Sheng Siong. Discover actionable lessons in entrepreneurship, leadership, and personal development that can inspire and guide your own career and life choices.
Dive into the core differences between declarative and imperative programming styles in this comprehensive guide. Understand the unique benefits and challenges of each approach to enhance your coding techniques and optimize your software development process. Whether you're a novice coder or an experienced developer, this article will provide valuable insights into choosing the right programming style for your projects.
Uncover the fascinating concept of Dunbar's Number and its implications on our social interactions and networks. This post dives into the psychological and anthropological research behind why we can maintain only a limited number of stable social relationships, typically around 150. Learn how this theory applies to personal connections, social media, and professional networks, offering insights into managing our social lives more effectively.