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.

Saturday, December 22, 2007

Wrapping up Construction I – Wohoo!


Last week I finished the first mini of our 3-mini Construction class (a mini is half a semester), and I must say that Construction has been all that it was promised to be—exciting, fun, a lot of cool stuff—all while learning many new things. In just over seven weeks, my excellent kick-ass team put together a prototype of a social-networking based MovieRecommender website that provides movie information, and the ability to purchase movie tickets on the web as well as the phone. We took parts of the requirements that we had gathered in the Spring 2007 semester and in SCRUM style we have iteratively planned, managed and implemented the product backlog items one week at a time. In the end, our team not only has developed a product that we are very proud of, but we’ve also over-delivered because we got so excited about this product and the technologies. Ruby on Rails was the savior in developing multiple views for our application: from HTML for the web, to trimmed-down versions in XHTML for advanced mobile phones, to WML views for old-fashioned cellphones, and … get this… VXML for voice-recognition!

VXML? Voice-recognition? Yup, you heard it right. What happened is that our team got ahead of the game pretty early; we were the first one to deliver the mobile views, getting the unit tests to run, and getting the integrated build systems to work. After already delivering the purchase-tickets feature or showing maps of movie theaters on the cellphone via GoogleMaps or even geocoding zip codes into “nearby theaters” by using Yahoo’s GeoCoding webservice, we decided that the last task of allowing users to reserve restaurants was just too boring for us, and that we wouldn’t learn anything new. So, we sat down with our faculty and negotiated with him to deliver the VXML/Voice-recognition instead. With much research and fun we used Tellme Networks’ free VXML-development environment to develop a voice-solution that allows you to call a 1-800 number to access movie information. Tellme’s call server would access the necessary movie information by accessing the VXML files that we developed and hosted on the Carnegie Mellon West web servers. How cool is that? In fact, the stuff that we do in our technical track has become so cool, that two students in the development track have already decided to switch to the technical track!

This example demonstrates again that CMU West ain’t your typical master’s program. Where else do you get to develop with state-of-the-art technologies and practice new software development lifecycles in a safe environment, increase your breadth of technical knowledge so rapidly, all while having fun and even getting to have a say on the curriculum’s content and direction? Welcome to Carnegie Mellon West.

Happy Holidays!

posted by Minh Nguyen @ 3:38 PM  0 comments

Monday, December 17, 2007

A whirlwind semester draws to a close


Whew. One semester is finally finished. Things definitely get a lot more hectic towards the end of the semester, which seems to have coincided with the rest of my life getting more complicated as well. Over the course of a week, my CMU team prepared our final presentation, added the final bit of functionality to the code (the reports UI, which I'll try to post here for the person who wanted to see how it looked).

Technically, it was not overly complex. It was a relatively straight-forward Java program (swing, some timer threading, and an existing Hibernate/MySql backend) but it definitely taught our team how to learn new tools in a short timeframe. I don't think any of us came into the class knowing much more than just the basic Java practices. The existing code's design patterns and extra technology like Hibernate were not things we had any familiarity with. However, the faculty were able to address some of those issues during weekly information sessions on different technologies we were using.

As for the final iteration, it was by far the most productive yet also most challenging so far. Not only did we need to get our project in perfect shape for demonstration, but we also had to prepare the actual presentation for the demo itself. During our iteration planning session, we realized that reaching every stretch goal initially set for us by our VP of Marketing was not feasible with the time we had, so we cut that feature. We wrapped up coding a couple days before the demonstration and were able to get all our code functioning for the demo. The presentation itself went extremely well and our team wrapped everything up quite well.

Looking back, I think this first semester was pretty effective overall in terms of what I wanted to learn. I definitely got experience with making presentations in a business environment as well as functioning in more of a formal group than what I'm used to at work. I'm looking forward to the next course which will dive deeper into requirements gathering and more of the skills necessary to make real-world software projects successful. Until then, I'm going to relish this holiday season and relax. Happy holidays!






posted by Nick Lynn @ 2:16 PM  1 comments

Thursday, December 6, 2007

Ruby on Rails – where hast thou been all my life?


Time flies when you’re busy, and boy have we been busy with the Construction class. Through all our classes at CMU West, we are supposed to keep track of our hours spent on school, and I noticed that with Construction my average hours spent per week is usually around 25 hours and above, which is significantly more than the usual 10-15 hours I spent on school. However, I attribute this to the fact that I thoroughly enjoy what I do in this class, and that I am a perfectionist trying to make a product that has production-level quality.

What we have done so far is to develop a social-networking based Movie Recommendation website built on top of Ruby on Rails. Fully embracing the SCRUM development process, we have developed a fully-functional website that allows you to register, look up movie information, make movie recommendation, pull up showtimes and theater information and even purchase tickets in four sprints. While we are lagging behind a bit with writing our functional and integration tests, we have practiced the majority of the SCRUM process including stand-up meetings, story points, sprints and backlog items. Fully-embracing the Model-View-Controller paradigm of Rails, we have also developed views for the same functionality for the phone, so you can do all that jazz on your WAP-enabled phone now as well. Now, it’s amazing that our team of only three people was able to pull this off in just four weeks, and we have to thank Ruby on Rails for that.

As a developer who has always had an interest and expertise in web development, I have an appreciation for Ruby on Rails. Its superb database-support via ActiveRecord and superfast development via the MVC model and customizable scaffolding support as well as pretty cool AJAX support make web development such a breeze. In fact, I already “drank the kool-aid” and am already using Ruby on Rails for one of my non-profit websites, and I only wish that I could have done the same for some of the bigger non-profit websites that I have been working on for the past year (and still am).

I find myself learning a lot about Rails, and am almost done with reading our book on Rails cover-to-cover (even though that’s not even required). It turns out that the hardest part about learning Rails was the complicated setup and knowing all the conventions. As a person who is used to simple one-stop-installations in Windows, I found the installation, configuration and deployment of Rails to be rather complicated: installing Ruby, MySql, Java, NetBeans, Mongrel, FastCGI, environment.rb, so it helps that our adjunct professor is a Rails enthusiast and a real Vice President of Engineering at this company that is sold on Rails. Once our team had the basic Hello World going, adding new functionality was a breeze, provided that we know all the Rails convention, so now we are speedily cranking up new features like there’s no tomorrow.

posted by Minh Nguyen @ 3:06 PM  0 comments

Previous Posts Archives