Note: This post is written on Oct 16, 2009.
This is my last day in Xuenn. I remember the day that I decided to accept their offer even I had a few offers from serveral companies (including NCS, UTAC, AsiaSoft and etc). I was so excited at that time because I was told that I’m going to work with latest technoliges (e.g. WPF, Silverlight), TDD and Agile (Scrum). (There are only a few companies that are actually using latest technologies for their projects. The most of companies are still using ASP.NET 1.1 or 2.0, winform, CRM, Sharepoint and etc so it’s really hard to find the companies that use the latest technolgies and pay well.) And also, Online gambling and sport betting domain was very new to me and I don’t mind learning new domain so I accepted the offer right away.
Here are the things that I’ve done in that company.
- Design Pattern in details : I’ve been working with design pattern since 2005 when I was working in India. I was using very simple design pattern like Singleton, Observer and etc at that time. After that, I joined to UTAC company around 2007 and I got more chance to use the design pattern (especially MVP (Model-View-Presenter) pattern, Factory pattern, Building pattern, Event Aggregator pattern and etc ) since that company is using CAB (Composite Application Block), SCSF (Smart Client Software Factory) for their semi-conduction manufacturing related project. I joined to Xuenn last year. As I need to design the base architecture of WPF application and need to conduct a lot of technical interview, I have learnt all of GoF (Gang of Four) pattern, MVVM (Presentation Model) patterns in details. ( Yes, when you are either designing the software or conducting the interview for those who are familiar with design pattern, you must have good understanding about those patterns. Otherwise, you might have hired wrong person for projects and your project will screw up at the end.) A few good websites (like dofactory.com or c2.com) and good books (e.g. Head First Design Pattern and Gof: Design Patterns: Elements of Reusable Object-Oriented Software) are extremely useful if you want to learn about patterns. But reading books and knowing the theory are not good enough. You actually need to use them in your real project regularly.
- Designed the architecture of WPF/Silverlight projects : I participated in designing the whole architecture of WPF/Silverlight projects. I did a lot of researches for implementing security and authentication, localizaition, template themeing, WPF and Silverlight compatibility, Prism framework, patterns (MVVM, DI) and etc. I ‘m glad that we successfully implemented all of them for our projects.
- Composite Application Library (a.k.a Prism) and Unity : I’ve been using Prism version 2 since P&P team distributes early drop before they release. So, I got a chance to get very familiar with those frameworks in that company. I even manged to contribute some of my source code to Prism Contrib, Unity Contrib projects. We implemented two styles of MVVM pattern in our project. One of them was Julian’s approach (PresentationModel with DataTemplate).
- TDD, BDD, DDD : I noticed that people like DD these days. With the help of my good friends, I was getting more into those DD terms – TDD (Test-Driven Development), BDD (Behivor-Driven Development) and DDD (Domain-Driven Development). I didn’t practice much in that company but those DD become something that I want to explore more in my current company.
- Lead a small application team : There was two major WPF teams in our company. I was taking care of one team. As the most of people in my team are very new to WPF, MVVM pattern and Asynchronous services, I had to support them until they got familiar with our achitecture. As you all know, I’m a community guy and I do enjoy helping other people so it was fun to guide them how to do things in WPF or Silverlight.
- Participated in interviewing and recruting people : I contacted a lot of face-to-face interview or phone interview when we were actively recuriting people for our project. It consumed a lot of my time but I know that it’s good experience to have in my career.
- Recreation Club : I was a part of the recreation club and we used to organize a lot of events (outing, sport activities and etc) for our stuffs. It was fun.
Needless to say, I had great time working with them. I wish them to have project success in future…