Filip Fodemski's CV

Name: Filip Fodemski
PDF: This page in PDF format

Personal skills

A fast learner, creative and self motivating - I work well alone or as part of a team. My main skills are in architecture and development of large and distributed software systems. I am eager to learn new skills, increase my knowledge and remain technically focused. I interact well with other members of the team and enjoy taking on a mentoring role. I have experience of managing small projects on a technical level. I can offer consultancy in my areas of expertise.

Technical skills

  • 20 years of C++ programming experience in Windows and UNIX environments,
  • Over 10 years of COM programming, i.e. ATL, VBA etc.
  • Over 10 years of .NET programming experience on Windows,
  • 4 years of C programming experience on UNIX (Solaris, SunOS)
  • Design and implementation of applications which rely heavily on object technologies (Microsoft's COM) and networking.
  • Considerable experience in most stages of the software development life cycle: from early requirements capture and specification to deployment and support.
  • Systems and application programming: design and implementation of distributed (and cross-platform) object-oriented systems and high performance multi-threaded applications.
  • Design and development of applications which take advantage of large compute farms (or grids).
  • Thorough understanding of and a lot of hands on experience in: XML, XML Schema, XSLT, Web Services and WSDL, SOAP, HTTP.
  • Over 10 years of Investment Banking experience, mainly Fixed Income and Equities Derivatives IT systems.
  • 15 years of designing and implementing distributed, high-performance pricing and Market Risk systems.
  • 5 years of designing and implementing Windows client applications mostly using MVVM on WPF.


The list below is project-oriented, rather than being a company-centred time line. This means that to reconstruct such a time line you must aggregate by company. The entries are already sorted in reverse-chronological order.

23 Val Fleuri
L-1526 Luxembourg

January 2012 to Present

Skills used: C#, WPF, SQL Server 2008

We are developing and maintaing a Study Management System for labs involved in testing of medicine, foods etc. This is a modular WPF application written in C#.

Credit Suisse
One Cabot Square,
London EC14 4QJ

August 2008 to June 2009

Skills used: C++, C#,.NET, TCP/IP, COM, ATL, STL, boost

I held the position of Vice President in the Derivatives IT department. A senior member of the DiVA team, we developed software for a high-performance distributed calculation system, also known as a farm or grid. Its main uses are in Monte Carlo valuations (establishing values of products), but risk valuations (future market scenarios) are making an increased demand on available infrastructure and compute power. I was also tasked with improving parts of the system through better code quality and test coverage. One of my more specific projects was to improve end-to-end performance by using compression within the networking subsystem.

Credit Suisse
One Cabot Square,
London EC14 4QJ

September 2006 to August 2008

Skills used: C#, .NET, C++, Excel, COM, ATL, STL, boost

My main responsibility was to improve the design and implementation of an Exotic Equities Portfolio Risk Management System. The system started as a Microsoft Excel automation framework. To meet increased demand, in early 2008, work started on a prototype for a replacement system. After successful demos to traders and senior management, we delivered a first working version, covering a limited set of product types. I was involved with the overall design, architecture and implementation, due to my extensive knowledge of the bank's systems in particular, and technology in general. Subsequently, my efforts concentrated on improving calculation performance through better handling of market data.

Credit Suisse
previously Credit Suisse First Boston
One Cabot Square,
London EC14 4QJ

July 2004 to August 2006

Skills used: C++, Windows 2000, XP, Excel, COM, ATL, STL, XML, C#, .NET, Oracle

I worked in the Hydra Core Development team, improving performance and scalability of this strategic Equity Derivatives Portfolio Management system. My main achievements were in improving performance of the system through task parallelization, better CPU utilization, re factoring and removal of COM from performance critical parts of the system. Another important project involved automation of Microsoft Excel, by the new system, to allow the prototyping of pricing models for exotic equity products. We spent considerable effort on encapsulating pockets of system functionality as services exchanging messages. One result of this was the implementation of a reporting system for senior management. Mainly bridging and changing old systems and spreadsheets to use the new messaging services, we enabled better reporting of risk aggregated across books, desks and business units. This was done by collecting published messages from various systems and storing the results in Oracle using ODP for .NET. Senior management could then view reports generated using a set of stored procedures.

Credit Suisse First Boston
One Cabot Square,
London EC14 4QJ

March 2002 to June 2004

Skills used: C++, Windows 2000, COM, ATL, STL, XML, C#, .NET, ACE toolkit

I worked in the Fixed Income Derivatives Core Technology team. CoreTech provided, amongst other things, a high-performance, distributed valuation engine. The main use of such a system is for Market Risk calculations. However, due to its architecture, it can also be used as a pricing engine (responding to market data changes in near-real-time). I was involved with maintenance and development of a market risk valuation system, the re-design of the market data parts of system, and re-factoring of existing components. This mainly involved the encapsulation of functionality behind COM interfaces and through web services.

Barclays Capital
5 The North Colonnade
London E14 4BB

Sept 2001 to March 2002

Skills used: C++, Windows NT, COM, ATL, MSMQ, STL, XML

I was a Manager Level Developer with the Emerging Markets group. We were tasked with releasing a trading system to the company's offices in South Korea. Subsequent to the release we re factored the application and its modules in anticipation of more releases around the world.

Credit Suisse First Boston
One Cabot Square
London EC14 4QJ

June 2000 to June 2001

Skills used: C++, Windows NT, COM, ATL, STL, XML, XSLT, HTTP, ASP

I worked in the Fixed Income Derivatives (FID) Core Technology team, as an Analyst Developer. This team provided core frameworks and applications for other FID development teams. My main task was to develop a high-performance, multi-threaded pricing engine in C++, for use with the bank's analytics in pricing calculations. I was also involved in modelling bonds for use in the engine and many other applications within FID.

Credit Suisse First Boston and
Credit Suisse Financial Products
One Cabot Square
London EC14 4QJ

September 1997 to March 2000

Skills used: Windows NT, Unix, C++, Sybase, Visual Basic, COM, ATL, ODBC, OLE-DB, STL, RogueWave, LDAP, shell scripts.

I worked as a Consultant in the Tools and Technology Team. This team provided the core code for other development teams, examined new technologies to see how they can be used within the bank. We also helped mentor and train other teams to use appropriate technology to solve their problems. In addition to working within the team we were sent out to other teams within the bank, to provide assistance in project delivery and training.

Key projects:
  • core technology, C++, NT COM development: providing COM interfaces onto our in-house C++ libraries.
  • data access from our in-memory database, 3-tier servers and a custom Generic ODBC Driver - all the way up to VB and external web sites.
  • Real-Time Data Server (Solaris) for providing access to live Reuters Market Data using Tibco's Teknekron and Rendezvous feeds.
  • design of an access control model for our server security library. Evaluated the use of Directory Services and LDAP for this purpose.
  • code generation for a working client-server pair based on an IDL specification of the server's API. This level of code generation was made possible through an in-house COM-to-RPC mechanism using RogueWave's streaming classes (found in Tools.h++) and a custom implementation of the IDispatch COM interface.

Fidelity Investment Management Limited
Oakhill House
Tonbridge, Kent TN11 9DZ

1996 to 1997

Skills used: Windows NT, UNIX, C++, STL, MFC, Sybase SQL, COM

Held the position of Analyst Programmer in the Multi-Currency Deal Management System and Application Support Teams. My responsibility was to help develop and maintain client-server, 2-tier applications used by the company for its foreign exchange dealings and numerous investment products. I worked on a number of projects using my skills in C++, MFC, SQL on Sybase, Windows 98, NT 3.51 and UNIX.

Philips Research Laboratories
Cross Oak Lane,
Surrey RH1 5HA

1994 to 1996

Skills used: Workflow Analysis, OOA/OOD

Held the position of Research Scientist in the Software Engineering and Applications Group. My main objective was to generate new ideas to improve the company's software and systems development. Apart from this pure research role, my responsibility was also to act as a consultant to various product divisions, within the Philips Group, in the area of object-oriented development, requirements capture, analysis and design. One of the projects I worked on was chosen for presentation to the Board of Management of Philips at the Concern Research Exhibition in Holland.

Department of Computer Science
University of Manchester
Oxford Road, Manchester M13 9PL


Skills used: Unix, C

My task was to design and implement (in C) a mapping between the EDIF and CFI formats for transferring CAD data. We presented the working programs at the EURO DAC `92 conference in Hamburg, Germany.

Department of Computer Science
University of Manchester
Oxford Road, Manchester M13 9PL


Skills used: Unix, C, X Windows

My task was to design and implement (in C) a Printed Circuit Board routing algorithm with a graphical interface, to serve as a demonstration program for a CAD course.


Department of Computer Science and Department of Mathematics
University of Manchester
Oxford Road, Manchester M13 9PL

1990 to 1993 First Class Joint Honours, Bachelor of Science in Computer Science and Mathematics

Final year project: parallel programming in C. This project involved the design and implementation of a parallel version of the ray tracing algorithm - an image rendering technique. The working program was developed within a C environment running on a rack of 64 transputers.

Tadeusz Czacki High School

1986 to 1990 Maths A, Physics A

Results from this school were accepted in the U.K. by the Joint Matriculation Board as equivalent to A-levels.

Formal training

  • Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems - 8 week course by Vanderbilt University on-line (July 2014). View certificate.
  • Essential SQL Server 2005 for Developers - 5 day course by DevelopMentor in London (February 2006)
  • XML Web Services .NET - 5 day course by DevelopMentor in London (December 2002)
  • Microsoft Windows Programming with C++ and the MFC Library (v2.5) - 5 day course by QA Training in London (April 1996)
  • Introduction to Foreign Exchange - 3 day course by BPP Training and Consultancy in London (November 1996)
  • Introduction to Derivatives - 3 day (on-site) course by BPP Training and Consultancy in London (September 1997)


  1. S. A. Higgins, P. A. Gough, F. Fodemski, "Exploitation of Hypermedia in Software Requirements Engineering", Multimedia Toolbook Conference, August 1994. Download proceedings from here.
  2. P. A. Gough, F. Fodemski, S. A. Higgins, S. J. Ray, "Scenarios? An Industrial Case Study and Hypermedia Extensions", Proceedings of the Requirements Engineering Conference RE95, April 1995. More information can be found here or from Philips Research.


My interests include travel, hiking, running, swimming, badminton, squash, tennis, pedal- and motor-cycling. I also enjoy mixing and DJ'ing (played techno and house music in London and Warsaw clubs). I try to spend most of my holidays travelling.

You can read my blog or visit my LinkedIn Profile.