Overview
This project was part of a three-phase engagement where Code and Theory engineers were embedded directly within Bloomberg’s Core Web team:
- Bloomberg Politics maintenance - Post-launch feature development serving as onboarding
- Bloomberg Business redesign - Complete platform redesign and development
- UAT and QA support - Addressing user acceptance testing feedback
Bloomberg Business represented a watershed moment in digital journalism—the first unified flagship destination combining Bloomberg News, Bloomberg Businessweek, Bloomberg TV, Bloomberg Video, and Bloomberg Politics into a single, cohesive experience.
As one of four senior software engineers from Code and Theory embedded within Bloomberg’s Core Web team, I contributed to implementing the technical foundation that would support Bloomberg’s ambitious vision of creating a “smarter, faster” news platform.
The Challenge
Bloomberg faced a complex architectural challenge: how to unify disparate content verticals under a single technical umbrella while maintaining the flexibility to serve both active financial news consumers requiring real-time market data and casual readers seeking curated business content. The existing infrastructure couldn’t support the scale, modularity, or performance requirements of Bloomberg’s digital transformation.
Key Technical Challenges:
- Content Velocity: Supporting breaking news cycles with instant publishing capabilities
- Modular Architecture: Creating reusable components that could adapt to different content types and editorial priorities
- Performance: Delivering sub-second load times for a content-heavy, media-rich experience
- Scalability: Handling massive traffic spikes during market events and breaking news
- Cross-Platform Consistency: Ensuring seamless experiences across web, mobile, and embedded contexts
Technical Architecture
Core Technology Stack
The application was built on a modern JavaScript architecture utilizing Brisket.js (Brisket is an open-source framework developed by Bloomberg for building isomorphic single-page web applications) to enable isomorphic rendering, allowing shared code between client and server for improved performance and SEO.:
// Server-side application
var ServerApp = Brisket.ServerApp.extend({
routers: Routers,
start: function (options) {
AppConfig.loadConfig(options.environmentConfig);
},
});
// Client-side application
var ClientApp = Brisket.ClientApp.extend({
routers: Routers,
start: function (options) {
AppConfig.loadConfig(options.environmentConfig);
this.setupAnalytics();
this.initializePersonalization();
},
});
Note
This is a abstracted/simplified example. The actual implementation involved extensive routing, state management, and API integration.
Backend Infrastructure:
- Node.js/Express server with isomorphic rendering capabilities
- Brisket.js framework for shared client/server application logic
- Hogan.js templating for consistent rendering across environments
- Service-oriented architecture with dedicated API adapters
Frontend Architecture:
- Backbone.js for client-side application structure
- SCSS/Compass for modular stylesheet architecture
- Grunt build system with asset optimization and fingerprinting
- Component-based architecture with isolated, reusable modules
Modular Component System
Working within Bloomberg’s established component architecture, I helped implement and extend the flexible system that could adapt to Bloomberg’s diverse content needs:
// Modular SCSS architecture supporting infinite layout combinations
@import '../components/modules/hero/hero';
@import '../components/modules/hero/hero_variants';
@import '../components/modules/hero/section_hero_variants';
@import '../components/modules/content/content_feed';
@import '../components/modules/data/data_visualization';
@import '../components/modules/alerts/notification_banner';
Each module was designed as a self-contained unit with:
- Isolated CSS scope to prevent style bleeding
- Configurable data inputs for editorial flexibility
- Responsive behavior across all device sizes
- Accessibility compliance (WCAG 2.0 AA)
Interactive Features Implementation
Reading Progress Indicator
A sample of one of the features I implemented was the reading progress bar, a visual indicator showing article completion percentage:
var ReadingProgressView = View.extend({
updateProgress: function () {
var scrollTop = $(window).scrollTop();
var documentHeight = $(document).height();
var windowHeight = $(window).height();
// Prevent division by zero and handle edge cases
var scrollableHeight = documentHeight - windowHeight;
var progress =
scrollableHeight > 0
? Math.min(100, Math.max(0, (scrollTop / scrollableHeight) * 100))
: 100;
this.$('.reading-progress__bar').css('width', progress + '%');
},
initialize: function () {
this.throttledUpdate = _.throttle(this.updateProgress.bind(this), 16);
$(window).on('scroll', this.throttledUpdate);
},
remove: function () {
$(window).off('scroll', this.throttledUpdate);
return View.prototype.remove.call(this);
},
});
Industry Recognition
The Bloomberg Business launch garnered significant industry attention:
- Wired.com: Called the “kaleidoscopic, modular design” the “future of web news”
- VentureBeat: Described it as “seriously great”
- Nieman Journalism Lab: Praised the “visual and rhetorical oomph” designed to reach broader audiences
Technical Learnings and Innovations
Architectural Decisions
The team made several key architectural decisions that I contributed to implementing:
- Isomorphic JavaScript: Working with Brisket.js for server/client rendering provided SEO benefits while maintaining rich client-side interactions
- Component-Based CSS: The modular SCSS architecture enabled rapid design iteration without breaking existing layouts
- API-First Design: Separating content delivery from presentation allowed for flexible content syndication
- Progressive Enhancement: Core functionality worked without JavaScript, with enhanced experiences layered on top
Performance Innovations
- Critical CSS Inlining: Above-the-fold CSS delivered inline with initial HTML
- Lazy Loading: Images and non-critical JavaScript loaded on-demand
- Service Worker Implementation: Offline reading capabilities for return visitors
- Adaptive Streaming: Video content delivered at optimal quality for user’s connection
Accessibility Implementation
- Semantic HTML: Screen reader optimization for financial data tables
- Keyboard Navigation: Full site functionality available via keyboard
- High Contrast Mode: Support for users with visual impairments
- ARIA Labels: Comprehensive labeling for complex interactive elements
Code Quality and Testing
Testing Strategy
// Comprehensive testing across client and server environments
describe('ReadingProgressView', function () {
var readingProgressView;
beforeEach(function () {
readingProgressView = new ReadingProgressView({
containerReadingContent: '.article-body',
});
readingProgressView.render();
});
it('updates progress based on scroll position', function () {
setScrollTop(20);
var progressBarWidth = parseInt(
readingProgressView.$('.reading-progress__bar').css('width')
);
expect(progressBarWidth).toBeGreaterThan(0);
});
});
- Unit tests for all JavaScript modules using Jasmine
- Integration tests for API endpoints and routing logic
- Performance tests for load time optimization
- Cross-browser testing automated via cloud testing services
Code Standards
- JSHint for JavaScript code quality
- SCSS-Lint for stylesheet consistency
- Git hooks for pre-commit testing
- Code review process for all production deployments
Legacy and Continued Innovation
The technical architecture that our team helped implement for Bloomberg Business became the foundation for subsequent Bloomberg digital properties. The modular component system, performance optimization strategies, and isomorphic rendering approach influenced how Bloomberg approaches web development across their entire digital ecosystem.
The project demonstrated that news organizations could deliver magazine-quality design experiences without sacrificing the speed and reliability required for financial news consumption. This balance between aesthetics and performance became a benchmark for subsequent digital journalism platforms.
Deployment Pipeline
- Git commit triggers automated testing
- Build process compiles and optimizes assets
- Staging deployment for QA validation
- Production deployment with zero-downtime strategy
- Monitoring confirms successful deployment
This case study represents my contributions as one of four Senior Software Engineers from Code and Theory embedded within Bloomberg’s Core Web team during the Bloomberg Business redesign project. The technical implementations described reflect my direct involvement in developing the platform’s core systems as part of the collaborative effort between Code and Theory and Bloomberg’s internal development team.
Additional Resources
Bloomberg Business Full Case Study on codeandtheory.com at https://www.codeandtheory.com/things-we-make/bloomberg-business
Bloomberg Politics Full Case Study on codeandtheory.com at https://www.codeandtheory.com/things-we-make/bloomberg-politics


