Monday, December 27, 2010

Santa Came Bearing Gifts

As a Thank-You token for the work accomplished in 2010, Edmunds gave all its 400+ employees Apple TVs today! The shipment was supposed to be here last week, but somewhere between here an Taiwan something got stalled. It's like Christmas Day all over again here in the office :-)






The sticker reads:



"Dear Ismail Elshareef:


Thanks for making 2010 such a successful year. We accomplished a lot and have much for which to be proud. Enjoy this memento as a token of our appreciation. We're looking forward to working together to make 2011 even better.


Happy Holidays.


Avi
"



Thank you, Avi! We're definitely looking forward to exciting new adventures in 2011.



Stay tuned ... and Happy New Year!



Friday, December 17, 2010

Edmunds.com to Engineers: We Want You!

tttes.jpgEdmunds.com has been recognized as one of the "Top 20 Places to Work" by BusinessWeek, Architectural Record, Wall Street Journal and the Los Angeles Business Journal. As someone who's been at Edmunds for almost 3 1/2 years now, I wholeheartedly agree.


If you are a team player, problem solver, initiative taker, proactive innovator and fun all around, then you'll be right at home here at Edmunds. Aside from having one of the coolest office spaces ever, we are located in Santa Monica near the beach. Believe me, it doesn't get any better than that out here in Southern California :-) The salaries are very competitive and the benefits are exceptionally generous. (the image above is from our inaugural Hack Days event that allows engineers and other to innovate on projects they feel passionate about. We are planning to have more of these events in the future!)


So if you're intrigued, check out the listings below and let us know if one or more piques your interest:


  1. Sr. Software Engineer: This position will involve managing application integration activities, providing consulting services to other IT peer groups and assisting in the development of complex initiatives.

  2. Software Configuration Management Engineer: Responsible for defining and automating the release process to allow for fast automated deployment and provisioning to integration test and production environments.

  3. Sr. Front-End Engineer: Responsible for leading software design and development in creating standardized, performant and engaging user experiences using web standards (XHTML, OO JavaScript, CSS.) 


  4. Sr. Software Engineer - Data Architecture: Looking for an exceptional Java engineer (ninja level) to play a key role in this evolution of our technology. The position is within the data architecture team and will be responsible for writing heavy code. Our software organization is an open environment where the best idea wins. You'll have the opportunity to work with many new exciting technologies such as Oracle Coherence, Apache SOLR and Hadoop.

  5. Sr. Software Test Engineer: Responsible for developing test specifications and test case designs as well as developing/implementing test tools to uncover product defects for new and existing component releases.

  6. Sr. Systems Administrator: Provide technology support and direction to the team, ensuring that all technologies work effectively together to deliver the technical/infrastructure architecture for large initiatives.

  7. Sr. Systems Administrator - Applications: Support and provide direction to the team, helping to ensure that all technologies work effectively together to deliver a high-performing, reliable implementation of Java based applications.   The ideal candidate must be creative, self motivated, innovative, detail oriented, and eager to work with the latest technologies along with a strong desire to maintain and help improve Edmunds' applications and supporting services.

  8. Sr. Systems Engineer - Production Engineering: Leverage cross-discipline expertise in systems management, networking, applications and software development to design, implement, and operationalize systems and application solutions in Edmunds'  high-volume, 24/7 production environments.

  9. Systems Administrator: Provide technology support to all of operations, ensuring that all technologies work effectively together to deliver the technical/infrastructure architecture for large initiatives.



Many other positions are open and you can find the complete list on our site. Don't forget to follow us on Twitter and check our our Facebook page to stay up-to-date on all the last minute development in the world of technology at Edmunds.


Hope to hear from you soon!




Wednesday, December 15, 2010

The Reƫnvisioned Edmunds.com is Now Live!

ed.jpgIt's been a long time coming; 26 months to be exact. Finally, the completely re-architected, redesigned and re-imagined Edmunds.com is now live and early indicators show that our Page Views are up 20% from that of legacy's. That's tremendous news for the company and for everyone that's been working really hard on this redesign over the past two years.



If you're wondering what's changed on the site, the answer is everything! Here's a quick breakdown:



  1. Completely new UI/UX geared towards getting out of the consumers' way and letting them get what they want done fast and with ease.
  2. All our pages are made of small, reusable components that can be combined in various permutations to deliver new pages.
  3. Smarter page rendering techniques geared towards making our pages "feel" faster and responsive to our consumers.
  4. Brand new Content Management System that was built in house in an MVC architecture to facilitate content publishing, scheduling, maintenance and distribution.
  5. We use Perforce for Version Control for both code and content
  6. Solr is our search engine.
  7. No RDBMS in Production! We use Oracle Coherence in-memory grid to supply data to our pages.
  8. Built our own publishing (data+content) system based on the Messaging pattern.
  9. Built our own traffic routing system, which was partially discussed in this post.
  10. The processes of server provisioning and application deployments are far more efficient.
  11. Introduced Hadoop and Netezza to our Data Warehousing.
  12. Built an impressive suite of automated tests and data validators to ensure bugs are caught early and protected against in the future.


These are just quick highlights of what went into the redesign. We are extremely excited about this milestone in our company's history and we're looking forward to improving on the great work that we released today and innovating further to take us to the next step of where we want to go.



Don't forget: You can be part of the team too! We're hiring :-)



Tuesday, December 7, 2010

Edmunds as a Platform

At Edmunds, we aspire to fully empower the automotive consumer. We've done a good job so far in achieving that, but I think more could be done. Here are my thoughts on how we can do that. I'd love to hear what you think about it (whether you think it's nuts or actually achievable.) Thank you in advance :-)


Here is the automotive experience life cycle as I see it:


  1. Research: the consumer is looking around for his/her next vehicle

  2. Negotiations: the consumer is negotiating (or not) pricing/features with dealer or private seller

  3. Acquisition: the consumer buys or leases or rents the vehicle

  4. Operation: the consumer owns the vehicle

  5. Maintenance: everything the vehicle experiences while owned by the consumer (i.e. accidents, service, ...etc)

  6. Sale: the consumer wants to sell the vehicle



I believe we have done well in some stages (1, 2 and 6) and hardly scratched the surface in the rest. There is tremendous opportunities here to give the automotive consumer support and information in every single stage of that life cycle.


But we cannot do it alone.


In order to truly empower the consumer in every step of the automotive experience, I feel that we need to allow the community at large to use our data and systems to create value for our consumers through applications--both mobile and wired--and services. The way to do that is to build an open platform.



What is a "Platform"?





At a high level, a platform is an ecosystem that provides the following:


  • Data Accessibility: providing our data in an easy and standard format ready for consumption by the larger community.

  • Code Extensibility: Our software should be open and extensible. The community can contribute and build upon our readily available codebase.

  • Service Oriented Approach: Be visible throughout the life cycle.




Goals





My goal is to ultimately reach 涅槃, or Nirvana, in automotive consumer empowerment. But in order to do so, we need to lay down a solid foundation that will help us get there. That foundation is illustrated in the Edmunds Platform Pyramid below (Figure 1.0)


milestones.jpg



Near Future Milestones





In the near future, the goals are:


  1. Technical Brand and Community Presence: The very first step is to get out there and create our technical brand through frequent technical blogs posts, technical speaking engagements, community gatherings, hosting tech mini conferences, be active on Twitter as an "Edmunds" network of techies. This blog is a manifestation of this goal :-)

  2. Complete Documentation: This is the linchpin of all our efforts. In the end, the developer is our consumer and if the developer doesn't know how to use or find our platform, then we've failed.

  3. Internal Open APIs: Getting our developers to use our APIs as if they were 3rd party APIs. 

  4. Public Open APIs: Building on the success of the Internal Open APIs, we open it to the public.




Far Future Milestones





Our future accomplishments should build on the ones mentioned above.


  1. API Virtualization: Without changing our underlying API layer, we'll add a layer to customize the APIs for the devices and partnerships they're serving.

  2. Edmunds Labs: A dedicated team of code and product evangelists and enthusiasts that works on bringing Edmunds and the technical community closer together through mutual collaboration.

  3. Open Sourcing: Taking our tried and tested products and open sourcing them through Edmunds Labs

  4. Tech Partnerships: Through Edmunds Labs, foster relationships with software and hardware technical partners that will help us expand our business and product scope.

  5. Edmunds OS: Build on top of an open source mobile platform (Android?) to deliver web-based operating system for cars--the ultimate mobile devices.

What do you think? Is there value in such approach? You can comment below or tweet your thoughts with #edmundsapi . Looking forward to hearing from you.




Monday, December 6, 2010

Scanning for Re-Targeting

Of late, there has been a lot of talk in the media about user re-targeting through unauthorized browser cookies that are unknown to the website serving the content. Ensuring users privacy and protecting our users from being re-targeted have always been high on the Edmunds radar. Cookie testing has always been an integral part of Testing practices at Edmunds for a while now. Every aspect of a cookie: content, date, name, domain, how it's set and when it's set are part of the test. 


A few months ago, we revisited our test automation tools and libraries and realized we can very easily tweak them to comb through our website to scan for any unauthorized cookies. Some of the considerations we had in mind were:


1. We wanted the tool to be JavaScript enabled as many of the cookies are being set as a result of a javaScript event or action.


2. Since we work with many ad agencies and vendors, our list of approved vendors and domains is dynamic. We wanted the tool to be able to respect a list of trusted domains.


It did not take us long to come up with a scanner based on Selenium RC that we use for Web Testing at Edmunds. We have been using the tool for periodic scanning. We are happy the it has served the purpose well. We also presented it to the OPA several weeks back.


Now, that's not the only thing we are excited about. We have been working hard on cleaning up our code a little so that we can open-source the tool. Details of the source code, projects details are coming soon. Stay tuned!