Ivan Krivyakov, M.Sc.

Software Architect / Technical Lead

E-mail: ivan@ikriv.com


GENERAL SKILLS
 
  • 15+ years in software development.
  • Certified SCRUM Master
  • Experience in architect, technical lead and team lead roles.
  • Advanced hands-on expertise in .NET, C#, MS SQL Server, C++ and other technologies.
  • Development of scalable and highly available distributed applications.
  • Development of multi-threaded and real-time applications.
  • Test-driven development, unit testing, agile development, refactoring, continuous integration.
  • Object-oriented analysis and design. Application of design patterns.
  • Ability to develop a project from the ground up, manage risks, milestones, and deadlines.
  • Experience in communication with users and formalizing requirements.
  • Diverse programming expertise - from device drivers to multi-tier client/server applications. Large spectrum of programming languages: from Assembler to C#.

SOFTWARE TOOLS, TECHNOLOGIES AND METHODOLOGIES

Platforms:.NET, Windows (Win32), UNIX (Linux, Solaris, HPUX)
Programming Languages:C#, C++, Java, JavaScript, VB, VB.NET, Pascal, Fortran, LISP, PL/M, Assembler x86, UNIX shell scripts
Technologies and tools: Windows Forms, Web Services, WCF, ASP.NET, ADO.NET, CAB/SCSF, Smart Clients, nUnit, Rhino.Mocks, CruiseControl.NET, COM, DCOM, MFC, ATL, HTTP, HTML, XML, Win32 API, Java6, JAXB, Apache Tomcat
Development Environments:Visual Studio, Eclipse, Emacs
Databases:MS SQL Server, Sybase
Methodologies:Test-driven development, agile, continuous integration, object-oriented analysis and design, design patterns, UML

Other skills:

  • Development of portable C and C++ code for Unix, Windows.
  • Software development in compliance with ISO 9000 standards. 9000 standards. Programming for international markets. Writing programs that handle foreign text and messages (German, French, Spanish, Japanese, Chinese, Russian, Arabic, Hebrew).

EMPLOYMENT HISTORY

 

2006-present
Sungard Consulting Services, former Finetix LLC
Senior Managing Consultant

Provided consulting services to major investment banks in New York City

  • Acted as an advisor and hands-on contributor for a Prime Brokerage financial application (C#, WPF, WCF).

  • Acted as a hands on tech lead for a team responsible for a front-end and part of a back-end of a trade clearing platform (C#, WPF, WCF, Java, CXF).

  • Led a team that implemented a CDO pricing solution for a hedge fund (C#, WPF, SQL Server 2005).

  • Worked on a C#/WPF risk management application. Learnt WPF tips and tricks from some of the best experts in the industry.

  • Implemented trade routing solution (C#) that connected a number of commodity trading platforms (GL, TT). Worked with a team as a tech lead.

  • Implemented a price assessment and marketing application for a major utility company (C#, Windows Forms).

  • Supervised architecture of a CAB-based GUI framework (C#) used by several financial applications. Implemented a number of improvements to the Java back-end that communicates with the framework.

  • Developed a credit event notification system (C#, Java) based on the aforementioned framework. Implemented the C# front-end and served as a technical lead for a team of Java developers that implemented the back-end.

  • Analyzed, planned and developed Manual Confirmations processing for foreign exchange trades (C#/Windows, Java/Linux, Sybase) in close cooperation with business users. Followed agile development practices.

  • Investigated and developed prototype for securing SOAP/HTTP communication between Windows client and Apache AXIS server with Kerberos conforming to the WS-SECURITY Kerberos token profile. Worked in both C#/Windows and Java/Linux environments.

  • Re-architected GUI front-end of a foreign exchange straight-through processing system (Windows desktop application, C#). Split monolithic system into several parts (shell+plugins) that are now developed independently by several teams. Introduced automated build and unit tests, greatly improving system stability in the process. Trained a team of software developers that continues to support this project.

  • Contributed to the Rhino Mocks open source project. Greatly extended the set of types that can be mocked by adding mocks that use .NET remoting real proxy mechanism.

2004-2006
Bloomberg L.P. New York, NY
Architect/Technical Lead
  • Hands-on architect and technical leader of Smart Client project. Smart Client is a distributed n-tier application that allows publishing, deployment, execution and automatic update of .NET plug-ins for Bloomberg Terminal.

    Smart Client uses C#, C++, Web Services, SSL, load-balanced web farm (IIS), and SQL Server 2005 database cluster. It is highly available scalable system that serves over 300,000 users worldwide. Multi-threading is used heavily in several parts of the system.

    Developed initial prototype of the system. Produced architecture and high-level design of Smart Client, using Visio and "Enterprise Architect" tool. Wrote functional specifications for the majority of system components. Provided technical leadership to the team. Personally developed most of the business logic and data access tier, and portions of presentation tier.

    Smart Client is developed by a team of 10 software engineers using agile-style development process. The project extensively uses unit testing (nUnit), and continuous integration.

  • Led the effort for the integration of Smart Client with homegrown UNIX-based GUI environment called "Launchpad". Windows part of the integration package is written in C# and C++, UNIX part is written in plain C. UNIX part is portable code running on AIX, Solaris and HPUX. Provided design and implementation of the key components, and coordinated contributions of 3 other people to the project.

    Created C API for UNIX developers, that allows invocation and control over Smart Client applications from Laucnhpad. Created messaging framework that allows Smart Client application authors to communicate easily with Launchpad infrastructure.

  • Developed "Report control" for Bloomberg Terminal. Report control is a Windows-based control remotely controlled by UNIX server. Used C++, MFC (Windows side), portable C code on UNIX side (worked on AIX, Solaris, HPUX and DG/Intel). Used XML for communication between UNIX and Windows (libxml library).

1999-2004
OptiMed Technologies, Inc. Fairfield, NJ.
Senior Software Engineer

  • Pioneered with .NET technology in the company. Performed extensive research on web services, .NET remoting, XML, Windows Forms and other .NET technologies.
  • Designed and developed an MSMQ component in C# for deferred storage of patient demographic reports.
  • Produced functional specification, architecture, design and implementation of new generation multi-modality medical imaging application (ReviewX). The application displays single-frame and multi-frame medical images stored in variety of formats (DICOM, AVI, proprietary), and provides a rich set of diagnostics and analysis functions to the doctor.

    ReviewX is an n-tier distributed application that uses Visual C++, MFC, ATL, ADO, COM/DCOM, SQL Server, and Windows Services. Applied a number of design patterns: Model-View-Controller, Decorator, Composite, et al., in order to improve quality of the design.

  • Designed and developed 2-tier Web-based medical imaging system (Optibrowse) using ISAPI extensions, Visual C++.
  • Designed and developed DICOM print package for medical imaging application with print preview and annotation features. Connectivity to conventional printers, laser imagers, DICOM printers. Using Visual C++, MFC, Merge library.

1995-1999
CMT Medical Technologies, Ltd. Haifa, Israel.
Software Engineer, then Team Leader

  • Led a team of 4 software developers.
  • Developed advanced image acquisition protocols for real-time medical imaging application; the protocols involved real-time control of third-party and in-house hardware. Multithreaded real-time programming in C++, inter-process communication, Windows NT device drivers for PCI and ISA boards, interrupt handling, scatter-gather DMA using PLX 9060/9080 chipset, etc.
  • Performed maintenance of complex medical imaging application. Cooperated with service department, managing database of bugs and features, version control, work plans, ISO-9000 documentation, etc.
  • Developed real-time simulator of X-ray generator (GUI, multithreaded programming).
  • Developed a program that launches child process and "spies" on its Win32 API calls using Win32 debugging API.
  • Participated in design and implemented core components of real-time medical imaging application. Sophisticated user interface development using MFC and Win32 API, multithreaded real-time programming, inter-process communication, control of custom hardware using Windows NT device drivers. Used ODBC, DAO, Microsoft Access.
  • Implemented from scratch Windows NT device driver for custom frame grabber and image processing board. Real-time programming, using Windows NT DDK and WinDK library; Interrupt handling, scatter-gather DMA using PLX 9060/PLX 9080 chipset, system threads, DPCs, etc.
  • Developed DICOM Print and DICOM Store solution for medical imaging application using Merge Library.
  • Developed image processing algorithms using MMX and assembly language.
  • Developed embedded program for custom keyboard with Intel 8051 processor using PL/M language
  • Implemented diagnostics software for custom keyboards using Borland C++ and OWL library.
  • Implemented major improvements to embedded medical application based on PDP-11 compatible processor, using Pascal and PDP-11 assembly language. RSX operating system.
  • Participated in administration of e-mail and DNS systems on Sun OS machine.

1993-1994
Product Computers, Ltd. Haifa, Israel.
Software Engineer

  • Developed handwriting recognition system for Hebrew language. Using Borland C++, OWL, Windows 3.1.

1992-1993
Interface, Inc. Tomsk, Russia
Software Engineer

  • Developed scientific applications (simulation of physical processes) using Turbo Pascal, Borland C++ under DOS operating system.

EDUCATION

 
1999 Sela, Ltd. Haifa, Israel Implementing design patterns in C++ (40 hours course)
1995 Michlelet Hi-Tech. Hertsliya, Israel Windows NT Device Drivers (40 hours course)
1993 Tomsk State University. Tomsk, Russia. M. Sc. in Mathematics and computer science, cum laude

LANGUAGES

 
  • English - fluent
  • Hebrew - fluent
  • Russian - mother tongue