The document discusses Cinchcast, a company that provides cloud-based software for creating and distributing voice-based content. It describes the backgrounds of the CTO and VP of Development and an overview of the company and its flagship product BlogTalkRadio. The document then discusses Cinchcast's technology stack, development processes, architecture improvements over time including moving to services and caching, and future projects. It concludes by describing open job positions and benefits of working at Cinchcast.
14. Our Approach “Be brief, be bright, be gone” Don’t go chasing hot technologies of the day. Instead ‘mitigate your top problems’ Achieve “essential”, then worry about “excellent”. Be a “how team” instead of a “no team”. Build security into the software development lifecycle. Love And Other Drugs
15. Current Technology Stack .NET 3.5 C# Jenkins + Nunit Sauce On Demand - Selenium Gomez + NewRelic for monitoring JQuery ASP.NET and MVC 3 IIS 6 SQL SERVER 2005 Windows Server 2003 and 2008 Red 5 Asterisk, Pactolus AiCache Aptimize
16. Development Environment Visual Studio 2010 StyleCop / Resharper experimentation. Scrum methodology for large features + adopting Kanban for various bug fixes JIRA for project management + Greenhopper Svn, Jenkins
17. Metrics Not using metrics for your dev process is like landing a plane without any instruments in a storm. Code coverage Site throughput Number of critical security bugs Time to fix Blocker/Critical/Major JIRA issues. Percentage of developers using your site. Etc.
25. Evolution Summary 2008 – Multiple web servers via Coyote LB and Scaleout for session state 2009 – Read Only databases through replication and aptimize for combining JS, CSS and Images on the fly. 2010 - aiCache for caching html, second farm on amazon for specific traffic, specializtion of web and database servers. 2011 – Contendo cdn, services framework, retired aptimize due to Continuous Integration process, Service broker queuing.
29. Can be used either as DLL imports or through RESTful calls on the network.BlogTalkRadio Cinch.FM Cinchcast
30. Services Based on Martin framework (https://github.com/thegrubbsian/Martin) Lightweight .NET framework mapping URLs to actions. Modified framework to reflect interfaces and automatically expose all their methods.
31.
32. Not all data is relational, so database isn’t always a good medium.
36. Caching “Donut caching” : caches most of the page except a few dynamic regions. .Net caching via Fixed Expiration myCache.Insert("LiveChatRooms", liveRooms, myDependency, DateTime.UtcNow.AddMinutes(2), Cache.NoSlidingExpiration); .Net caching via Sql Dependency Expiration SqlCacheDependency myHDDependency = new SqlCacheDependency(DBName, "Genres"); myCache.Insert(DictionaryOfGenreEntityByID, myDictionary, myHDDependency); Data Caching via Scaleout return DCacheSoss.GetObjectFromNamedCache(CacheName, UniqueKeyName); CDN caching of JS, CSS and Images via Contendo and Limelight HTML Caching via CDN – Contendo, Limelight, aiCache
37. Cool Tech Projects On the Horizon Personalization of radio shows based on customer’s preferences. Build out of SOA Cinchcast platform from Python, .NET, Java components communicating as RESTFUL JSON-based services Moving real-time search to ElasticSearch (right now just for RSS/bots) Improving our caching layer performance (too many hit misses) A/B testing framework
38.
39. Don’t chase hot technologies (e.g. MemCached mania). Sometimes reinventing the wheel is good.
44. If you are good we’ll find a role for you : jobs@cinchcast.comWell-funded profitable startup used by millions. Patent-pending radio tech utilized in a new way. Medical/dental/etc. benefits. Great office space in mid-town right near subway. Flexible hours. Top-notch compensation + stock options.