ULTIMATE GUIDES

The Ultimate Guide to Thriving in Data Science: Software Engineer

November 15, 2017

Building on chapter one of Citadel’s Ultimate Guide to Thriving in Data Science, chapter two dives into how data scientists can have meaningful careers in software engineering roles – our most proficient coders and computer science experts whose work is inextricably linked with the investment decisions we make every day. We lean on our engineers to develop and maintain state-of-the-art software, an integral pair to our disciplined investment processes. Read on for tips on what makes a great software engineer and to find out if you would excel as a software engineer in the financial services industry.

A Day in the Life of a Software Engineer

As a software engineer at Citadel, you’ll have the opportunity to deploy code faster than you might in other industries. If quantitative researchers make maps of the financial markets, than software engineers build tools for us to explore the markets. You’ll listen closely to traders, quantitative researchers, and others to understand the challenges at hand. You’ll then outline an elegant solution that will elicit quick feedback. With this feedback, you’ll develop tools and technology to bring trading strategies to market.

However, builders do not develop something and then just sit back. They continuously optimize the solutions. As Rahul Bhatia, a Fundamental Data Analytics Engineer at Citadel, says, “software engineers need to develop relationships that garner open and honest feedback. If quantitative researchers aim to get to the mathematical core, we aim to get to the technological core – enabling teams to optimize performance and efficiency.” At Citadel, you’ll set a standard of excellence by pushing a solution forward each and every day.

Hard Skills – The Essentials

At any firm, a software engineer must have a high level of proficiency with programming languages, mathematics and technology.  This rings equally true at Citadel.  Here are some of the skills we look for in our software engineers:

  • A deep passion for technology and software development
  • Experience with some of the following: distributed computing, natural language processing, machine learning, platform development, networking, system design, and/or web development
  • Strong understanding of computer science, algorithms, and mathematical modeling
  • Proficiency with one or more programming languages: Python, Linux, Perl, JavaScript, C, C++, C#, and R

Soft Skills – Tricks of the Trade / Pro Tips

What often separates software engineers, in our industry, is a passion for understanding the markets. Here are some ways that software engineers cultivate their passion and pair it with their hard skills to set themselves up for success.

Ability to solicit feedback

In all positions, but particularly as a software engineer, the ability to communicate effectively with traders, quantitative researchers, data analysts, and others is imperative.  A good engineer must determine the needs of others, evaluate the software, and identify areas for improvement. They need to obtain feedback that can be acted upon quickly and re-work the product, if necessary.

You’ll also be working closely with business leaders to develop and deliver custom software solutions. At a hedge fund, software engineers have to understand the entire process – from initial research, to digesting the data, to executing a trade. If you communicate with the quants and traders to understand how the different pieces of the puzzle come together, you’ll obtain the best results possible.

Desire to take ownership of your work

At Citadel, you will have a level of autonomy as a software engineer that you might not find in other industries.  You will have significant input into your goals and see your own projects through from start to finish.  This will give you a level of control over your own destiny that you won’t find at many other companies.  “As I started my career, it was important for me to own projects and my future potential,” said Rahul. “The ability to work in an industry that seeks to understand the fast moving markets, specifically at Citadel, has allowed me to have control over my career trajectory.” 

Advice

As a software engineer, you should be inquisitive and prepared to learn on the fly, especially during your first two years.  You must develop a thirst for knowledge and experience, and seek to acquire information that goes deeper than the surface-level. Rahul emphasizes the importance of an inquisitive mind: “I’d recommend focusing on nurturing a relentless sense of curiosity. Curiosity is what has continually pushed me to look beneath the surface for the solutions to complex problems.”

“Curiosity is what has continually pushed me to look beneath the surface for the solutions to complex problems.”

A great way to gain this deeper understanding is to utilize your colleagues and your resources. Look to existing colleagues who have confronted similar challenges or worked on similar projects for precedent on how to go about navigating difficult situations and solving tough problems.  Lindsay Martens, Co-Head of Campus Recruiting at Citadel, explains that you cannot be afraid to ask questions and seek advice. She’s observed, “there’s a temptation to try build a solution all on your own. However, the most successful software engineers are those who consistently look to others for input on alternative approaches to a challenge and, subsequently, reinvent their solutions and themselves. ”

The best way to differentiate yourself as a software engineer is to demonstrate initiative and passion in the projects you’re leading.  Those who aim to develop next generation technology solutions to better understand the markets should use their passion to push through the inevitable times when confronted with obstacles.

The Citadel Approach

At Citadel, you will have the opportunity to develop mentoring relationships with a number of team members. Our approach to mentoring is rooted in our organizational design, where you tend to work with smaller, pod-like teams that provide a unique learning experience and support structure for the team. Because of this structure, you learn from both people who are more senior as well as your peers on your team and in other disciplines. We also offer a Software Engineering Rotation Program, where you are able to spend time in several different roles throughout the firm to learn where your passions lies.

“You are constantly being challenged with new and unique problems and are able to see the results immediately.”

We also seek to ensure that you work on a variety of projects. Needless to say, no two days are the same.  As Rahul has experienced, “in some industries, your goals will span the course of months or years. At Citadel, my goals often can be reached today. We then set new goals tomorrow.” Because you get to set new goals every day, you are afforded the unique opportunity to own your work and lead the projects you work on.

Furthermore, due to the nature of the industry, there is a quick feedback loop that enables you to learn and develop your skills rapidly. As a result, you will experience an unrivaled time between ideation to production.