Goldman Sachs, We build

1.
골드만삭스의 경쟁력이 어디에서 나올까요? 금융종합투자회사를 지향하는 한국의 증권회사들이 의문을 가질만한 주제입니다. 이와 관련하여 자주 회자하는 말이 골드만삭스 CEO가 한 말입니다.

“골드만삭스는 IT회사이다”

IT회사라는 말이 무슨 의미인지를 알 수 있는 기사들이 몇 가지 있었습니다. 먼저 Goldman Sachs is a tech company를 보면 IT와 관련한 직무을 하는 직원의 비율이 30%를 넘습니다.

According to Goldman’s tech team members who spoke with Business Insider, of about 33,000 full-time employees at the bank, 9,000 of them are engineers and programmers.

또다른 Goldman puts its muscle into tech push을 보면 9,000명 외에 3,000명이 IT전문가로써 현업을 지원하고 있습니다. ICT와 수학 및 통계를 결합한 힘이 경쟁력으로 보입니다. 더불어 중요한 점은 CIO가 Technology뿐 아니라 Strategist(Strats)도 같이 담당을 한다는 점입니다.

The SETLcoin project is among dozens that emerge each year from Goldman’s technology group, which, with about 9,000 engineers reporting to Marty Chavez, chief information officer, is easily the biggest of 11 divisions within the 36,000-strong bank. Another 3,000 or so “strats”, or tech strategists, are sprinkled across other divisions.

Strats때문에 600명의 트레이더를 200명의 전산기술자들이 대신하는 현상이 발생할 수 있었습니다. 아래의 기사를 기초로 한 트레이더, 600명에서 2명으로…IT 기업된 골드만삭스도 같은 내용을 다루고 있습니다.

At its height back in 2000, the U.S. cash equities trading desk at Goldman Sachs’s New York headquarters employed 600 traders, buying and selling stock on the orders of the investment bank’s large clients. Today there are just two equity traders left.

Automated trading programs have taken over the rest of the work, supported by 200 computer engineers. Marty Chavez, the company’s deputy chief financial officer and former chief information officer, explained all this to attendees at a symposium on computing’s impact on economic activity held by Harvard’s Institute for Applied Computational Science last month.
As Goldman Embraces Automation, Even the Masters of the Universe Are Threatened중에서

이외에 골드만삭스의 전산현황을 보면 방대함에 입을 다물 수 없을 정도입니다.

• Technology is the largest division of Goldman Sachs,representing over a quarter of the firm. With a headcount of over 8,000, we are larger than many pure technology firms.
• Our technologists work in 31 offices across 15 countries,represent over 150 nationalities and speak more than 80 different languages.
• Our development teams have nearly 800 million lines of code in production.
• Our data center space totals almost 300,000 square feet—equivalent in size to almost 140 tennis courts—and we deploy 9.85 petabytes of SAN storage and 8.5 petabytes of NAS storage.
• We support over 50,000 IP telephones, and process more than 100 million unique e-mail messages per month.
• We developed a proprietary programming language and database platform, open-source Java collections library and software development lifecycle.
• Our daily risk calculations use a total of 47,000 CPUs to process more than 10 billion prices and execute more than2.5 quintillion 64-bit instructions.

2.
IT와 관련한 업무를 어떻게 분류하고 조직화하는지 궁금해집니다. 홈페이지에 나온 내용입니다. 개인적으로 Devops Engineer와 Platform Engineer가 눈에 들어옵니다.

BUSINESS SOFTWARE ENGINEER

As a Business Software Engineer, you will be aligned to one of the firm’s major lines of business, responsible for developing technical solutions for our financial professionals and external clients; for instance, creating high volume,web-based trade processing architecture or developing software applications for the firm’s various advisory and ecommerce initiatives. Candidates for this role will have the desire and ability to write high-quality, thoughtful code;creativity coupled with excellent analytical and problem-solving abilities; strong communication skills and an interest in financial markets.


PLATFORM ENGINEER
As a Platform Engineer, you will develop and maintain the technology infrastructure and core frameworks that drive our businesses. Whether as an application developer or system engineer, you will apply your technical skills and problem-solving abilities to a range of complex problems in such critical areas as cloud computing; machine learning and big data; application platforms; data center products; end user and workplace solutions; developer tools and practices; and enterprise architectures. Candidates for this role will have strong technical, collaborative and problemsolving abilities.


DEVOPS ENGINEER
As a DevOps Engineer, you will be responsible for detecting, managing and mitigating a range of risks in the firm’s operating environment, developing analytical models to identify risks; remediating at-risk applications and components; implementing standard software-development practices and test frameworks; managing the operational
risk of production environments and implementing controls to reduce risks associated with information security,
system capacity and vendor products.

그리고 Strats의 역할이 무엇인지 알아보도록 하겠습니다. 골드만삭스가 소개하는 Strats입니다.

Goldman itself describes its strats team as a, ‘a world leader in developing quantitative and technological techniques to solve complex business problems.’ Members of the team are divided into three groups: ‘desk strats’ who sit with traders and develop derivative pricing models and trading algorithms, ‘sales strats’ who support the sales team with quantitative research for client questions, and ‘core strats’ who work on the firm’s technology architecture using Goldman’s own proprietary coding language, ‘Slang.’ As we reported last week, Goldman’s already powerful strats group is said to be gaining influence internally now that the new CIO, Marty Chavez (a former strat himself) manages both strats and technology for the firm. The former CIO, Steve Scopellite, merely had technology in his purview.

위의 소개중 세 그룹에 대한 자세한 설명을 다룬 What is a strats at Goldman Sachs?에 올라온 글입니다. Core Strats는 개발자라고 하여도 무방합니다.

People often ask what a “strats” is at Goldman Sachs. Actually it is a quantitative analyst but doing many different tasks depending on what kind of strats she is.


First, strats is short for strategist but it is sexy to say strats and also because a strategist at other banks means someone doing research about the market trends and writing down analysis that traders almost never read. So there are three different strats at GS:


Desk strats: they sit on the desk and support the trading floor. They are a sort of front office quantitative analysts, they help traders manage their positions, identify optimal hedge and find new strategies. They can do a lot of IT but they are not technologists in the sense that there exist a specific technology team associated to the desk.

Sales strats: they are a mixture between a regular sales and a quantitative analyst. They support sales teams for quantitative questions with clients. If a client wants to understand how the last quantitative strategy actually works, the sales strats is on the front line.

Core strats: technologist guys, they are not in the technology division but work on the IT system used by GS called SecDB and Slang. They develop the infrastructure and improve Slang (proprietary language used by Goldman).

또다른 글을 보면 업무별로 Strats의 역할이 약간 다릅니다.

Roles within Securities Strats
Securities Strats play important roles in several areas. Some Strats sit on trading desks, creating cutting-edge derivative pricing models and developing empirical models to provide insight into market behavior. Others develop automated trading algorithms for the firm and its clients, taking an active part in the increasing shift from voice to electronic trading. A third group works directly with the firm’s sales force and clients, analyzing exposures, structuring transactions, and applying quantitative concepts to meet client needs. Between these teams, Core Strats design and develop complex parallel computing architectures, electronic trading tools, and advanced algorithms.


Roles within Investment Banking Strats
Investment Banking Strats collaborate with marketers and bankers in Investment Banking and the Financing Group to create quantitative strategies and analyses that lead to value-added transactions with clients. In the course of business, Investment Banking Strats use models to simulate and evaluate financial statements, funding, structuring and hedging strategies and risk management alternatives. Investment Banking Strats possess both general and specialized skill sets, developing expertise across products, markets, industries and strategic transactions.


Roles within Investment Management Strats
Investment Management Strats work in Asset Management and Wealth Management. Investment Management Strats collaborate with Portfolio Managers and Traders to analyze portfolios, create investment algorithms, and build pricing models and risk management tools for derivatives and complex cash securities traded across the firm’s fund complex. They may also work with clients – both private and institutional – to understand and analyze client investment needs, portfolios (including those employing external managers) and investment strategies to meet specific needs. The work involves developing a thorough understanding of the full range of investment products and strategies offered by the firm, an ability to capture the characteristics of those investments in mathematical models and the creation of infrastructure to make those analyses reusable and scalable across our businesses.
he difference between Strats within different groups중에서

여의도와 비교하면 Strats는 퀀트와 비슷한 역할로 보이는 듯 한 듯 합니다. 다만 IT와 매우 높은 관계를 가지고 있는 것은 달라보입니다.

“You need to be a programmer first and a pretty good math person second,” says another strat. “Quants are scarce around here. Those jobs just don’t exist. We have maybe three guys on the floor who could implement a partial differential equation exotic option pricer. We just don’t need a lot of quants. But do need a lot of people to keep the software infrastructure up and running and be OK at the math.”
So, you want to join the ‘strats’ group at Goldman Sachs?중에서

3.
좀더 구체적으로 들어가서 월스트리트의 시스템을 떠올릴 때 어떻게 시스템을 통합하는지 무척 궁금했습니다. 어느 때부터 여의도의 시스템은 구조적으로 단순합니다. TP-Monitor와 DBMS를 바탕으로 어떤 방법론을 적용한 프레임워크를 구성할지만 결정하면 되었습니다. Goldman Sachs의 경쟁력과 IT현황을 보면 4,000개의 어플리케이션을 운용하고 있습니다.

goldmansachs

이렇게 다양하고 많은 시스템을 Tp-Monitor와 DBMS로 구축했다는 생각이 들지 않습니다. 그래서 관심을 가졌던 분야가 미들웨어중 메시징미들웨어입니다. 골드만삭스의 조직구성을 보면 Technology – Middleware Engineering – Messaging Engineer이 있습니다. 이들이 하는 역할은 아래와 같습니다.

Middleware Engineering (ME) provides product solutions and software support to GS applications development across the firm. Product solutions include database abstraction APIs, transaction managers, messaging APIs, an Enterprise Application Integration (EAI) solution, frameworks for building Business Process Management (BPM) applications, Web / App Server containers and the Java Virtual Machine. ME also provides support and integration of application servers and open source frameworks with the firm’s infrastructure. A technical analyst position is available within the ME Messaging team to work with an existing global team of talented engineers and developers for the purpose of furthering the usage of our product(s). An ideal candidate will be one with the required technical abilities in addition to a strong sense of ownership and responsibility.

그리고 필요한 기술능력을 보면 아래와 같습니다. 여의도에서 쉽게 찾아볼 수 없는 기술들을 필요로 합니다.

• Detailed working experience knowledge of Java threading and security concepts
• System level programming and/or knowledge of OS (Windows, UNIX) or kernel internals
• J2EE, JMS, JTA and AMQP
• Working experience using C/C++ and Java debuggers and IDE’s
• Knowledge across various messaging middleware platforms such as Tibco EMS and RV
• RabbitMQ, Kafka, IBM MQ Series, etc.
• Solid analytical and problem solving skills
• Excellent verbal and written communication skill

이중에서 메시징과 관련한 부분만 보면 먼저 Tibco EMS와 RV입니다. 1996년 기사입니다.

Goldman To Roll Out Teknekron’s ‘Middleware’ Transaction Platform

이와 같은 때 Network World에 실린 기사중 일부입니다.

Tibco has introduced a message oriented middleware product designed to let companies merge corporate transaction into enterprise workflow involing numerous applicationa and database. Enterprise Transaction Express usea a publish-and subscribe technology that enables an application such as a stock trading system, to notify other networked application of new event.

골드만삭스의 어플리케이션중 매매와 관련한 프로그램은 Tibco의 메시징미들웨어로 통합한 듯 합니다. RV는 시세서비스, EMS는 주문체결을 위한 미들웨어로 역할을 할 듯 합니다. 아래는 한창 고빈도매매와 관련한 논쟁이 벌어질 때 골드만삭스가 SEC에 제출했던 문서에 있던 구성도입니다.

Tibco RV stands for Tibco Rendezvous which is based on proprietary tibco protocol (TRDP/PGM) developed by company. They have provided API in almost all major programming language and this is a preferred choice if you need high speed communication e.g. publishing market data updates etc.

Most of the stock trading application either equities or futures/options they are heavily relied on market data which they receive from various market data publishers e.g. Reuters , Bloom berg or Wombat but sometime format of market data is not something every application can directly consume so they have internal application which receives this stock prices and covert them into a format which every application can understand and here they publish market data in a tibco multicast topic say MARKETDATA.TSE.UPDATE and all application which needs can subscribe to this.

While Tibco EMS stands for Tibco Enterprise Messaging service and is based upon JMS specification which is provided by Sun MicroSystem. though other JMS implementation also available e.g. MQ Series.Tibco EMS is preferred choice for more reliable communication e.g. for sending and receiving Order and Execution data.
Tibco tutorial : Difference between Tibco EMS and Tibco RV중에서

다음은 AMQP입니다. 얼마전 국제표준이 되었습니다. 최초 JP Morgan이 시작하여 월스트리크의 지원받아서 표준이 되었습니다. AMQP를 지원하는 프로그램들이 많지만 RabbitMQ도 지원하는 제품중 하나입니다.

AMQP 1.0이란 무엇이며 왜 중요한가요?

일반적으로 메시지 지향 미들웨어 제품은 클라이언트 응용 프로그램과 브로커 간에 통신하는 데 소유 프로토콜을 사용했습니다. 일단 특정 공급업체의 메시징 브로커를 선택했으면 그 공급업체의 라이브러리를 사용하여 클라이언트 응용 프로그램을 해당 브로커에 연결해야 합니다. 이런 경우 응용 프로그램을 다른 제품에 이식하려면 연결되어 있는 모든 응용 프로그램에서 코드를 변경해야 하므로 해당 공급업체에 많이 의존하게 됩니다.

더구나 다른 공급업체의 메시징 브로커를 연결하는 것은 까다로우며, 일반적으로 한 시스템에서 다른 시스템으로 메시지를 이동하고 자신의 소유 메시지 형식을 변환하려면 응용 프로그램 수준의 브리징이 필요합니다. 이는 예를 들어 새 통합 인터페이스를 이전의 이종 시스템에 제공해야 하는 경우 또는 병합 후 IT 시스템을 통합하는 경우의 일반적인 요구 사항입니다.

소프트웨어 산업은 빠르게 변화하는 비즈니스입니다. 새 프로그래밍 언어 및 응용 프로그램 프레임워크는 종종 놀랄만한 속도로 도입됩니다. 마찬가지로 IT 시스템의 요구 사항은 점점 진화하고 개발자는 최신 플랫폼 기능을 이용하고 싶어합니다. 하지만 선택한 메시징 공급업체가 이러한 플랫폼을 지원하지 않기도 합니다. 메시징 프로토콜의 소유가 있기 때문에 이러한 새 플랫폼의 라이브러리를 다른 공급업체에서 사용할 수 없습니다. 따라서 메시징 제품을 계속 사용할 수 있도록 구축 게이트웨이 또는 브리지와 같은 방식을 사용해야 합니다.

AMQP(Advanced Message Queuing Protocol) 1.0은 이러한 문제로 인해 개발되었습니다. 대부분의 금융 서비스 기업처럼 메시지 지향 미들웨어를 많이 사용하는 JP Morgan Chase에서 시작되었습니다. 다른 언어, 프레임워크 및 운영 체제로 빌드된 구성 요소를 사용하며 다양한 공급업체의 최고 구성 요소를 모두 사용하는 메시지 기반 응용 프로그램을 만들 수 있는 개방형 표준 메시징 프로토콜을 만드는 것이 목표였습니다.
서비스 버스의 AMQP 1.0 지원

AMQP를 지원하는 RabbitMQ를 어떤 업무에 적용하였는지 궁금합니다만 확인할 길은 없네요. 다만 골드만삭스의 업무중 Erlang을 이용하는 경우도 있기때문에 매매와 관련한 프로그램을 구현할 때 사용할 듯 합니다. 예를 들어 특정한 상품데스크를 위한 매매시스템을 구현을 Erlang과 RabbitMQ를 이용하는 방식입니다.

그외 정형 및 비정형데이타가 중요해지고 빅데이타가 화두가 떠오르면서 Apache Kafak는 데이타분석시스템에 사용을 하고 있습니다. Real-Time Analytics Visualized w/ Kafka + Streamliner + MemSQL + ZoomData가 사례입니다.

또다른 사용한 예를 Symphony입니다. 일종의 기업용 실시간 메시징 어플리케이션입니다. Inside Symphony을 보면 기술구조를 아래와 같이 설명하고 있습니다.

Highly available distributed systems are complicated to get right. Given our existing preference for open source, it made sense to build the core infrastructure using open source software already deployed by other companies on their high volume websites. This way, our development efforts could focus on higher value areas specific to the financial industry. We selected Apache Kafka, Apache Solr, MongoDB and HBase due to their superior distributed nature, performance, reliability, and ability to scale to the volume of data generated by the expected workload. We built out the ReSTFUL web services layer in a stateless manner using Apache Tomcat, meaning capacity could be added linearly, by simply adding more boxes behind the load balancer.

4.
Kafka는 오픈소스입니다. 이외 오픈소스를 도입하여 프로젝트를 진행하는 경우가 많습니다. Spark를 도입하여 Data Lake를 만든 사례입니다.

Embracing Spark as the Scalable Data Analytics Platform for the Enterprise

Download (PDF, 829KB)

Goldman Sachs data lake을 보면 Data Lake를 구축할 때 Spark를 사용하였습니다. 아래를 보면 Data Lake를 구축하기 위해 도입한 기술구조입니다.

What technology are we using?

GS is building this infrastructure using open source components such as Hadoop, Spark, and Hive as well as commercial offerings and custom-developed software.

Data Lake가 어떤 의미인지를 설명하는 PWC의 The enterprise data lake: Better integration and deeper analytics입니다.

Download (PDF, 377KB)

또하는 ElasticSearch를 도입한 사례로써 How the Elastic Stack Changed Goldman Sachs입니다. 매매추적을 위한 검색시스템으로 사용하고 있습니다.

Download (PDF, 1.69MB)

Building a Private Cloud to Empower the Business at Goldman Sachs는 MongoDB를 이용하여 클라우드환경으로 데이타서비스플랫폼을 구축한 사례입니다.

5.
규모의 차이가 소프트웨어의 차이를 만들 수 있습니다. 그렇지만 원인은 보다 본질적인 곳에 있는 듯 합니다. 비즈니스환경이 바뀌고 이에 적극적으로 대응하기 위한 선택이었기 때문입니다. 여의도에서 IT의 역할이 무엇이어야할까요? 많은 이들의 고민이지만 정답은 없네요.

“우리 회사 인력 70%쯤이 밀레니얼 세대입니다. 더구나 파트너급도 11%는 밀레니얼 세대예요. 이 비율은 점점 더 올라갈 겁니다.”

세계 1위 투자은행 골드만삭스의 글로벌 인력관리 대표인 에디드 쿠퍼가 지난 연말 소셜네트워킹서비스(SNS) ‘링크드인’에 올린 글이다. 골드만삭스는 15~30세를 밀레니얼 세대라고 정의한다. 이들은 어릴 때부터 인터넷을 사용해 IT(정보기술)나 스마트폰 기기에 익숙하다. 밀레니얼 세대는 9200만명에 달해 X세대(36~50세·6100만명), 베이비붐세대(51~70세·7700만명)를 뛰어넘는 미국에서 가장 큰 인구 집단이 됐다.

쿠퍼의 말은 3만5000명 직원 중 2만4000명, 임원 대우 받는 500명 내외의 파트너 중 적어도 50명이 35세 이하라는 뜻이다. 충격이었다. 세계에서 가장 영향력 센 투자은행이 이렇게 젊다니.

인력 구성뿐 아니다. 고객도 밀레니얼 세대로 바뀌고 있다. 골드만삭스는 작년 4월 GS뱅크라는 인터넷은행을 만들었다. 예전엔 골드만삭스 고객이 되려면 적어도 1000만달러(약 120억원)를 가진 갑부여야 했다. 그런데 이젠 1달러 예금도 인터넷으로 받는다. 10월엔 마르커스닷컴이란 이름으로 인터넷 신용대출 사이트 문을 열었다. 데이터 분석으로 대출받을 만한 사람을 골라내 이메일을 보낸 후 대출하는 새로운 모델이다. 골드만삭스는 온라인 자산 관리 사이트 ‘어니스트 달러’, 인공지능 자료 분석 소프트웨어 회사 ‘켄쇼’ 등 금융과 기술을 결합하는 핀테크 기업들도 인수하고 있다.
[데스크에서] ‘IT 회사’ 골드만삭스중에서

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.