Reader Mail – 01/06/2013 To 01/12/2013

Atul Saroha commented on Only Idiots Use Java For High Frequency Trading.
Let me give some point why High Frequency trading in JAVA.

I and nearly everybody knows C++ is way faster than JAVA and perl & CGI is even more faster than every other language.

But it's a high frequency domain, just being fast enough is not the solution. Let me tell why Java is used mostly in this domain.

Firstly, there are parameters to configure your JVM according to your application need, so you can get best out of it, you may even surpass C++ speed. For example, setting the memory segments for your JVM. Young generation, Tenured or Old Generation and Perm Area of heap are different segments of memory given to your application. Distribution of the percentage of available space among these segments, based on the nature of your application, will boost the speed a lot.

Read more:

Secondly, Off course Garbage Collection (GC). In a high frequency domain lots of object is created and destroyed in next instant. So allocation and freeing space are the key and most important part of it. GC provides different set of algorithms to handle this and you can choose one of them based on your application. So biggest issue in C/C++ application is memory leaks and dangling pointers. Coder have to take care of it. But in java, you are free from that effort and so you can put more effort in optimizing your algorithms and approaches.

Memory leaks are only a problem if you're incompetent.

Bytecode is never going to be as fast as natively compiled C/C++. You can argue that development time is faster in Java (and I'm not sure about that), but the finished product will always be faster in C or C++. Even better, put some inline assembly in your C and C++ (which you can't do in Java).

Atul Saroha commented on Only Idiots Use Java For High Frequency Trading.

I know what are you saying is right. All these are really make c/c++ faster in processing than java.

But still for high frequency trading system that is not enough, and nowhere close to the requirement.

There are hell lot of complex algorithm works in this domain, even a fast processing system developed in c/c++ will fail over the period of time. Managing the memory and developing these algorithm by a team and a developer will never be possible.

You might have to allot two teams one to develop and other to check memory management issues. Without hacking c++, you will never get the processing environment your application desire (which is configurable in java's jvm).

I am not arguing that java is faster than c++ (I know c++ is faster).

Don't take it personally, but you reply shows you never worked in High frequency domain.

C++ provide high end if the task is small and manageable. But if it is highly complex system, java is always better for problem solving, until someone comes and gives similar power to C++ as GC has in JAVA and flexibility to configure you running environment.

I've worked a decent amount in Java, C++, and .NET. In my experience, the performance of Java and .NET is nowhere close to C++.

Also, I have written some high performance code in C++ with complex calculations. There's no way it would have worked in Java with decent performance.

It certainly is possible that most people who write high frequency trading software are idiots. In that case, an inefficient program written in Java will perform decently. I've seen a lot of incompetence in the financial industry. I'm not eager to enter that area, because trading is an activity that produces no value to the rest of the economy.

Java might be faster for writing software (and I question that). It certainly won't be faster for the final product.

Robert commented on NFL Players Are Underpaid For The Playoffs And Super Bowl.
I agree with your salary analysis completely. What you are leaving out is the incentive for a player to do well in the playoffs in order to receive a better compensation package in the future; because in the NFL, all eyes of management are on everybody all the time and the team owners and management certainly make more money by making the playoffs and succeeding in them. So, they will remember and compensate according to free market principles those who give their best effort in the playoffs.

There are times when players on a team "quit" and stop trying. If a bubble playoff team tanks their last few games, it's in their financial best interest. Someone can always make a mistake or two, without jeopardizing their career.

It's better to give up a touchdown, than risk a career-ending injury in a playoff game.

KeithJ commented on NFL Players Are Underpaid For The Playoffs And Super Bowl.

Most players do not quit due to injury. The two years is the average due to players being cut. Large numbers come into the league most do not make it or they make it for a year on special teams and are cut the following year. Most veterans retire due to them being once again unable to compete with younger players. There are actually very few career ending injuries. I'd consider this, those players are paid to play 24 games. 4 preseason, 16 regular season and 4 post season. The ones that don't get to play that many get some extra time off to figure out how to work the whole year next time. In the end it's a game that adults get paid to play, and I'd bet that 90% of guys would drop what they are doing right now to play one year in the NFL.

The players' performance deteriorates due to cumulative effect of injuries. Even if there isn't any single play with a career-ending injury, the cumulative effect of hits takes a toll.

One current example is RG3's knee. The injury is due to cumulative stress, more than any single play. He may have severely aggravated his injury, due to one extra playoff game, instead of having 6 months to heal before his next game.

KeithJ commented on NFL Players Are Underpaid For The Playoffs And Super Bowl.

Your article states they careers are 2 years in length due to injury. This is not the case. Players making a team in their first year average a six year career. I was a college athlete, and having never played pro football know that I currently could not compete at my previous level. This is not due to injuries, but due to age. Players are paid to play a season, not paid for individual games. Ask any of them not playing right now, they'd rather be on the field than on the coach, despite any additional risks.

In other sports (MLB, NBA), players can compete at a high level until they're 35-40. The NFL careers are shorter due to the cumulative effect of injury, more than old age. Even in high school and college, you accumulate injuries.

The first "wall", where the effect of aging kicks in, is at age 30. NFL careers end sooner than that, due to injury.

KeithJ commented on NFL Players Are Underpaid For The Playoffs And Super Bowl.

The average NBA career is less than 5 years. Shorter depending on who you include and when you say a career begins and ends. Jus like NFL these are not shortened due to injury, but due to teams replacing with possible future talent. Players often receive lucrative incentives for making the playoffs or for performance which is often easier to reach with additional games. There are 35-40 year old players in the NFL. I admit football is a much more physical (in terms of hits) game than basketball or baseball. Regardless, players sign a contract stating "season" not a contract stating "games".

Average NBA career length: 6-7 years (source)

Average MLB career length: 5.6 years (source)

Average NFL career length: 3.5 years (source)

According to that, injury-shortened careers are MUCH MORE COMMON in the NFL than in the NBA or MLB. If a player plays in one playoff game, that's shortening his career by 1/56. (56 = 3.5*16, actually more if you consider that playoff games are more intense than a regular season game).

Yes, the current system forces players to sign a contract for the entire season. I'm pointing out that they aren't fairly compensated for the playoffs on a per-game basis. If the NFL players don't mind, that's fine. If they're too stupid to negotiate properly in their CBA, that's their problem.

Compare that with MLB, where the world series bonus was $323k in 2011, compared with a minimum salary of $414k and an average salary of $3.1M. If a team wins the World Series and each series goes the maximum (5+7+7=19, 19/162=12%), then the MLB players are much more fairly compensated for the playoffs compared to the NFL. Also, an MLB player isn't risking as much of a serious injury in the postseason (except for pitchers).

Given that players are underpaid for the playoffs, it's in their rational self-interest to miss the playoffs, if they're a bubble team.

KeithJ commented on NFL Players Are Underpaid For The Playoffs And Super Bowl.

2010 Packers, 2007 Giants, 2005 Steelers-maybe, could all be considered bubble teams. All Super Bowl winners. Athletes have been known to play for more than money. I wouldn't address them as stupid due to their CBA. Average career if you are good enough to have played in one pro bowl is 11.7 years. So I'd say talent is a greater predictor of career length than playoff games.

Anonymous Coward commented on Reader Mail - 12/30/2012 To 01/05/2013.

In the third illustration/photo down James Holmes has thin lips.

Scroll down to see him with red hair and his lips have become fatter.

Anonymous Coward commented on Offensive Interview Programming Tests And Assignments.
I've been hit a couple of times and had to do free programming work as part of an interview test. You can tell the difference. It rankles to have time stolen from you.

In the first instance, an employee of the company told me during the interview they were doing to use the code I wrote for their pre-interview test in their software. I should have objected at the time. In the end I didn't get the job because I refused to do more free work about a month after the first face-to-face interview. The company head telephoned me and asked me to visit again because they had a problem that needed to be fixed!

The second time around I was asked to write a parser for a specific grammar. I guess amateur programmers can't do this, but I can do it easily. Immediately after I sent the correct solution to the interviewer by email, I got rejected. No specific reason was given. It was odd because I didn't apply for the job. The interviewer picked me from an old forum post and asked me to apply. He already knew some of my work background. Very suspicious.

Some kind of interview test is OKAY. But some companies go overboard. In the worse cases they require 4 - 5 days of your time! Microsoft are the worst offenders in this regard. And even if you get every single question correct you still won't get the job.

Testing has gone too much in the wrong direction.

You can't say I'm a rotten programmer either. I run my own software company and I had hundreds of emails saying how much people like my software.

In fact one of the largest, most famous organizations in the whole world emailed me and told me how much my software has helped them.

Ironically FSK has written about this organization, so this should give you a clue who they are.

Anonymous Coward commented on Offensive Interview Programming Tests And Assignments.

I've written software since my early teens. I've written a vast amount of software in my life. If you travel to certain parts of Europe and use a credit/debit card, then it is likely my software is processing your transaction. That is back in the days when I worked in the corporate world.

My own mini software company has sold software to practically every famous company, government and bank in the world.

Yet, I have been rejected from the same companies and banks that have purchased my software on many different occasions.

I've now given up applying for jobs and live off the income my software company products. Obviously when I was applying for jobs it was in the earlier stages of my software company and at a time I didn't think it would provide a sustainable income.

The thing is that a lot of companies copy the Microsoft and Amazon style of interviewing.

If you go on a handful of these absurdly long interviews with 4 pre-interview assignments and 3 different trips of their offices and then for some reason don't get a job offer, then you will end up so tired and so pissed off you will simply just not bother interviewing again.

This is wrong.

Employees from Microsoft and Google have started that you need to attend 3 different interviews before you get a job offer. What is going on? Maybe they pick 4- 5 very strong candidates to interview for every job. So they require 4 good candidates per interview. So that is why they tell people to interview again and again.

At one Microsoft interview I was told I might have to interview with 2 - 3 more groups before I get one job offer.

And each interview process requires the same lengthy technical questioning.

At some point good candidates will get pissed off.

These companies should cache interview results and have honest managers that don't say you have got a question wrong when you have it right.

It is simply a waste.

Anonymous Coward commented on Offensive Interview Programming Tests And Assignments.

There is a trend for full day interviews, even after 4 pre-interview assignments.

I had one interview at Microsoft starting at 9am. As I live in a different city, I think I had to wake up at between 4 - 5am that day to get there on time.

When I did arrive there none of the interviewers were available to meet me. So I had to wait around for another 30 - 60 minutes.

My interviews took the whole day. By the end of the day I was getting a little surprised they were still firing long questions at me. In the end my mind gave up because the last question was just too big to fit on a whiteboard.

Either I was not a favoured candidate or simply these people didn't think that I would have had to have woken up at 4am to get there on time. Another stupid waste of time.

Herb commented on Offensive Interview Programming Tests And Assignments.

The shop I'm at does two tests, one before in-person interviews and one during.

Believe it or not over half the people who get the at home one (email with code to be returned in two hours) don't complete it (it has 3 steps). A siginficant fraction don't even produce working code for the first step.

That said to address some of your complaints, both of the tests were related to the work I'd be doing and were designed not only to test if I could do it but do it well in the language in question. Both were used for interview questions during a code review where I was asked why I made certain design choices, the possible consequences of some of my choices, and ways to address those choices if they became problems (much of those were around scaling to various data set sizes).

In that context I didn't find the tests insulting. Why they were simple they were keyed to the work I'd be doing and instead of simply being pass/fail they were used as the jumping off point to probe my knowledge and thinking.

Finally, for me they provided an opprotunity to demonstrate willingness to learn. During the phone interview I missed a couple of issues concerning modules for the language in question. When the opprotunity to use the things I had missed came in the in person test I used them. When I asked why I choice that method over another (and I was quizzed about other options) I answered "to clear up my missed earlier questions" (the gentleman from the phone interview had already picked up on that).

I used to diligently do every test, and I never got an offer from an interview that demanded a test. Now, I just refuse them, or only do them if it'll take me an hour or less.

If your hiring process filters out people who refuse to do tests, you're eliminating two groups of people. You're eliminating incompetent people. You're also eliminating people who have better things to do than your stupid test.

Some tests aren't possible for me to do. I don't have Excel (I use Open Office), Visual Studio, or SQL Server on my PC.

On one recent interview, I'm 99% sure that the interviewer was trying to shake me down for free consulting.

Would you ask a lawyer, doctor, plumber, or painter for free work before hiring them? They would laugh at you if you asked. Why is that standard practice for programmers? Act like a professional.


According to my Piwik stats, you're browsing my blog from Bank of America. I had a bad experience with them (via a headhunter). They demanded my SSN for an interview, which you should NEVER give out.

Banks don't need good software. Who needs skilled employees when you can get the government to give you a bailout?

Anonymous Coward commented on Offensive Interview Programming Tests And Assignments.

I also diligently did pre-interview tests.

I also had an interview at a Swiss bank in London and got 100% correct in a 45 minute written test. In an oral test I got every single question correct, except for the last one which was a silly question about a manufacturer's name for a config file in a specific environment.

It was a complete waste of time.

I also got every single question correct during an interview with a Microsoft manager.

No job offer. The manager lied and said I got the question incorrect. That or he was incompetent or couldn't be bothered to listen to my answer.

Anonymous Coward commented on Offensive Interview Programming Tests And Assignments.

I do agree with FSK that there is something about a career in software development that makes it a bad choice.

It is not that testing is inherently wrong, but that companies overdo it.

Companies will test you. Reject you if you do well and that some years later ask you again to interview and want to put you through the same tests again even if you did well the first time round.

As almost every company has the same hoops and today you need to apply for tens of jobs before you get one offer, the whole thing has become burdensome.

If you do well technically in 15 interviews and each test takes 0.5 - 4 days of your time and you don't get a job offer (maybe you are older than the managers or your far greater experience puts managers off) then you are effectively barred from working again.

Your mind won't simply let you do tests again do the realization it is a farce and pointless.

Anonymous Coward commented on Offensive Interview Programming Tests And Assignments.

Another annoyance is the recruiter that asks you to fill in a matrix of buzzword skills.

I once when to an interview at a German bank with offices in London. The guy asked me what version of Java I had last used. I said version 1.21.

After the interview, the recruiter told me that interviewer liked me and would like to offer me a job, but he could not because they used Java version 1.22!

Obviously the version numbers I used here are made up as I can't remember back years ago, but it was as stupid as that.

FSK may concentrate on excessive interview testing, but there are lots of other things that make a "career" in software less desirable.

One is that lack of stable jobs.

Second is the fact that a lot of companies don't provide time for training and just want to hire people with 10 buzzword skills. They will wait a whole year to find a liar that has all their twenty stated buzzword skills. Everybody wants to milk the system, but no employers wants to put anything into it.

The buzzwords are not relevant. Any skilled and experienced programmer can pick up new languages quickly as needed. Most competent people know this, but I've never seen a hiring manager or recruiter that does that.

The "advantage" of buzzword screening is that enables someone computer illiterate to do resume screening. If the requirement is "n years of X" for a list of things, then someone clueless can filter resumes. There are enough liars so that sufficient resumes pass the filter.

Hiring honest and intelligent people is a "mistake", because their abusive coworkers and bosses will conspire to ruin them.

Anonymous Coward commented on Gold Outperformed The S&P 500, 1995-2012.
Colonel Daffy Duck wanted Libya to use gold as a currency and look what happened to him.

He had plans for an African bank to avoid exploitation by Western banksters.

Bring the gold!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>