Greetings to all you Sugar Dev Blog readers. This is Matt Carroll, Software Engineer intern for the summer. I wanted to write here to share my experience at SugarCRM and talk about what I’ve been working on.
In September I’ll be heading off to grad school, so I was looking for an interesting internship to help pay the bills until then. I met Majed at a UC Berkeley career fair. I could tell right away that he’s a smart guy, but also with a sense of humor. My intuition was that Sugar would be a great place to work – a mix of highly talented people and relaxed atmosphere is very appealing. And I’m happy to say, my initial impression has proved correct so far.
At the beginning, I worked on Tidbit. For those who don’t know, Tidbit is a data generation tool for Sugar that populates the database with large quantities of bogus records for load testing. The existing code was functional but some features were broken, and I was tasked with adding some new features as well. I had to hunt down and fix some bugs regarding email address generation, which were affecting all the generated records. Later on, I added command line options to automatically detect modules and relationships, and generate records for those as well. This could come in handy if somebody is load testing a Sugar installation that uses custom built modules.
Next, I started working on what would eventually be dubbed Sugar MMM. Trampus came up with MeterMaid, an XML based language for writing JMeter tests. Sugar MMM pulls information from an existing Sugar installation and generates MeterMaid tests that simulate a typical user’s activity – loading listviews, detail views, creating records and relationships, and so forth. It was a bit of a challenge to instruct JMeter to do what a Sugar user does – particularly, coming up with and debugging regular expressions to scrape usernames and ids from the HTML response was time consuming.
Working on Tidbit and Sugar MMM was a great opportunity for me to sharpen my skills. I had some experience with PHP but I definitely feel comfortable with the language now. I also learned a bit about how Sugar itself works, but it’s (obviously) very large and complicated and I’m still at an early stage of understanding it. Prior to this summer most of the code I’ve written was in an academic setting, and it’s been great to work on some useful tools for automated testing – pulling together various tools and technologies to produce something valuable to Sugar customers.
There’s a very special thing going on here – a serious but relaxed atmosphere where people get things done efficiently and enjoy doing it. Literally everyone I’ve met at Sugar has been extremely friendly, gracious, and hospitable. But I have to give special thanks to Majed, David, and Trampus. These guys have taken the time to share their valuable knowledge and experience and I truly appreciate it.
P.S. – As devoted readers already know, the tools I talked about in this post were recently open-sourced. You can check them out at http://github.com/sugarcrm.