Hi, I’m Yifan Hao, a software developer specializing in chemical engineering process simulation software. My background is in chemical engineering, and during graduate school, I wrote thermodynamic models for my research. Like many students and researchers, I focused on getting code to “work” – without much regard for best practices like comments, documentation, or maintainability. Copying and modifying code was the norm.

After graduating, I transitioned into software development, despite never having formally studied computer science. I quickly learned multiple programming languages and felt confident in my ability to use their features effectively. Early in my career, I had the opportunity to work on a greenfield project, and I enjoyed the thrill of writing a lot of code every day. However, as the project grew in complexity, I found myself trapped by my own design. The system became rigid—modifying one component often required changes in multiple other places. That experience led me to appreciate the importance of software development principles: clean code, design patterns, and maintainability.

The more I learn, the more I realize how much I still don’t know. One of the best ways to deepen understanding is by teaching, which is why I started this blog. I will begin with the project code I developed for the Advanced Thermodynamic Models course hosted by the Technical University of Denmark. Along the way, I’ll explore topics like scientific programming, thermodynamics, and flash algorithms, with a focus on writing clean, maintainable code for technical applications.

I hope you’ll join me on this journey of learning and discovery.

1

Posts written

1.6K

Words written

7

Countries visited

Last modified: February 19, 2025