Student Blogs - Carnegie Mellon Silicon Valley - Carnegie Mellon University

Student Blogs

MS in Software Engineering, Technical Track Blog

Wondering if a Carnegie Mellon degree is right for you? Read about our students' experiences through the MS in Software Engineering, Technical Track program.

Rahul is a full-time MS Software Engineering, Technical Track student. He loves traveling, trekking, swimming and is a complete movie buff.
Anthony is a 2nd year part time student in the MS Software Engineering, Technical track program and works at OSIsoft as a Software Engineer. He loves spending time with his family, hiking, biking, gardening, cooking, and sometimes photography.
Suma is an alumna of the MS Software Engineering, Technical Track program. A Mechanical Engineering undergrad, she loves writing and is passionate about music, shopping and dogs.
Minh is a Software Design Engineer at Microsoft and alumnus of the MS Software Engineering program. He is also a Vietnamese community activist, a cat-lover and passionate fan of film music.
Nick is a Software Engineer at Google and a first-year grad student at Carnegie Mellon Silicon Valley. He loves hiking, gaming, and both really extremely good and extremely bad movies.

Monday, May 21, 2007

Software Architecture Before and After (Part I)


I can’t believe how fast time flies. I am starting my third semester at CMU West this month, and by the time I finish this semester, I will be half-way through my grad program already. This semester, I am taking the course “Architecture and Design” and I can’t wait to delve into this topic. The whole reason I am pursuing this master’s degree in Software Engineering is to prepare myself for my long-term goal of being a software architect. As such, I am very committed to this class.

As we learned during The Gathering, architecting is a process that requires careful decision-making based on technical insight, experience, and a good understanding of the business requirements. Decisions made for software architectures have long-lasting effects on a software’s performance, modifiability, scalability and ultimately, its future existence. In other words, if the software doesn’t perform or scale in the field, it’s clearly your fault, and you’ll have to buy a ticket for the next flight out to Mexico.

I have a lot of expectations for this class and thought it would be a good idea to state these out now, and revisit them at the end of the semester to see if I will have learned what I expected.
Needless to say, I expect to learn about a variety of software architectures that are commonly used in this industry: classic architectures such as client/server, new architectures such as peer-to-peer, and any other emerging architectures such as those used in artificial intelligence. Learning and knowing about each architecture’s advantages, disadvantages and its applicability will enable me as a future software architect to make more informed decisions.

I also expect to learn patterns in software architecting. I imagine that besides choosing a high-level architecture for a given software, there must also be many small “design patterns for architecture,” or best practices that one can apply to subsystems of a software, and I hope to gain further insights in these common best practices.

In addition to just acquiring the knowledge about software architecture, I also expect to learn how to apply this knowledge to a given business problem. What makes software architects so vital is that they can evaluate the applicability of each software architectural style to a given software, which is something I hope to learn from this class as well. Which architecture suits best for a given business requirement? How do I determine/test whether a given architecture will work once developed? When should I choose one architecture over another? I’d like to be able to confidently answer questions like these after this class.

Lastly, I want to learn about how to properly document architecture using common standards such as UML.

Glancing over this semester’s curriculum, I am pleased to say that it promises to deliver my expectations, and it does so by looking at case studies of some well-known applications, which is something that I am very thrilled about. How cool is it to learn about peer-to-peer architecture by studying Skype and BitTorrent? How cool is this to study the architectures of products that I’ve used before, like Sony Vegas and Housing Maps? This shows again how applicable and hands-on doing a master’s degree at CMU West is!

As you can tell, I very much look forward to this semester. My oh-my-God-I’m-in-grad-school enthusiasm that had slightly declined last semester (see previous post) is now fully back, so let the games begin.

Next: The New Software Industry and other networking opportunities at CMU West

posted by Carnegie Mellon Silicon Valley @ 2:11 PM  0 comments

Friday, May 11, 2007

I am on the Carnegie Mellon University homepage!


Go to www.cmu.edu and see my story on the homepage for the next seven days (screenshot). Afterwards, you can go directly to this link instead.

Software Program a Great Fit for Professionals

Minh T. Nguyen, a software design engineer at Microsoft, is getting his master's degree in software engineering at Carnegie Mellon West. The program's unique set-up makes it a perfect fit for full-time professionals.

The program is project-oriented, with no traditional exams. Students work individually and in teams — studying online material, scheduling meetings with faculty and each other, collaborating and delivering their results as a source code, document or presentation.

"I never realized the importance of team-building and soft skills until I started at Carnegie Mellon West," said Nguyen. "Just during the first semester alone, I learned so much about how to effectively lead a team that I wish I could have applied this knowledge at my previous non-profit work."

Nguyen says he appreciates that he can be on a business trip in Seattle or a family visit to Orange County and still not miss a meeting. According to Diane Dimeff, associate dean for external relations and professional development at Carnegie Mellon West, the flexibility of the program is key.

"Flexibility makes this program ideal for full-time professionals, especially those who spend a lot of time traveling for their jobs and putting in long hours," she said.

A strong focus on solving real-world problems translates to the students being able to immediately apply what they learn to their responsibilities on the job. Teaching methods that include workshops, small group coaching and problem-driven seminars allow the students to get the most out of their learning experience.

"Carnegie Mellon West's simulation-based curriculum places me right into a context that most closely resembles a real work environment," said Nguyen. "It focuses on the strengths that will pay off the most once I graduate, if not even earlier."

posted by Carnegie Mellon Silicon Valley @ 2:20 PM  0 comments

Monday, May 7, 2007

The Gathering


Touted as mid-year checkpoint for our entire cohort, remote or not, to flock back to the Carnegie Mellon West campus at the NASA Ames Research Center and to see and meet each other again is the event that we simply refer to as “The Gathering.” It’s a two-day happening each spring where all students of our Class of 2008 take the long pilgrimage back home to sunny Mountain View, CA in search for two things: communal spirituality and architectural guidance.

Okay, fine, maybe I am dramatizing this too much, but the idea is still the same, as the Gathering serves two purposes: first, it’s an opportunity for our entire cohort as well as the rest of the Carnegie Mellon West community to see and meet each other again, while it also serves as a kick-off to the new Software Architecture semester that we are about to start this May.

Because anywhere from 30%-40% of our cohort consists of remote students all across the nation (and sometimes even across the globe), we do not often get to see and meet each other. In fact, the last time that our class met in its entirety was during orientation weekend last August, so it was very refreshing to have all the students gather again. Some remote teams that have been working together very closely via conference bridges and LiveMeeting sessions last semester finally met in person this weekend.

Since Carnegie Mellon West’s curriculum puts a strong emphasis on team-building and other “soft” skills, a variety of guest speakers were invited on campus to present some interesting topics that one might not expect from a degree in software engineering. We had the founders from EnneBusiness Solutions present about the Enneagram of Personality introspections (a personality and character assessment through self-observation) and actually conduct a workshop to see how the enneagram can be analyzed in our newly-formed teams.

Stanford Professor (and author of “Improv Wisdom: Don’t Prepare, Just Show Up”) Patricia Madison came to talk about the art of improv and comedy and conducted a variety of interactive games to discover and spur the creativity of our minds, as she explained how this mindset can be applied to our professional work to enhance creativity and team communication. Personal fitness trainers from Total Fit Solutions also came over and worked with us (or rather, made us work) through an hour of sometimes grueling athletic exercises that one could do in the office (the workshop was appropriately titled “My Desk is my Gym”).

To top it all off, we were all bused to downtown San Jose to have a dinner at a brewery. Afterwards, we enjoyed ourselves and shared good laughs at a comedy show at night. As you can imagine, despite the schedule being fairly busy, it provided ample opportunities to mingle, socialize and get to know your fellow classmates.

The second purpose of the Gathering was to officially kick-off the Software Architecture semester. We were conveniently introduced to our new team right at the beginning of the weekend to allow us to get to know each other through the above-mentioned workshops and games. A senior architect from Yahoo! provided us with an insightful talk about the roles of an architect as well as a variety of architectural decisions that were taken at Yahoo! as it embraced the Web 2.0 and AJAX wave. In addition, another talk that I thoroughly enjoyed was a presentation from Mark Srebnik, a building architect, as he described his work in planning, designing, and architecting a hospital as well as his iterative approach in interacting with the customer. The similarities between software architecting and building-architecting were striking, and I am glad to see that software engineers are not the only beings out there who claim to be masters at planning and designing but seldom deliver a product that actually looked like the first signed-off blueprint/Visio diagram!

As the weekend winded down, and remote students slowly checked out of their NASA lodges, a few of us took the opportunity to participate in a photo shoot for the new Carnegie Mellon West brochure, played frisbee on the big lawn in perfect California weather, or simply embarrassed ourselves in attempting to beat Tom, the only game developer in our class, in playing Dance Dance Revolution (aka DDR) on the Playstation upstairs. With a little bit of nostalgia, we realized that the entire Class of 2008 wouldn’t see each other again until the next year’s Gathering. At the same time, we feel refreshed and excited to start the new semester.

Until then, happy architecting!

Next time: Software Architecture Before and After (Part I)

posted by Carnegie Mellon Silicon Valley @ 12:18 PM  0 comments

Previous Posts Archives