About the Author
Danny Jiang is a system software engineer and technical lead with over 20 years of experience in embedded systems, firmware development, and performance optimization. Currently serving as a Benchmarking/Application Engineer at SiFive, Danny has built his career working with leading semiconductor and processor companies, including MIPS (under Imagination Technologies, MIPS LLC, and Wave Computing), Broadcom, Western Digital, Andes Technology, and Silicon Integrated Systems (SiS).
Throughout his career, Danny has contributed to the development and deployment of millions of chips across diverse domains—from RISC-V and MIPS processors to SSD controllers, Bluetooth/IoT chipsets, and x86 chipset BIOS. His expertise spans the entire system software stack, from low-level bootloaders and device drivers to ASIC/FPGA validation and system integration.
Professional Expertise
Danny specializes in:
-
Processor Architecture: RISC-V, MIPS, ARM, x86
-
System Software: Bootloaders, firmware, device drivers, RTOS porting
-
Performance Engineering: Benchmarking, profiling, cache optimization, hardware-aware programming
-
Embedded Systems: IoT, SSD, wireless connectivity, real-time systems
-
Validation & Verification: ASIC/FPGA bring-up, silicon validation, system integration
-
Technical Writing: Documentation, training materials, technical books
Connect with Danny:
- Email: djiang.tw@gmail.com
- LinkedIn: linkedin.com/in/danny-jiang-26359644
- GitHub: https://github.com/djiangtw
Other Works:
- See RISC-V Run: Fundamentals
- Data Structures in Practice (this book)
- Various open-source contributions to RISC-V and embedded systems
Acknowledgments
The author would like to thank:
-
Professor Bing-Hong Liu for the inspiring discussions that led to this book. Our conversations about the gap between textbook data structures and real-world performance were the catalyst for this project.
-
The open-source community for creating the tools that made this book possible—perf, Valgrind, GCC, LLVM, and countless others.
-
Performance engineering pioneers including Brendan Gregg, Fedor Pikus, Ulrich Drepper, and Agner Fog, whose work has shaped the field and influenced this book.
-
Colleagues and mentors at SiFive, MIPS, Andes, Broadcom, Western Digital, and SiS for sharing their expertise and providing the real-world experiences that inform the examples in this book.
-
Early reviewers who provided valuable feedback on draft chapters and helped improve both technical accuracy and clarity.
-
Family and friends for their unwavering support and patience during the writing process.
About the Book
“Data Structures in Practice” addresses a critical gap in computer science education: the disconnect between textbook data structures and their real-world performance on modern hardware. This book combines:
- Hardware-aware perspective based on actual cache behavior, memory hierarchy, and performance measurements
- Practical insights from 20+ years of embedded systems and system software development
- Rigorous benchmarking with all performance claims backed by actual measurements
- Real-world case studies from bootloaders, device drivers, and firmware development
The book is organized into 5 parts covering foundations (memory hierarchy, benchmarking), basic data structures (arrays, linked lists, hash tables), trees and hierarchies (BSTs, B-trees, tries, heaps), advanced topics (lock-free structures, strings, graphs, probabilistic structures), and case studies (bootloader, device driver, firmware). Five comprehensive appendices provide benchmark framework reference, hardware reference, tool reference, further reading, and hands-on exercises.
This volume focuses on practical performance—understanding why an O(log n) algorithm can outperform an O(1) algorithm, when to use arrays instead of linked lists, and how to design data structures that work with hardware rather than against it.
The book is licensed under CC BY 4.0, reflecting the author’s commitment to open knowledge sharing and accessible technical education.
December 2025