Resume

Lead Software Engineer / Technical Architect
USA +1 631 665 0727 | mbartosik@yahoo.com
Citizenship: US and UK
Linked In Profile

I am a talented engineer with a passion for C++ and expertise and interest in debugging and debugging tools, with high performance highly reliable code, and 23 years of experience in FX trading systems.

I have a lot of interest in the OS internals. Most of the code that I have written professionally has been C++ user mode code. However I also wrote a kernel keyboard driver and did major bug fixes on a kernel mode network protocol driver, and was using C++ inside the Windows kernel long before it was supported!

Recommendations

See Linked In Profile

Summary
I am passionate about C++, and in designing and writing solid high performance code. When necessary, I’m able to get down into the assembler and hex codes and dump files to diagnose problems. I find debugging a lot of fun. For 23 years, I have worked as an external consultant to Thomson Reuters, for the full life cycle of their FX Dealing products: Dealing 2000, Dealing 3000, and now FXT (successor to Dealing 3000), plus various lesser known products. Much of this time I have been the lead developer / technical architect. I have also written my own memory leak analysis tools which used runtime code instrumentation; debugging tools and code analysis is where I have had the most fun. I am most experienced on Windows, but am also very happy with Linux or in the kernel address space.

Credentials
BEng Electronic Engineering with Computer Science, also a Chartered Engineer.

Roles

  • Lead developer / Technical lead / Architect: The lead developer / architect for Conversation Dealing within FXT, the replacement for Thomson Reuters Dealing 3000 which trades ~130,000,000,000 USD, per day. I have been lead developer for several other projects, including Dealing 3000, plus technical architect for some.
  • “Big Gun” debugging trouble shooter: In this role, I am usually ‘borrowed’ to fix stubborn problems where the team responsible has reached a dead-end and the project is in jeopardy. Stories of interest include:
    • Sent to Bangkok, achieving x6 throughput improvement (thus, allowing 1/6 the hardware required) for production messaging servers in 3 weeks. This included using my own leak analysis tool.
    • Loaned to Hewlett Packard, to fix a kernel mode network protocol driver on which Reuters products were dependent, after HP were unable to fix it.
    • Pinpointed leaks in Microsoft’s real time messaging stack, without source code access.
    • Reverse engineered (at asm level) and identified a bug overnight in an anti-virus software, which was causing production crashes in a Reuters product for a specific customer.
    • Identified and fixed masses of leaks in Reuters Dealing 3000 product, which was heavily COM based, and at the time leaked far too much to be deployed. In this case, all the major tools available at the time had been tried, and external consultants had been brought in to target just this problem, all had failed. The source base was ~3 million lines of C/C++ and ~1 million lines of Visual Basic. I wrote a tool to automatically track down leaks, and then headed the debugging team using the tool, all significant leaks were fixed.
  • Senior Software Engineer: I am also able to fit into an existing team and develop & maintain existing products.

Technology Experience

  • C++ – is my passion, but I am able to work with Java, C#, assembler, Visual Basic, and interested in more. However, C++ is my passion, so I expect any job to have a good amount of C++11.
  • Debugging – I cannot remember a debugging problem I’ve failed at. I am also the sole author of Leak Browser; a Valgrind like tool, that was years ahead of its time and is able to find resource leaks on Win32 compiled code faster, less invasively, and more reliably than any other tool I know. I have been called “the big gun” and brought in to solve critical problems when all else has failed.
  • Windows is my strength, but I am very happy and able to work with Linux.
  • Kernel mode code – I authored the custom D3000 keyboard driver for Reuters. Being a C++ freak, I used C++ in the Windows kernel even though it was unsupported by the DDK at the time.
  • Network protocols: most developers understand a good set of standard network protocols, and so do I. My favorite experience of network protocols was making extensive fixes to a kernel mode network protocol driver on behalf of Reuters which was authored and owned by Hewlett Packard.

Business Experience

  • Pre 1992: Hardware and software for embedded mining control systems, and software engineer for nuclear submarine weapons dept. (mostly using Ada).
  • 1992 – 2015, mostly as Lead Developer / Technical Architect 23 continuous years as an external consultant for Thomson Reuters, 8 in UK, 15 in USA. Mostly working in the FX space, with conversational trading, automated trading, and electronic brokerage systems trading up to a peak of over 300,000,000,000 USD per trading day, plus in the messaging space. I rescued various products that would otherwise have failed, usually by my ability to debug code and organize developers around debugging problems. I architected, designed, and wrote much of the core code in various Reuters’ products. Note: Thomson Reuters has for a long time had a policy of not keeping contractors for long term assignments (usually no more than a couple of years); 23 years may be a record within the company.
  • Late 2015 – present Consultant at Bloomberg LP.

Publications etc.

  • Author, Encapsulating the Observer Pattern, C/C++ Users Journal (citation in ACCU Overload & CodeProject).
  • Author, Templates & Marshalling C++ function calls, C/C++ Users Journal (citation in recent PhD paper)
  • Technical reviewer, Debugging Microsoft .NET 2.0 Applications, Microsoft Press.
  • Presenter, Hunting for Bugs, presented at Association of C & C++ Users conference (ACCU).
  • Teacher, Numerous Intra company technical presentations / classes for developers.

Affiliations
ACCU (Association of C & C++ Users)

Other interests

  •  Debugging tools. I am the sole author of Leak Browser – a Valgrind like tool, for diagnosing resource leaks in compiled code. This is innovative, high performance, and non-intrusive.
  • Software practices to make code more robust, I’ve lately been using eUML compile time defined C++ state machines.
  • Renewable energy – our 1960 built home is solar powered, geothermal heated, and hacked for more efficiency, including novel home-made electronic controls.
  • Film producer, I am also, on occasion a film producer as my life partner is a film director. So I have an interest in low level code and massively parallel code that is used in film editing and rendering.

Off-shore work
I have been technical team lead of a team in London while I was telecommuting from New York, and I’ve worked with or led teams in Bangkok from both New York and Bangkok, and I’ve led teams in New York from New York.

Anti-skills
To get the job done more quickly I don’t mind an occasional compromise, but if all you want is compromise I’m probably not the engineer you want. I take great pride in ‘my/your’ code. I understand that the code belongs to you, but I will think of it as ‘my code’, and I want my code to be robust and elegant. So as not to waste everybody’s time here are some things I am not good at or just don’t want to work with:

  • 4000 line Perl functions – enough said!
  • 1000 line shell script files – that’s not what shell script is for!
  • A little Java Script is okay, but large scale Java Script – sorry it is just not my thing (unless we’re compiling to Java Script from something else).
  • Still using really old compilers – let me help you upgrade, but don’t tie my hands to technology from a decade or more ago!

Comments are closed.