Q&A: From Pizza Delivery to Quantitative Research/Data Science/Programming

What is going on, everybody? I have been a lurker on WSO for a while and thought I would share a story with you. Here goes nothing... I worked full-time and went to school full-time pretty much all throughout school. Knowing I didn't want to deliver pizza for the rest of my life, I worked overclock for about 6 months as an unpaid intern at a private wealth management firm. That opened up a couple paid internships, which led to some full-time positions. Seems like a lifetime ago......a few steps later, I am now working a dream job on a trading floor doing quantitative research/data science/programming/automation. I taught myself how to program (varying proficiency in 5 languages), and have an undergrad degree from a "non-target". I would be remiss not to give a very special shout out to WSO's resume service. I never realized how bad in-shape my resume was until a trained eye looked at it. The quality of feedback I received was thorough and actionable. I can safely say that it was a big help for me getting my foot in the door from out of the industry. I know that for some of you in school/recent grads, $200 is a lot. I would still recommend the service; anecdotally, the ROI for me was substantial. Worth it. Q&A about my experience w/ WSO's resume service, if you have any programming, interviewing, recruiting questions, whatever. Cheers..

 

Can you describe the intermediate steps that led to your current position? And since this is a dream job, what do things look like in the medium-run, planning to stay the course/move up in your current group or is there another goal?

Currently, I have no strong desire to move out of credit risk as I really enjoy it and think it's a good fit for me. At the same time, I always like to hear other people's stories about how they got to where they are in the quant space.

 

At its core, programming was the catalyst. As my skill sets developed, the types of professional roles I became eligible for morphed.

It all began by first learning which tools were most commonly used and learned them. Programming has a very low barrier to entry - anybody can become proficient with a computer and internet access. I would spend weekends watching tutorials, building cool stuff, etc.

For me, I first became interested in programming after learning VBA; it turned into a mechanism for me to increase productivity. This led to an interest in SQL, because the quality of any type of analysis is directly influenced by the quality of data available. After learning rudimentary SQL commands, I became more acclimated with how data is generated, the roles DBAs play, improving schema, etc. Improving the quality of analysis was supported by learning Python and R, which then led to an interest in other toolsets like C++and .NET to implement full stacks. Learning R, in particular, led to an interest in statistics, which compliments my current role.

Regarding next steps, I plan to stay course and move up in my current group. More client interactions, etc... At this point, I don't have interest making moves...despite the increase in recruiting offers!

 

That is very inspiring. I am a computer scientist at heart and in my spare time I find myself learning a lot about data science and machine learning. These technologies will be extremely important in the near future for everyone in the finance career!

Cheers my friend

 
  • Are you using in-house packages/libraries or is your firm using public ones?

  • do you use econometrics for your research, specifically Time-Series analysis?

  • at what level can you consider yourself proficient or have a professional grasp of a programming language?

  • Could you describe your skill level? are you mostly familiar with the packages/libraries and how to use them and their equivalents in different languages or is your skill level more like having a good grasp of syntax and algorithms & data structures? such would you be able to implement a sorting algorithm or a linked list without assistance from a library?

  • What are you using R & Python for and how are the tasks divided?

  • What task occupies most of your time? pulling and cleaning data or coming up with good research topics?

  • What's the highest level math course you have taken?

Thanks!

EDIT: What was your previous work experience and do you think people can network themselves in getting a job the quant research industry?

 
  1. It is important to pay attention to the licensing of publicly available packages. Some of them are not allowed for commercial redistribution, so in certain cases, you will need to develop in-house packages.

  2. Yes, time-series analysis is critical. Econometric modeling is useful for research, but mileage may vary depending on which group you are under.

  3. Good question, though the answer is invariably subjective. If I were to generalize, you should be able to write a program start to finish free-form with little to no help to be effective. Speed matters. Technology is constantly developing; it is not enough to be proficient but to stay abreast with new topics, innovations, versions, etc. There is always something new to learn and something new coming out.

  4. Strong facility of packages, syntax, data structures and able to implement linked lists or sorting algorithms without packages in C++.

  5. I will not speak to how my firm manages their tasks. I will say that implementing a solution stack that concurrently draws on multiple programming languages is incredibly valuable to anybody interested in the field like yourself.

  6. If the data needed is ad-hoc, quickly building out a reliable mechanism to pull the data and cleaning it up (with emphasis on the latter) can be a real stickler. Especially if there are a lot of inconsistencies with the underlying source. Financial data is generally already clean, so that is not too much of a pain point.

  7. Calculus and statistics.

  8. You can network, meetup is a great way do so. Networking may be what gets you the interview, but your ability to apply skills in a real-world setting will get you the job.

 

Linked Lists are the gateway to the serious stuff. When you can implement them from scratch you realize the depth of C++.

Kudos to you and I wish you all the best.

"The markets are always changing , and they are always the same."
 

Not OP but I have a similar role on a trading floor, and I'm self-taught, at least insofar as the primary language I use at work. Assuming you already have some basic competency in programming in general, I would recommend picking a language you want to learn and then start doing project Euler problems using that language. The beauty is that the problems start out pretty simple and then gradually increase in complexity, along with your coding skills.

 

Hey thanks for doing this.

So when you say you learned off of tutorials; how did you practice your coding on your own to improve it? Can I find ways to practice online? Or do you just try and do a project (I'm a beginner in Java)

Also, in your role in quant research, would you say that a PhD is typical? Say if I wanted to break into quantitative investment management, what are the different roles within a team, and do the more quant roles require a PhD or masters?

Thanks

 

My pleasure.

I am a proponent of structured courses from providers like Udemy and similar. I found the follow-along-as-you-watch models to work best for me. It is helpful to have a human describe some of the nuances while getting in the weeds. This may be a good way for you to get your feet wet. This will also give some context to real-world applications of what you are learning. After that, grab a book that goes through the fundamentals. I have used and enjoyed O'Reilly books. Going cover to cover will let develop a solid foundation. It is just like math - you won't jump into calculus without having a sound base in algebra and trigonometry. Throughout this whole process, if you have an idea, try it out. Build stuff, see if it breaks, find out why if it did, figure out how to fix it and repeat.

Re your second question, PhDs are common. Anecdotally, most of the folks in my group have PhDs. Those who do not have a Masters. I am the odd one out. I do not want to generalize because there are simply too many factors and different firms look for different things. If you want to stack the odds in your favor, programming helps.

 

Start with Python primarily and MATLAB secondary. Python has more real world application in most firms, and is much easier than C++, which is usually demanded more frequently. Once you master the concepts in Python, it becomes easier to code in C++. Though tbh, I actually went the other way round and learnt my Python from C++.

MATLAB, on the other hand, is only useful if you have zero experience in programming. It's the easiest of the lot, very user friendly, but also very less real-world application.

GoldenCinderblock: "I keep spending all my money on exotic fish so my armor sucks. Is it possible to romance multiple females? I got with the blue chick so far but I am also interested in the electronic chick and the face mask chick."
 

Great thread, thanks for doing this.

I'm in a similar situation to where you were myself, I did something perhaps a bit stupid and started with C++...it's going alright but it's challenging. If I wanted to target 2 other languages to pick up alongside that, which would you recommend? I've been thinking about Python and SQL, since I've made a stab at those before but didn't go far.

My other question is this, and I get quite a few varying answers. Some have told me that being self-taught or taking online courses isn't enough, as you're always going to be competing against PhDs and people with master's degrees. Obviously that wasn't the case with you, and I personally have met people that have made it without following the strict formal path. What's your opinion on that? I guess a better question would be, how did you show off your expertise on your resume? How did you stand out without a formal education or background in this sort of thing? It's intimidating knowing there's people with PhDs from elite schools in quantitative fields that you're competing against for jobs, especially in the trading industry, hard to stay motivated but I suppose that's the difference between being successful and not so much.

"When you stop striving for perfection, you might as well be dead."
 

Any time.

C++ is great a great language to have in the toolkit. I think your list is good but what do you want to do with programming? Your answer may shape what to look for. SQL is pretty rudimentary and disproportionately useful to the effort it takes to learn. So I would suggest starting there before Python. I suggest learning SQL first then Python second because you will be able to stack SQL onto your Python and C++ tasks. Powerful triage there. If you can master those three, you are set. If you're going to be using Excel a lot maybe consider VBA. Are you interested in a specific firm? I know some manage all their workflow in a single language, sometimes highly esoteric.

I agree with the sentiment that being self-taught is not enough. You need to send signals. What other signals are you sending? I built apps in my free time; shareable content to prove I was better than others. You should be good at math. If you are not, you can change that. It will only cost time. Also, can any of your work responsibilities be used as a signal? If not, how can you change that?

 

My ideal career is seemingly similar to what you do - researching data for generating trading signals and building algorithms to take advantage of them. I'm a long way away from that right now, I guess, but that's where I'd like to be.

Thanks for the advice on SQL, seems like it's not as hard as I first thought, certainly can't be worse than C++.

Ironically I'd say my Excel skills are weakest, VBA would be good I suppose if only because you may need to use at some point for something, although I sort of figured if I had C++, Python & SQL down to a reasonable extent it might be a good-enough stand-in, I assume I could pick it up pretty easily if I had experience with the other 3.

Specific firm I haven't thought of, as it seems it might be hard to try to target. I know some use slightly less common languages for much of their work, but it seems on average Python, C++ and SQL will cover something at almost all of them, or at least be a good jumping-off point from which you can start to learn others.

My work experience is all non-finance currently, although not for lack of trying. Some operations experience however. Not sure any of it will translate. Basically I'm assuming that all the work I do going forward will be to "make up" for the lack of work experience so far in that area and a rather lightweight educational background in all these subjects. Math skills are ok through calculus, but I should really sharpen those up again. I did a pretty intensive calc review a couple years ago but it might be time to push farther.

I suppose my biggest question would be "what sort of signals to send" and how to best go about that? I assume building my own projects in my free time is probably the best way to this? Tying into that, how much do you have to do before you have enough to at least toss your hat into the ring and expect to get an interview? And how long should that process be expected to take? I suppose I could ask how long it took you, roughly.

I should point out the C++ course I'm currently taking is actually an online course through a university with a highly respected MFE program, so I'm hoping it at least counts for something on my resume. They also offer courses in Python, VBA & SQL so I've considered those next...a lot of money and it hurts to think of paying that much for stuff you can learn for free...but having that piece of paper that proves you did it is probably worth the cost, I would think

"When you stop striving for perfection, you might as well be dead."
 

Curious about the software side here:

-As a researcher, do you make a conscious effort to have clear, maintainable code or are you cool with just throwing down spaghetti code to get results as quick out the door as you can? Is the programming you do mainly for yourself or for others as well?

-Do you use tools typical software engineers would use (Git, Bash, etc.) and stuff like Agile or is the code you write for personal use? (sort of the same as the above question I guess)

-How well do you have to know your data structures/algos? Again is that mainly for the software guys while you can focus on backtesting and data and less of the execution/implementation?

-Depth vs breath in skillset - is it better to be adept across the board (scripting language, programming language, web dev, databases) or just be fluent in one or two languages?

-Is it more important for you to be fluent in the nuances of a given language (e.g. Python, C++) or to be a holistic software person (program design, modular code, etc.) in general? Guessing it's the former but you never know...

-And I guess the golden question: how good at programming do you actually need to be? Good enough to just implement your mathematical ideas or good enough to able to be a dedicated technologist if you wanted to?

Sorry for the list of questions! Just always been curious so figured I'd ask.

 

Some scattered thoughts here:

Being able to write maintainable code is paramount to success in the field of quant research, in my opinion. Without the ability to cleanly reproduce results, review your teammates' code for correctness, or share tools and libraries across researchers and analyses, you will be that much less confident in the correctness of a signal or strategy. Yes, this means using a proper version control system, but it also means thinking about your research environment as an engineer would.

In my experience, the world of quant is akin to death by a thousand paper cuts. Software is inherently buggy. There can be any number of mistakes, typos, and unknown edge cases floating around your firm's codebase, from signal research to portfolio generation to trade execution. And these mistakes will lower your returns in the same way that a poor transaction cost model would. Now you might not be responsible for parts of the stack that your in-house engineering team touches (most likely data ingestion, backtesting, and execution), but you'd better be damn sure that you've implemented your strategies correctly. And the best way to do this is to adopt the mindset and skillset of a software engineer.

Sure, being a strong programmer can give you more conviction in your strategies. But it can also help you move faster. Not only can you write more efficient code, but a sufficiently strong programmer will make reusable libraries for herself whenever the same function or pattern seems to be used multiple times. Doing this requires a small upfront time investment that will save you time later. And if you can move faster and safer, that's like going up and to the left on a risk-return chart---a strictly dominant move.

If you're a quant at an established firm like a Two Sigma, you definitely don't need to be a dedicated technologist. These firms have tons of engineers that are experts at their particular role. But it doesn't hurt to be one, either. And if you're at a smaller shop, it can really, really help.

 

I saw that you touched on this a bit already, but did you have any trouble interviewing for quant positions without an educational background in CS or stats or whatever? I know most quant shops want at least a masters and prefer a PhD, so how did you even land an interview/get past the filter? And then what was the interview like? Was there a case/modeling test or whatever the quant version of that is?

Anyway congrats dude, now you just need to buy 2000 books to put in your garage next to your new lamborghini.

 

Velit velit dolore deserunt. Eligendi error et doloribus ipsa quis et. Occaecati autem ut harum maxime accusamus neque.

 

Pariatur consectetur magni doloremque. Iste vero perspiciatis molestiae nam minima ut ipsam. Et distinctio qui voluptatibus quas voluptatum.

Ea pariatur qui unde qui est esse. Aut odio eum perferendis porro aspernatur sapiente. Et ea autem quas consequuntur odio odio.

Voluptatum neque et omnis vel perspiciatis. Eius voluptates omnis recusandae velit quisquam expedita laborum. Explicabo autem sed voluptatem aliquam saepe ut.

Career Advancement Opportunities

March 2024 Investment Banking

  • Jefferies & Company 02 99.4%
  • Goldman Sachs 19 98.8%
  • Harris Williams & Co. (++) 98.3%
  • Lazard Freres 02 97.7%
  • JPMorgan Chase 03 97.1%

Overall Employee Satisfaction

March 2024 Investment Banking

  • Harris Williams & Co. 18 99.4%
  • JPMorgan Chase 10 98.8%
  • Lazard Freres 05 98.3%
  • Morgan Stanley 07 97.7%
  • William Blair 03 97.1%

Professional Growth Opportunities

March 2024 Investment Banking

  • Lazard Freres 01 99.4%
  • Jefferies & Company 02 98.8%
  • Goldman Sachs 17 98.3%
  • Moelis & Company 07 97.7%
  • JPMorgan Chase 05 97.1%

Total Avg Compensation

March 2024 Investment Banking

  • Director/MD (5) $648
  • Vice President (19) $385
  • Associates (85) $262
  • 3rd+ Year Analyst (13) $181
  • Intern/Summer Associate (33) $170
  • 2nd Year Analyst (65) $168
  • 1st Year Analyst (198) $159
  • Intern/Summer Analyst (143) $101
notes
16 IB Interviews Notes

“... there’s no excuse to not take advantage of the resources out there available to you. Best value for your $ are the...”

Leaderboard

1
redever's picture
redever
99.2
2
BankonBanking's picture
BankonBanking
99.0
3
Betsy Massar's picture
Betsy Massar
99.0
4
kanon's picture
kanon
98.9
5
Secyh62's picture
Secyh62
98.9
6
dosk17's picture
dosk17
98.9
7
CompBanker's picture
CompBanker
98.9
8
GameTheory's picture
GameTheory
98.9
9
bolo up's picture
bolo up
98.8
10
DrApeman's picture
DrApeman
98.8
success
From 10 rejections to 1 dream investment banking internship

“... I believe it was the single biggest reason why I ended up with an offer...”