Successful software applications, even when diligently maintained, tend towards the complex and brittle with the passage of time. This perpetual challenge of software engineering is the direct result of two fundamental forces that reinforce each other. First, the rate of change in computing is faster than in almost any other human endeavor, resulting in constant pressure to support more features. Second, the primacy of not disrupting production means that code, once released, is exceedingly hard to modify, let alone decommission. In this talk, I present two complementary projects at Goldman Sachs that seek to meet this challenge head-on. At the component level, Java Slang Integration (JSI) enables the piecemeal migration of functionality from the firm’s proprietary scripting language to languages running in the Java virtual machine. More importantly, it greatly simplifies fine-grained comparison testing of components written against both platforms, giving us high confidence that they are functionally equivalent. At the service level, the Dash Bouncer serves as an application-level proxy mediating HTTP flows at the boundary of the firm’s network. Following security best practices, its primary remit is to perform semantic validation on requests and responses, thus protecting internal resources. However as a welcome side effect, it also encourages application owners to a service-oriented architecture. In my talk, I motivate, overview, and reflect on both efforts, emphasizing that continuous software evolution is by far preferable over wholesale replacement and in fact entirely feasible.
Robert Grimm is a Vice President in the Technology Division of Goldman Sachs, where he works on the company’s risk and trading platform. Before joining the firm in 2013, Robert was an Associate Professor of Computer Science at New York University, researching how to leverage programming language technologies to make complex systems easier to build, maintain and extend. He received a Ph.D. in Computer Science from the University of Washington at Seattle in 2002. His honors include the Best Paper award at the 6th ACM International Conference on Distributed Event-Based Systems, a Junior Fellowship at NYU’s Center for Teaching Excellence, and an NSF CAREER award.