About Me

  • Engineer, Hacker, and Writer

  • Full-time Embedded Software Engineer @NGC

  • Part-time Lecturer @CSUCI

  • Email

  • Github

This website is primarily for sharing small anecdotes on tools and topics I find interesting. Typically I do this in an informal link blog style, but sometimes I write larger essays. In addition, you will find some of my own software/hardware projects displayed here.

Blogs

Software Engineering: A Modern Approach

Recently I started teaching a graduate course at @CSUCI on Advanced Software Engineering. The goal of the course is to give graduate students an idea of what working in an agile organization is like. I was really excited to share my work experience, but while preparing to teach the course I realized that I was overly critical of the agile practices I had been using. Maybe it’s because I have been doing SAFE for so long that my feelings on agile have become negative given that the core framework I use is so complex that often its implementation typically goes against the core agile values. Realizing all this, I knew choosing a good book would be important to keep my bias in check.

I decided to use Marco Tulio Valente’s Software Engineering: A Modern Approach for the course. The 3 main reasons I went with this book are as follows:

  1. The chapters are fairly independent of each other and easy to digest.

  2. Along with agile best practices, waterfall and formal methods are discussed.

  3. There are modern programming practices encouraged without being overly dogmatic on using them in all scenarios.

Maybe it has something to do with the fact that this book was originally developed in Portuguese, but the english translation is wonderfully direct and concise. Another huge benefit to this book is that there is a free web version. This allows me to have the chapters rendered directly in Canvas modules, and it also gives the students a no cost textbook! So far this book has suited the class well, but my one nitpick would be that the code examples could probably be more fleshed out. Obviously within each chapter you wouldn’t want giant examples, but I feel like there could be some larger examples added to the appendix.

If you find yourself in need of a refresher on modern software engineering practices, I would highly recommend you consider supporting the author by purchasing a copy here.

CV

coming soon