Loading…
This event has ended. Visit the official site or create your own event on Sched.
View analytic
avatar for Bill Chapman

Bill Chapman

Bloomberg LP
Senior Programmer
Greater New York City Area
When I first came to Bloomberg in 2005, I was doing financial calculations for mortgage bonds, which was ironic because I don't believe real estate is a very good way to invest -- I would tell my friends "I'm like a drug dealer who never touches the stuff.". I had a front-row seat on the whole mortgage meltdown, have strong opinions about how & why it happened. Worked on tools during the metldown to figure out which bonds were the most toxic.

In early 2008, I transferred to the Bloomberg BDE team, writing low-level C++ libraries used by the rest of the company (it's a big company, with about 5,000 programmers) to do finance and news. We're at the bottom layer, we wrote our own version of the STL, and I almost never deal with financial concepts any more. I just do pure computer-science building blocks.

I've been paid to program since 1980, but I've never since libraries as high-quality as BDE anywhere. Before I started working on BDE, my code was always head and shoulders above that of my teammates in terms of the level of commenting I did. But in the BDE team, we comment a lot more than I was used to. And we have a lot of specific rules about exactly how the commenting is to be done. In addition to all the comments, everything has to be exhaustively unit tested.

A lot of the BDE libraries are open-sourced, on github, for anyone to download. Everything ports effortlessly to Linux, Windows, Darwin (Apple/x86), Solaris (SPARC), and IBM Aix (PowerPC). We used to also support HPUX (Itanium) but we dropped it several years ago. There are vestiges of support for Cygwin and FreeBSD, but we haven't been testing there for many years.

My focus at this conference will be multithreading and high-performance computing. I've written a couple of thread-safe containers and a threadpool, and done maintenance on other thread-safe containers and threadpools in BDE over the years. We have our own atomic variables in BDE, written from scratch in assembly language, though I did not write any of them.
Saturday, September 23
 

9:00am

 
Sunday, September 24
 

9:00am

5:30pm

8:00pm

 
Monday, September 25
 

9:00am

11:00am

12:30pm

2:00pm

3:15pm

4:45pm

5:20pm

8:30pm

 
Tuesday, September 26
 

9:00am

10:30am

12:30pm

2:00pm

3:15pm

4:45pm

7:00pm

8:30pm

 
Wednesday, September 27
 

9:00am

10:30am

12:30pm

2:00pm

3:15pm

4:45pm

8:30pm

 
Thursday, September 28
 

9:00am

10:30am

2:00pm

3:15pm

4:45pm

8:30pm

 
Friday, September 29
 

9:00am

10:30am

11:05am

1:30pm

2:45pm

4:45pm