CS or EE degree for C# developer - Page 1
Forum section: electronics / general

author: Stonent
author_rank: Super Contributor
timestamp: September 28, 2015, 10:49:11 pm
content: I saw this job posting today. The only thing that caught my attention was the requirement for a CS degree OR EE degree.I thought that was odd considering the rest of the job seems to indicate it is some how related to stock trading.Quote

author: JoeN
author_rank: Frequent Contributor
timestamp: September 28, 2015, 11:07:58 pm
content: I've seen those before too. And being a professional computer programmer since 1992, I can tell you there were a lot of engineer to programming career changes in the late 90's, and it probably still happens. At that time, there was a huge need for programmers and the salaries for certain kinds of programmers had reached parity with engineers so many engineer graduates saw opportunity there and took it. From an employer's point of view, I would think getting a person who had a degree in engineering, which usually requires several university courses in programming as part of the major anyway, who had taught themselves the rest of the programming skillset really gives a company a person with two skills rather than one. I've hired guys like that and it always works out well.To some extent, it's like hiring a nurse and getting someone with an MD who really wants to be a nurse instead (this is an extreme analogy but I think it is close). It would be a win for the employer.

author: Stonent
author_rank: Super Contributor
timestamp: September 28, 2015, 11:26:31 pm
content: I wonder why though if they are focusing on high performance trading applications they are using C# and .NET? The performance is fine for most applications, but C# just like VB.NET and Java, are all interpreted into a sort of byte code that runs in a virtual machine.That and well aside from the EE to programming creep. C# isn't used a whole lot in electrical engineering. C and C++ might be more common. They do make some embedded systems that use .Net Micro Framework but they wouldn't be using Windows Presentation Foundation. They still make you use Windows Forms on Windows CE / Windows Mobile 6.x.

author: linux-works
author_rank: Super Contributor
timestamp: September 28, 2015, 11:28:12 pm
content: looks like application development with a GUI focus. you need to know lots of specifics but you don't have to have a breadth to get this kind of job done.so, the degrees they list just mean 'we want a technical guy, not an english major'I'd read nothing more than that into it.

author: Howardlong
author_rank: Super Contributor
timestamp: September 28, 2015, 11:39:59 pm
content: Standard lazy HR, in the end it's all a numbers game to them I'm afraid. Until I semi retired a few years ago, I earned a crust designing and troubleshooting financial trading systems freelance for a couple of decades. I have a degree, but it really annoys me that some of the best people simply couldn't get a foot in the door by dint of benefitting from a three year piss up. Changing the mentality is hard though, especially here in the UK where half the population get to their first jobs with degrees, a fairly recent change here. I am interviewing for two roles in financial trading software for someone at the moment coincidentally, I don't even get to see a resume/CV unless the applicant has a degree, but my consternation falls of deaf ears regrettably.That job spec was a bit of a cringeworthy copy and paste for the last third of it.Some good news though, Ernst and Young were widely reported in the UK at least that the best candidates don't necessarily have degrees, and are removing academic qualifications as a barrier to applying.“Academic qualifications will still be taken into account and indeed remain an important consideration when assessing candidates as a whole, but will no longer act as a barrier to getting a foot in the door.“Our own internal research of over 400 graduates found that screening students based on academic performance alone was too blunt an approach to recruitment. It found no evidence to conclude that previous success in higher education correlated with future success in subsequent professional qualifications undertaken.“Instead, the research shows that there are positive correlations between certain strengths and success in future professional qualifications.http://www.ey.com/UK/en/Newsroom/News-releases/15-08-03---EY-transforms-its-recruitment-selection-process-for-graduates-undergraduates-and-school-leaversI hope this enlightenment continues.

author: Howardlong
author_rank: Super Contributor
timestamp: September 28, 2015, 11:45:21 pm
content: Quote from: Stonent on September 28, 2015, 11:26:31 pmYou'd be surprised, I have an acquaintance of mine who was recently recruiting for high frequency low latency co-lo trading... with Python being a key requirement.

author: DimitriP
author_rank: Super Contributor
timestamp: September 28, 2015, 11:59:47 pm
content: Unless desparate, anyone withQuotewould fly right by this job posting

author: Stonent
author_rank: Super Contributor
timestamp: September 29, 2015, 12:04:23 am
content: Quote from: Howardlong on September 28, 2015, 11:45:21 pmI want assembly and an RTOS!

author: tggzzz
author_rank: Super Contributor
timestamp: September 29, 2015, 12:13:23 am
content: Quote from: Stonent on September 29, 2015, 12:04:23 amOld hat. Nowadays FPGAs are used to reduce the latency. Even the trading algorithms are hardware!

author: nctnico
author_rank: Super Contributor
timestamp: September 29, 2015, 12:27:03 am
content: A new 'best in class stock trading program' project is started every hour of the day

author: coppice
author_rank: Super Contributor
timestamp: September 29, 2015, 01:17:47 am
content: Quote from: Stonent on September 28, 2015, 10:49:11 pmIf you took the higher maths and control theory options in your EE course, and you have the right personal qualities, a lot of financial people will be interested in you.

author: coppice
author_rank: Super Contributor
timestamp: September 29, 2015, 01:20:37 am
content: Quote from: Stonent on September 28, 2015, 11:26:31 pmOnly the actual trading pipeline needs to be as short as possible. There will be an enormous number of things happening around that which do not need exceptional speed or minimum latency.

author: Smokey
author_rank: Super Contributor
timestamp: September 29, 2015, 03:23:58 am
content: If you can't afford your own fiber link direct to the trading floor, you shouldn't be in the game.

author: linux-works
author_rank: Super Contributor
timestamp: September 29, 2015, 03:36:27 am
content: Quote from: Smokey on September 29, 2015, 03:23:58 amCSB: a python instructor of mine told us about how he used to write high speed trading code (in python, I believe; perhaps also with some hardware assist in the back-end) and for best results he would rent space on a floating data center (ship!) that had 'good access' to multiple markets (europe and the US east coast, for example). while it is known that getting your server on the same lan, same 'ring' as the place you want to hit the fastest, he seemed to feel that being *between* 2 of the centers was better, for some reason. maybe for some specific kinds of trading.the python code, that I know for sure was python, was fetching quarterly reports from various big companies and doing some VERY fast computation on the report, itself, and then doing buys/sells based on what the algorithm said. stuff like: if the size of the file (the report) was larger than usual, its often bad news (bad news takes up more space, or something like that, lol). and so with a fast 'wget' of a file as soon as its released, doing some 'ls -la' stuff on it and comparing to some benchmark, you can create a 'buy lots' or 'sell lots' recommendation. or if you are brave, automatic market orders! he said he had quite a few false-positives and lost lots of money, but over time it worked out well for him. all by doing an 'if file xyz exists on remote server, fetch it, do stuff on it and tell me UP or DOWN from that'. predict what the file name would be, keep polling the server around the time it should be published, grab it, compute on it, etc. sounds farfetched but I believe him when he told us this story.

author: Smokey
author_rank: Super Contributor
timestamp: September 29, 2015, 03:42:55 am
content: I picked up this book a while back. It has a lot of stuff about big data like stock stuff and analyzing it in python with pandas. I thought it was a good read.http://shop.oreilly.com/product/0636920023784.do

author: John_ITIC
author_rank: Frequent Contributor
timestamp: September 29, 2015, 04:23:25 am
content: Quote from: Stonent on September 28, 2015, 10:49:11 pmYes, this is rubbish. These are two completely different disciplines, of course. The HR drone probably didn't have a clue about the difference.

author: linux-works
author_rank: Super Contributor
timestamp: September 29, 2015, 04:56:36 am
content: its not as rubbishy as you thinkagain, I think its 'simple gui work' here and EE's are good enough at doing simple UI's that they could handle it.I don't see many software guys doing hardware work, but I do see EE types being able to do the simpler programming jobs and this just didn't seem like it was specialist work. not video processing or encryption or anything that a more pure-software guy would really be needed for.

author: John_ITIC
author_rank: Frequent Contributor
timestamp: September 29, 2015, 05:41:10 am
content: Quote from: linux-works on September 29, 2015, 04:56:36 amMost EE's I have worked with pretty much knows how to wiggle I/O pins to interface with I2C or and ADC. Not much more. They are mostly hired to do schematics, layout etc. But I know; many engineers from all kinds of disciplines move to the software fields simply because it is easier (less costly) and therefore more work opportunities. For some unknown reason, software "engineering" is paid better although much easier to learn than the science of electronics. I have worked in both disciplines over the years and, to me, electronics is the more interesting (harder) of the two. It requires much more detail orientation. I once worked in a software team and one of the SW types had coded a complete unstructured mess that nobody could understand. I asked him why he had not structured his code as a state machine. He answered: "what is a state machine". At this point, I knew I was in the wrong place...

author: Galenbo
author_rank: Super Contributor
timestamp: September 29, 2015, 08:03:34 am
content: Quote from: Stonent on September 28, 2015, 10:49:11 pmThose jobs at VW...Quote from: Stonent on September 28, 2015, 10:49:11 pmI like this, I read this as: Unable to work with maximal supervision.

author: DimitriP
author_rank: Super Contributor
timestamp: September 29, 2015, 10:06:21 am
content: Quote from: Galenbo on September 29, 2015, 08:03:34 amNo, that's the VW releavant bit: "Passion for solving investment business problems through the use of technology"just change investment to read emissionsI was going to post it earlied but I didn't want to be the first one to mention VW ....

author: tggzzz
author_rank: Super Contributor
timestamp: September 29, 2015, 10:27:30 am
content: Quote from: Galenbo on September 29, 2015, 08:03:34 amIt should also be read in conjunction with that other traditional meaningless requirement beloved of HR-droids "must be a team player", which was on the next line. I presume that's code for "Must do the all the crap and have none of the recognition".

author: VK3DRB
author_rank: Super Contributor
timestamp: September 29, 2015, 11:46:21 am
content: Quote from: JoeN on September 28, 2015, 11:07:58 pmI know many highly skilled colleagues who dumped electronics in favour of writing Windows bloatware and database code in the early 2000's because the money was very good and they thought there was a rosy future. They have effectively lost their core electronics skills and no longer possess the skills even to design a basic professional PCB. They cannot go back into electronics, because no-one will hire them for that job. In fact, out of a workplace of about 200 electronics engineers I worked with in 80's/90's, there are only 2 left in electronics to my knowledge, me being one of them.One engineer I know left electronics and went into specialising in Lotus Notes development in his own business. He did well for about 10 years until his clientèle completely dried up. His business went under and he could not find a job anywhere as an engineer or programmer for 8 months. He ended up having to take a no-brainer job at a local government council. He would have been better off staying with electronics, or at least morphing into what is in demand.I push myself hard to be skilled at system design, analogue & digital PCB design, test design, embedded programming and electronics team management; partly because I hate boredom, partly I am good at it, partly because I have never lost the passion; but also partly because I am fearful of ending up on the employment garbage heap in a country where age discrimination is rampant.

author: GNU_Ninja
author_rank: Regular Contributor
timestamp: September 29, 2015, 11:53:05 am
content: Quote from: Stonent on September 28, 2015, 10:49:11 pmThat's me out of the running then, I majored in Engineering Physics

author: Stonent
author_rank: Super Contributor
timestamp: September 30, 2015, 03:30:19 am
content: Quote from: Galenbo on September 29, 2015, 08:03:34 amOr : Loner who doesn't work well on a team.

author: Galenbo
author_rank: Super Contributor
timestamp: September 30, 2015, 09:10:51 am
content: Quote from: tggzzz on September 29, 2015, 10:27:30 amNobody is "a" "team" "player"For every person, there is a team that doesn't fit.Also depends on what "player" means. If I look at how some succesful persons behave/behaved inside a team, like:-shouting to a team, scaring as team-drawing all attention from a team-using a team for their archievements and steal them-giving orders to a team-...I might not be such a good team "player"

author: eas
author_rank: Frequent Contributor
timestamp: October 01, 2015, 01:21:38 am
content: Quote from: Stonent on September 28, 2015, 11:26:31 pmThis is easily explained: You misunderstand how the .Net Common Language Runtime works. C# and other CLR languages are compiled into a sort of byte code. That byte code isn't executed through interpretation, instead the CLR compiles it into native instructions which are then executed. The same is basically true of most Java these days.My understanding is that high-performance trading applications have many moving parts. Some of them are extremely performance critical, others less so. Execution speed and consistency is important, but so is individual and team productivity, turn-around time, and other software engineering priorities. Perhaps a function will run faster coded in C, but it may take twice as long before it compiles and executes without obvious error, and what happens if, someone mishandled some pointer math and the thing buys 1M shares when it should have sold 2M? Perhaps C# would have been a better choice after all.Also, note, this job listing clearly states that this job is for desktop trading software used by account managers, etc.As for the CS or EE requirement. Who knows, who cares? It could be thoughtless crap. It could be an attempt to skew the applicant pool in a particular direction. Job listings provide potential applicants clues what the employer really wants, and how they think about the job, but they shouldn't be taken absolutely literally, because chances are, the employer isn't sure what they want, or if they are, they aren't sure how to get it. So, they do their best, see what they get, and then go from there.I will say that the people I know who have worked on user facing software for financial services haven't had CS degrees, or EE degrees. One has a degree in English, the other in Philosophy and the third in Classics. All at least as valid as qualifications for such work as a CS or EE degree, because often, the hard part of software isn't the algorithms, or data structures, or any of that, its understanding the people using them and the organizational context in which they work. In other words, its about figuring out messy humans. The code doesn't matter if no one uses it. The code doesn't matter if it confuses the users and/or sets them up for mistakes.

author: Stonent
author_rank: Super Contributor
timestamp: October 01, 2015, 05:24:39 am
content: Quote from: eas on October 01, 2015, 01:21:38 amWell I've compiled .EXE files with c# that will run on windows or raspberry pi with no changes, unless Mono is doing something in the background.It was by accident that I figured it out.

author: tggzzz
author_rank: Super Contributor
timestamp: October 01, 2015, 07:14:57 am
content: Quote from: eas on October 01, 2015, 01:21:38 amThere is a key difference between Java Hotspot and .NET assemblies.Java HotSpot measures what is actually being executed (i.e. cross-method and cross-class sequences of invocations), and then optimises the hell out of that - which is enabled by having a solid definintion of language and memory model..NET makes guesses about whatmightbe executed based on static analysis, which can never be as good as dynamic analysis since it is the Halting Problem in another guise. That optimisation is hindered by having to interoperate with code marked "unsafe".If you doubt the efficacy of HotSpot, search for HP's Dynamo compiler, and be surprised!

author: Howardlong
author_rank: Super Contributor
timestamp: October 01, 2015, 07:56:45 am
content: Without wishing this to be a justification one way or the other, the biggest complaint I have of JIT compiled stuff is the start up time. The most obvious thing to me is that the hardware config is so rarely if ever changed, but JIT compilers still recompile on first use.In the database world (and I guess now also in the JIT world) for the past 15 years, well meaning and supposedly clever profiling and statistical methods frequently recompile code: when they notice the way the code is used in different ways, with differing data profiles, they introduce different plans on the fly.The biggest problem with these schemes is that they introduce indeterministic behaviour, both from the compilation overhead, particularly in startup time, and from having a steady base to reliably perform non-functional testing and provide a consistent user experience. To my mind, there is far too much effort put on creating a good average result for some marketing and academic headlines compared to giving a reasonable and consistent one.While I don't discount ku

author: tggzzz
author_rank: Super Contributor
timestamp: October 01, 2015, 11:43:12 am
content: Quote from: Howardlong on October 01, 2015, 07:56:45 amCounterpoint: the length of time it takes to update windows, partly because all the last-stage compilation (I've forgotten what they call it; specialisation?).I've found it very useful to be able to run the same executable (i.e. Java bytecode) on many different machines, including Windows, Solaris, Linux and HP-UX.(And even, during development, to occasionally have the same single distributed application sharing memory across different processors and operating systems! Shudder)QuoteThere I'll agree, but that is a farfarwider topic than early/late JITting! Let's start with L1/L2/L3/TLB caches and work up the hardware/software stack from there...