Bloomberg CTO’s vision of an ideal engineer: Engineering students should study not only math, but also literature

This article was originally published in Gaishi Shukatsu, link to original publication (in Japanese).

Bloomberg is a global financial information company. The company reports and disseminates real-time news and information that is critical to the business world, and its information processing technologies have played an important role in maintaining it’s competitive advantage in this area. According to Bloomberg’s Chief Technology Officer Shawn Edwards, “in contrast to an investment bank, programmers can be stars at this company.” Edwards is responsible for Bloomberg’s technology strategy, and we spoke to him about topics including the ideal engineer that Bloomberg is looking for during his recent visit to Japan.

Shawn Edwards, Bloomberg’s Chief Technology Officer

Company where the programmers are the stars

Please tell us about your career background up until now.

Edwards: I received a bachelor’s degree and master’s degree in electrical engineering from Columbia University in New York.  While I originally worked at IBM in the field of hardware, including computer circuit design, I decided to go into software after learning of the joy of software development at my university. I joined a company that creates CAD systems for circuit designers, and four years later I went to work at the investment bank Bear Stearns.

Four years later, in 2003, I joined Bloomberg. This career change was encouraged by the enthusiasm of former colleagues of mine who had gone to Bloomberg ahead of me. While I wasn’t really on board at first, I was deeply impressed by the interview at Bloomberg. What I mean by this is that while the traders are the stars at investment banks, I learned that programmers can be stars at Bloomberg because it is a financial information technology company. I was really excited and blown away by this.

After starting off as a programmer and the passing of 14 years, you are now Bloomberg’s CTO. Can you tell us more about what your job entails?
Edwards: I have two main responsibilities. One of my roles is to lead our team of researchers who are looking into advanced technologies and strategically considering what kind of technological approaches should be adopted. We build such projects in cooperation with universities, companies, the open-source software community and other organizations.

My other responsibility is serving as a product manager for Bloomberg’s core infrastructure. Bloomberg has nearly 5,000 developers. While my team is not that large, we conduct work in conjunction with those engineers on product development.

Cooperation with universities that are strong in information technology around the world

While there are various types of advanced technologies, such as artificial intelligence (AI), VR and robots, what kind of technologies would Bloomberg like to incorporate and develop?
Edwards: AI is one of them. We have invested quite large amount of time, money and energy in building up our AI capabilities. The head of our data science group is an expert in natural language processing who originally worked at Google. We’ve been hiring many experts in this field and engineers that work with them.

In addition, we also provide funding to universities around the world that are active in data science research, including Columbia University, Cornell University, Stanford University and Edinburgh University. We also provide scholarships for the University of Delhi in India as part of efforts to foster deeper partnerships with universities. We’ve already built many products using machine learning.

For example, what kind of products?
Edwards: One example is Twitter sentiment analysis corresponding to fluctuations in company stock prices. We conduct the sentiment analysis of a large number of tweets in real time to see if they are positive, negative or neutral. Then, we score each of those tweets to decide whether if it is a good or bad news for the company. Twitter plays an important role in the financial markets. AI is being used to analyze these trends in real time.

You mentioned that Bloomberg also cooperates with the open source community. What kind of open source software does Bloomberg use?
Edwards: Several years ago we started looking at open source software for our fundamental systems. We use open source software for some of our most important, large scale systems. Examples include the Lucene/Solr search engine and Hadoop/Spark distributed database.

How is Bloomberg cooperating with the open-source software community?
Edwards: For example, low latency is extremely important for Bloomberg’s systems.  We provide knowledge on technologies for achieving low latency to the open-source software community. In addition, we have provided funding for several projects.

Furthermore, we have published some internal projects well. For example, code was released through GitHub for a project called bqplot. This bqplot project is a library that enables data visualization. An interactive data map can be generated by just writing a few lines of simple Python code.

What is the aim of releasing source code to the open source community?
Edwards: We do it because we would like to contribute to the community. Being able to give something back to the open source community is a major motivation for Bloomberg employees as well. Many of our engineers do it because they think it is the right thing to do.

Engineers have a strong sense of curiosity

What is the career path like for engineers at Bloomberg?
Edwards: New graduate engineers learn about our technology in three-month training. In addition, they learn about the markets, financial theory and our clients. They are then assigned to a team that creates infrastructure and applications.

After that, engineers can select from several career paths. One option is becoming an expert in technology on a career path to become a technology or architecture senior staff member. The second option is a management position, such as a team leader or manager. This means becoming a mentor and providing direction for other team members. Another less common option is transferring to another department and becoming a product manager.

What kind of qualities are sought when hiring young engineer candidates?
Edwards: It’s hard to say because we hire for several different jobs and areas and they have different requirements for the expertise that they are looking for. However, in general, for students coming out of a college, we are looking for them to possess an understanding of the fundamentals of computer science. Candidates need not only have knowledge related to computers, but also be able to build out programs.

Will the candidates be asked to demonstrate their ability to code a program in the screening process?
Edwards: When hiring new graduates, we ask candidates to demonstrate their coding skills online before the interview, and also to write code on a whiteboard during interviews. Pseudocode is normally used. We look at how they think to solve a given problem.

Rather than checking whether it is possible to implement a specific feature, we check the overall knowledge of candidates — for example, their knowledge of basic software structure and how they would write an algorithm.

For some specialized positions, we focus on whether they have knowledge in a specific field. If we are hiring for our machine learning team, knowledge of artificial intelligence and Bayesian statistical analysis will be required. In addition, in the field of financial engineering, it is more important to have a financial background than just computer science.

In closing, do you have any advice for students who want to become engineers?
Edwards: Be very curious and take chances. Very importantly, be well-rounded and do not just learn programming. You have to learn about literature and communication, not only math and science.

In addition, it is extremely important for agile teams to be able to accurately communicate their ideas to achieve rapid development as part of a team. If you are not able to effectively communicate ideas to other team members, you will not be able to convince them and work cannot get done. I want engineers to be aware of this point.