Monday, October 5, 2015

Developer Interviews: Peter Davidson



What do you do and how long have you been at bbcom?

 I'm a principal engineer on a platform api team.  I've been with bbcom since April 2014.

Linux or Mac?

Mac

What is a typical day like for you?

 My day is coding, interspersed with a daily scrum, occasional meetings and our daily team basketball game.

What is in your developer tool box?  

 My two favorite tools right now work hand in hand ->  Hystrix and RxJava.  I use Hystrix to simplify threading and add bulk heading and circuit breaking.  I use RxJava to compose data from multiple data sources into a single data stream.  My favorite rx function is Observable.zip.

What are your favorite pro tips?

Threading is hard, caching is hard, naming is hard.  Make objects immutable and it makes caching and threading easier.

What did you code up today?  

Fixed a bug with user status being cached with a stale database value by a different thread, after removing from cache but prior to committing the transaction.   
Modified RxJava Observables to emit a fallback value when data is not present in the database. 

What has been the most challenging problem you’ve had to solve?  

We outgrew our current Mongo solution (without sharding) for our news feed.  We needed a solution that met both our scale and performance needs.  Earlier this year, we prototyped, developed and migrated to a news feed based on Cassandra.  The Cassandra news feed improved our performance and will allow us to scale for the future.

Any crazy Bbcom stories?

Nope

What is the best thing about working at Bbcom?

Lots of places have challenging problems, but the thing that makes bbcom a great place to work is the people I get to work with.  People at bbcom are passionate about technology and fitness.  We have internal tech meet-ups, daily basketball/football games and a lot of fun.