Tag Archives: job interview

This prop shop offered easiest C# and C++ job interview to launch my Quant career

This prop shop offered easiest C# and C++ job interview to launch my Quant career
I just did a second interview at a fairly small proprietary shop (also known as a prop shop) with six traders and two info tech guys. It seems fairly easy to as they interview were general question about my programming capabilities. This included what I put on my resume but it was not a detailed as other interviews by Bloomberg or Morgan Stanley. They were very general questions but not too technical.
The one thing I like about these kinds of companies is they do not ask highly detailed questions like virtual constructors and other C++ detailed questions. They just wanted to know my thoughts on general experience of Java or order entry systems I wrote. Of course, I listed FIX messaging system which I contributed to a project I was in the past. This included an internally built trading system built in C# and Visual C++. They are obviously a Microsoft .NET which is completely fine by me. It seems Microsoft .NET technologies are bouncing back.
Anyhow, this company has built their own servers, trading platform, and complete messaging system with their own FIX implementation. I can only say WOW as this company did not go with any third party vendor like Imagine (from Bank of Montreal).
As you can tell, you will never gain this knowledge as quickly as compared to a larger investment bank, bulge bracket, or hedge fund. I do believe I posted this before at
http://cashforlifetv.com/blog/index.php/2010/07/25/why-small-proprietary-shops-prop-shops-are-better-fit-for-a-wanna-be-quant-analysts-and-quant-developer-like-me/
As you for a career in quant, you might consider wanting to start out in a small prop shop. As said, it seems more relaxed, less pressure, and casually dressed. As you advance in your career, start considering the mid level players in industry.
I thought I would just put it out there.

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Know your data structures, algorithms, design patterns and test case uses for any technical job interview!!

Know your data structures, algorithms, design patterns and test case uses for any technical job interview!!
This might not be quant related but if you are applying for any development type roles (name me a quant based position that is not), ensure you know the notes below.
Let me stress this (once again right), know these topics really well. I have done at least seven interviews which involve one hundred percent rate of design patterns. I was kind of dumbfounded on the level of detail interviewers go into on this. There are some great resources out there but it might be wise to pick up a copy of Gang of Four in Design Patterns. This seems to be to the bible in this arena. They also started the concept of this.
We were all taught data structures in our early years of computer science courses. You need to know these areas well too. Understood the logic and reasoning of why these data structures are used. Focus on the basic ones including stack, heap, singly and double linked list, binary search tree, and even graphs. Also understand the concept of the Big O algorithms which involved time and space complexity. A great site to learn this from is algolist.net. It has some great tutorials to have you understand this data structures with code snippets in both Java and C++.
Let’s get into the less talked about algorithms. Depending on the type of company you are applying to, I would recommend to learn the basics including Fibonacci, prime, factorial, and all the basic sorting algorithms. These include your typical sorting like bubble, selection, insertion, merge, and quick sort. Again know the time complexity of each sorting algorithm. A good explanation of this is found at Wikipedia.
Regardless of what level of position you are applying, be expected to answer questions on these above concepts. You should consider emphasizing your knowledge in design patterns if you are going for a senior role or even architect level.

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Is this the best advice for any technical review or job interview including Bloomberg or Morgan Stanley?

Is this the best advice for any technical review or job interview including Bloomberg or Morgan Stanley?
This is from a recruiter working on this interview. I do believe it is the best advise I ever received for these technical review.

Make sure you are in an area that will allow you to concentrate and with no distractions. It’s good to have pen/paper available to help with answering any questions or make any notes. Maybe a glass of water too! Remember, since this is a phone interview, they must rely on your communication (with no non-verbal communication on the phone!) – speak clearly and be in an area where you won’t have to speak quietly! Your voice is important!

This will be a technical discussion, they will review areas that are involved in this role from the job description as well as possibly explore other areas to gain a greater perspective of your depth as well as your breadth of experience. You should also be knowledgeable about the info on your resume and you may be asked about areas that you indicated experience with. It may help to have a copy of your resume in front of you.

They don’t tend to ask ‘trick’ questions but pertinent questions relating to the role – fairly straight forward. They are likely to focus less on your background and more on your technical capabilities/knowledge. They may explore your breadth of experience and ask questions about areas that you may not have as much exposure to. They will include coding questions in which case having a pen/pencil and paper to help in providing the answer will be useful. In addition to possible coding questions another big component for them is ‘critical thinking’ and problem solving. For example, being able to respond to open ended problems with particular constraints that require quick, efficient solutions. They aren’t just looking for a great coder but a high caliber thinker and problem solver!

As they have said, they are seeking people who know C/C++, strong basic fundamentals – low level fundamentals. As I mentioned above, it’s not just coders but they seek people who are ‘ultra technologists’ – have a passion and curiosity for technology. And, if there are areas where you aren’t familiar or experienced, having the interest in desire to know and learn. At times, they’ve interviewed people who say ‘I don’t know that’ but seem to have no interest in knowing. They want to see excitement and interest in technology and the opportunity to be a part of the group at Bloomberg. They really look for extraordinary people – they have a high standard and don’t deviate from this standard!

• Know the job description. Read it and review it – understand what they are asking, needing and creating.
• In all of the C++ positions they look for low level knowledge “under the hood”.
• These roles are core positions in Infrastructure and developers need to know not just how and what but “why” – what precedes the end result. What is the code doing, affecting-possibly in regard to memory, CPU as well as what the data represents.
• They have high performance applications – as I mentioned, they are seeking a breadth and depth of knowledge.
• They are not looking for someone who reads an answer off a Google search but has the knowledge and the capability to pick it up areas that you don’t know.
• They will want to know why and do you have a mental picture of why something is the right answer and the reasoning behind it
• They look when you answer not just for the correct answer and reasoning behind it but the thought process, the decisions you have made in your career-roles you took on.
• The questions will also cover ground you probably experienced in C++ 1st semester – basic algorithms and data structures

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Top 2 sites for Bloomberg C++ job interview related questions are Glassdoor and Career Cup

Top 2 sites for Bloomberg C++ job interview related questions are Glassdoor and Career Cup

Examples from both are below:

http://www.glassdoor.com/Interview/Bloomberg-L-P-Interview-RVW339947.htm
Interviewed Nov 2009 in New York, NY (took a day)
It seems there were three guys at the other end of the phone line. Mostly they asked advanced questions about C++, one third of the quesitons are related to STL ( containers, iterators, and algorithms). They also asked a couple of questions about SQL.
Interview Questions
how does a reference counting smart pointger work?
View Answers (1)
implicit join
Answer Question

——–
http://www.glassdoor.com/Interview/Bloomberg-L-P-Financial-Software-Developer-Interview-Questions-EI_IE3096.0,13_KO14,42.htm
Interviewed Apr 2010 in New York, NY (took 4+ weeks)
First I had to do an online Java test. Then I got a phone interview. The basic questions were about Java, C++, C, Unix, Data Structures and brain teaseres. Be prepared to on the general common topics for C++, JAVA and C as templates, exception handling, polymorphism, inheritance. You must be able to explain everything in details and to show a thorough understanding of the concepts.

Question:
A frog is at the bottom of a 30 meter well. Each day he summons enough energy for one 3 meter leap up the well. Exhausted, he then hangs there for the rest of the day. At night, while he is asleep, he slips 2 meters backwards. How many days does it take him to escape from the well?
Interview Questions
A frog is at the bottom of a 30 meter well. Each day he summons enough energy for one 3 meter leap up the well. Exhausted, he then hangs there for the rest of the day. At night, while he is asleep, he slips 2 meters backwards. How many days does it take him to escape from the well?
View Answers (18)
Interviewed May 2010 in New York, NY (took 2+ weeks)
For the moment, the process is on going. Previous posts cover pretty much what’s in it. Online skills exams. Mostly logical and comprehension testing. The response for a phone interview came in soon after. This one was a bit tougher. Charades, some coding and details that go back to the basics.

———————
Interviewed May 2010 in New York, NY (took 4+ weeks)
After applying, I was contacted by Bloomberg R&D recruitment to take an online technical assessment. It consisted of logic/IQ kind of questions, nothing too hard. I don’t have a clear cut computer science background so I was happy to take this and not a test on a specific language. About 2 hours after I took the test, I got an email asking me to set up a technical phone interview. The phone interview was really nice, some difficult questions (especially since I’m a little rusty with C), but the interviewer was really nice, not intimidating at all. He asked me about my experience with C/C++ and some coding questions specifically about search algorithms. I have a lot of experience with numerical methods so this wasn’t too bad. I also got asked a really easy probability question. I was up front and said my experience with C/C++ is limited but I’ve worked extensively with MATLAB (which is a kind of a lazy C). The phone interview really goes the direction that you take. I think they just want to see your thought process and how you work out problems. I didn’t get everything right and I admitted when I didn’t know something. Even though the interview was supposed to be 45 min, it lasted over an hour. I figured that was a good sign b/c he wouldn’t waste his time on me.

Two days after the phone interview, they invited me for an on-site interview at their NY office. I’ve been informed that it’s supposed to last 2 hours. The interview is in a couple weeks. I’m thinking that it will consist of technical and HR-type questions.
Interview Questions
What are your favorite coding features about C/C++?
Answer Question
How would you form an index for a book? i.e. finding the words specified, ordering the page numbers per word (needed to discuss data structures a bit)
Answer Question
—————————-
Interviewed Apr 2010 in New York, NY (took 3 days)
I applied the Bloomberg Financial Software Developer position about a month ago. Then a month after I got a email from the HR asking me to do a online technical assessment where I can choose my preferred language from C/C++/Java2/C#. I chose C++ and did the test today. Two hours later I received an invitation for a phone interview from Bloomberg. The difficulty of the test, well, I would say, moderate. There are some tricky questions and also some STL questions(which I suck at :-(). But if you spend some time on books like C++ Primer or the online C++ FAQ Lite, it would be not difficult. I am waiting for the phone interview next week. Will update then.
Interview Questions
What is polymorphism?
Answer Question

more from career cup:
ekinrf’s Interview with Bloomberg LP
Bloomberg LP Interview Question for Financial Software Developers about Algorithm
ekinrf on June 04, 2010

Find the first unique number in an array of char.
8
[Full Interview Report]

Read Question »
Question #2984753 (Report Dup) | Edit
Bloomberg LP Interview Question for Financial Software Developers about Algorithm
ekinrf on June 04, 2010

Reverse an array of char in place.
4
[Full Interview Report]
– Show quoted text –

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

C++ Job interview questions: Points on different exceptions, types of memory, and proper class styles for exceptions

C++ Job interview questions: Points on different exceptions, types of memory, and proper class styles for exceptions

This will be the last of my C++ job interview helpers. Do expect to find some on Java but that will be the end of it. I will start focusing on the tools used in Quant as well as moving into find trading strategies for nice profits to gain from.
In this last piece, you will find some points on different exceptions, types of memory, and proper class styles for exceptions. Again, a lot of this was sourced from Herb Sutter’s Execptional C++. I would recommend this as part of your reading for C++ job interviews.
Exceptional C++ Part 1
Types of C++ Exceptions:
1. Basic guarantee: Even in the presence of exceptions thrown by T or other exceptions, Stack objects don’t leak
resources. Note that this also implies that the container will be destructible and usable even if an exception is
thrown while performing some container operation. However, if an exception is thrown, the container will be in a
consistent, but not necessarily predictable, state. Containers that support the basic guarantee can work safely
in some settings.
2. Strong guarantee: If an operation terminates because of an exception, program state will remain unchanged. This
always implies commit-or-rollback semantics, including that no references or iterators into the container be
invalidated if an operation fails. For example, if a Stack client calls Top and then attempts a Push that fails
because of an exception, then the state of the Stack object must be unchanged and the reference returned
from the prior call to Top must still be valid. For more information on these guarantees, see Dave Abrahams’s
documentation of the SGI exception-safe standard library adaptation at:
http://www.gotw.ca/publications/xc++/da_stlsafety.htm.
3. Nothrow guarantee: The function will not emit an exception under any circumstances. Overall exception safety isn’t
possible unless certain functions are guaranteed not to throw. In particular, we’ve seen that this is true for
destructors; later in this miniseries, we’ll see that it’s also needed in certain helper functions, such as Swap().
Look at Stack implementation for exceptional handling styles:

{
throw “empty stack”;
}
return impl_.v_[impl_.vused_-1];
}
void Pop()
{
if( impl_.vused_ == 0 )
{
throw “pop from empty stack”;
}
else
{
–impl_.vused_;
destroy( impl_.v_+impl_.vused_ );
}
}
private:
StackImpl impl_; // private implementation
};template
class Stack
{
public:
Stack(size_t size=0)
: impl_(size)
{
}
Stack(const Stack& other)
: impl_(other.impl_.vused_)
{
while( impl_.vused_ < other.impl_.vused_ ) { construct( impl_.v_+impl_.vused_, other.impl_.v_[impl_.vused_] ); ++impl_.vused_; } } Stack& operator=(const Stack& other) { Stack temp(other); impl_.Swap(temp.impl_); // this can't throw return *this; } size_t Count() const { return impl_.vused_; } void Push( const T& t ) { if( impl_.vused_ == impl_.vsize_ ) { Stack temp( impl_.vsize_*2+1 ); while( temp.Count() < impl_.vused_ ) { temp.Push( impl_.v_[temp.Count()] ); } temp.Push( t ); impl_.Swap( temp.impl_ ); } else { construct( impl_.v_+impl_.vused_, t ); ++impl_.vused_; } } T& Top() { if( impl_.vused_ == 0 ) throw "empty stack"; } return impl_.v_[impl_.vused_-1]; } void Pop() { if( impl_.vused_ == 0 ) { throw "pop from empty stack"; } else { --impl_.vused_; destroy( impl_.v_+impl_.vused_ ); } } private: StackImpl impl_; // private implementation
};
The code below is the corrected Complex class:
class Complex
{
public:
explicit Complex( double real, double imaginary = 0 )
: real_(real), imaginary_(imaginary)
{
}
Complex& operator+=( const Complex& other )
{
real_ += other.real_;
imaginary_ += other.imaginary_;
return *this;
}
Complex& operator++()
{
++real_;
return *this;
}
const Complex operator++( int )
{
Complex temp( *this );
++*this;
return temp;
}
ostream& Print( ostream& os ) const
{
return os << "(" << real_ << "," << imaginary_ << ")"; } private: double real_, imaginary_; }; For consistency, always implement postincrement in terms of preincrement. Otherwise, your users will get surprising (and often unpleasant) results. This document is created with trial version of CHM2PDF Pilot 2.16.99. }; const Complex operator+( const Complex& lhs, const Complex& rhs ) { Complex ret( lhs ); ret += rhs; return ret; } ostream& operator<<( ostream& os, const Complex& c ) { return c.Print(os); } Here are the different types of memory available: Memory Area Characteristics and Object Lifetimes Const Data The const data area stores string literals and other data whose values are known at compile-time. No objects of class type can exist in this area. All data in this area is available during the entire lifetime of the program. Further, all this data is read-only, and the results of trying to modify it are undefined. This is in part because even the underlying storage format is subject to arbitrary optimization by the implementation. For example, a particular compiler may choose to store string literals in overlapping objects as an optional optimization. Stack The stack stores automatic variables. Objects are constructed immediately at the point of definition and destroyed immediately at the end of the same scope, so there is no opportunity for programmers to directly manipulate allocated but uninitialized stack space (barring willful tampering using explicit destructors and placement new). Stack memory allocation is typically much faster than for dynamic storage (heap or free store) because each stack memory allocation involves only a stack pointer increment rather than morecomplex management. Free Store The free store is one of the two dynamic memory areas allocated/freed by new/delete. Object lifetime can be less than the time the storage is allocated. That is, free store objects can have memory allocated, without being immediately initialized, and they can be destroyed, without the memory being immediately deallocated. During the period when the storage is allocated but outside the object's lifetime, the storage may be accessed and manipulated through a void*, but none of the proto-object's nonstatic members or member functions may be accessed, have their addresses taken, or be otherwise manipulated. Heap The heap is the other dynamic memory area allocated/freed by malloc()/free() and their variants. Note that while the default global operators new and delete might be implemented in terms of malloc() and free() by a particular compiler, the heap is not the same as free store, and memory allocated in one area cannot be safely deallocated in the other. Memory allocated from the heap can be used for objects of class type by placement new construction and explicit destruction. If so used, the notes about free store object lifetime apply similarly here. Global/Static Global or static variables and objects have their storage allocated at program startup, but may not be initialized until after the program has begun executing. For instance, a static variable in a function is initialized only the first time program execution passes through its definition. The order of initialization of global variables across translation units is not defined, and special care is needed to manage dependencies between global objects (including class statics). As always, uninitialized proto-objects' storage may be accessed and manipulated through a void*, but no nonstatic members or member functions may be used or referenced outside the object's actual lifetime.

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Helpful Tips for Morgan Stanley Java job interviews with resources for Hibernate, Spring, Collections, Generics

Helpful Tips for Morgan Stanley Java job interviews with resources for Hibernate, Spring, Collections, Generics

My Morgan Stanley is ony 24 hours away. This is with a high profile vice president out their New York City headquarters. I must say I am quite nervous prepping for this interview. As you know, the end result can easily change your life. The job would be in Montreal but that is ok since I am already in Canada.

So how am I boning up for this interview? Since it is Java based where Hibernate, Spring, and MQ Series are required skills. I am obviously focusing on these areas. My Java code knowledge is decent as I have worked with it for over 7 years. Here has been my plan of attack:
1. The Spring in Action book is quite good for picking up Spring knowledge. VisualBuilder.com has an excellent started Spring tutorial on general Spring programming with direct injection as well. The book I recommend also highlight aspect oriented programming and other important topics that detail the Visual Builder tutorial. This book is also pretty well the standard in learning Spring.
2. If you want a very fast way to learn Hibernate. The best online tutorial I can recommend is Pookey for the United Kingdom. I know his nickname is funny but this tutorial is quite effective. It starts here I believe:
http://pookey.co.uk/wordpress/archives/60-hibernate-with-mysql-a-beginners-guide
As said, this is a very effective tutorial which is easy to digest and is a complete end to end tutorial. It does not go into great detail but it will give you a very quick overview of the general features of Hibernate with Maven, annotations, and other solid topics.

As I have mentioned in a previous post, Java data structures is a very important topic in these Morgan Stanley interviews. I can personally confirm that from a previous Morgan Stanley interview. So what is the best resource? I would easily say the standard Kate and Bert Sun Java Certification Program book they wrote. Again this is another standard if you are going for your SJCP. It can be found at:
http://www.diesel-ebooks.com/cgi-bin/item/parent-9780071591065/SCJP-Sun-Certified-Programmer-for-Java-6-Study-Guide-Exam-310-065-eBook.html
Just make sure you know two topics here that are critical for you success. Learn the collections inside out, understand hash and equals() very well, and generics. Chapter 7 is the one to focus on. Also, understand the basics of Threading to from Chapter 9. These are important topics that will be discussed in your interview.

Next topic will cover the more advanced data structure topics you will not really find in books or ebooks. I will list some online resources that should help to understand Java data structures.

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

C++ proves to be easier to manage job interviews compared to Java. Nokia's Qt makes C++ relevant

C++ proves to be easier to manage job interviews compared to Java. Nokia’s Qt makes C++ relevant

This weeked is a holiday weekend but I get to study for a Morgan Stanley job interview set for Tues. It seems this will be a little easier than C++ since it is Java based. Java is fairly complex but do remember a lot of it is based on C++ as it is the older language.
Java can be complex with all those frameworks you need to know like Spring, Struts, Hibernate, and all the other competing technologies like J2EE or even the new Enterprise Edition 5 or even 6. Did I mention about the world of JBOSS and what they got going on with Drools and JBOSS portal. When does it end? You get the idea of the number of technologies you are supposed to know like Ibatis, Velocity, JSP, and way more than I care to mention.
Then it comes to C++. This is an older language but Java is as mature. The one thing I like about focusing on C++ only is that there are really only 2 libraries (or frameworks) you are really responsible for. Those are the Standard Template Library (STL) and Boost. Although Boost is very vast, I don’t think you need to be held responsible for nothing past shared_ptr. I could be wrong but I see little beyond that for now. STL is pretty well an extension of native C++. If you focus on the native C++ core language and STL, you should be fine.
As compared to previous languages like Java, there are fewer options and choices.

The future of C++ is upon us. I just got a job request from a trading company here in Toronto but they require you to know Qt which is a pretty amazing mobile/graphical C++ framework that Nokia is pushing. You should check it out as there are some powerful companies behind it. Also, this is just one example showcasing the important of C++ and how the language will continue to be pretty modern.

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Job interview question: How to get variable arg count for C++ program with va_arg, va_start, and va_end

Job interview question: How to get variable arg count for C++ program with va_arg, va_start, and va_end
Do it with with va_arg, va_start, and va_end

/* va_start example */
#include
#include

void PrintFloats ( int amount, …)
{
int i;
double val;
printf (“Floats passed: “);
va_list vl;
va_start(vl,amount);
for (i=0;i

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

C# or Java Job Interview Question: Singleton design pattern source code sample which is thread safe

C# or Java Job Interview Question: Singleton design pattern source code sample which is thread safe

Below is a sample but we assume the Mutex locks are already defined. See my previous posts on multithreading for an example how to do to this.

#include
using namespace std;

template
class Lock
{
public:
Lock( T& t )
: t_(t)
, locked_(true)
{
t_.Lock();
}

~Lock()
{
Unlock();
}

void Unlock()
{
if( locked_ )
{
t_.Unlock();
locked_ = false;
}
}

private:
T& t_;
bool locked_;
};

template
class Singleton
{
public:
T* Instance()
{
if(!instance)
{

//use pthread_mutex_lock?
Lock l(m);
//Lock mutex; //-+

if(!instance) // Double check
{
instance = new T;
}
}

return instance;
}
private:
Singleton(){}
~Singleton(){}
static T *instance;
};

int main() {
return 0;
}

For C# with no multi threading:
Implement singleton
In C#:
public sealed class Singleton //sealed prevents class from derived so like final in Java
{
private static Singleton s_instance = new Singleton();
// Make the constructor private so that no new instance can be generated from outside
private Singleton() {}
public Singleton GetInstance()
{
return s_instance();
}

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!