versão em português

Rodrigo Luis de Godoy Strauss Mello Vieira

Personal Info

I live in São Paulo, Brazil and my e-mail is rodrigo@1bit.com.br. For more info, please check http://www.1bit.com.br/content.1bit/about.

Objective

Act as Software Developer/Architect in project developed in C++ and/or Assembly and/or Python, mainly focusing the following areas: information security, financial, scientific, distributed systems or system software.

Awards

Microsoft Most Valuable Professional in Visual C++
Nominated because of contibution to Brazilian C & C++ community, "C & C++ Brasil".

2006 Person of The Year, Time Magazine
Co-nominated as everyone who creates "user generated content"

Certifications

Microsoft Certified Professional
"Developing Desktop Applications Using Microsoft Visual C++"

Microsoft Certified Professional
"Developing and Implementing Windows-based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET"

Microsoft Certified Professional
"Developing and Implementing Windows-based Applications with Microsoft Visual Basic.NET and Microsoft Visual Studio .NET"

Qualifications

Languages: C++ (12 years), Python (4 years), VB6, C#, VB.NET, Python and Assembly x86.

C++: C++ ISO, C++0x, Boost Libraries. Visual C++ and GCC. ATL/WTL (COM/COM+ objects, ActiveX, GUI), MFC, STL, Winsock (TCP/IP), ISAPI, GDI+, Windows Services, Windows DDK (Driver Development Kit). Windows CE and PocketPC development.

COM: COM+ development experience. ActiveX controls, Connection Points, transactions, component pooling, custom marshalers, monikers, plugins and extensions systems.

Windows Server: COM+ Components, Windows Server 2003 Cluster resource DLLs, applications using MSMQ, locally or clustered.

Kernel mode development: Device Drivers development for Windows NT4, 2000, XP and 2003 (DDK). Experience developing using the IFS (File System and File System Filter). WDM and NDIS knowledge.

Linux: Linux server management, C++ and Python development. Web development using PHP, Python (Django) and MySQL/sqlite.

Financial, scientific and high performance: Assembly x87, MMX, SSE and SSE2. Distributed/parallel processing and multithread.

Information Security: Biometrics, symmetric and asymmetric cryptography. Windows Security and Authentication systems. TCP/IP, firewall, VPN.

Development and support tools: Numega SoftICE, WinDBG, VMware, VirtualPC, Subversion, VIM.

Networking: TCP/IP software development. Windows Network software (including Active Directory).

Database: SQL Server, mySQL, Microsoft Access, BerkeleyDB and SQLite.

Professional Experience

Cofounder and CTO
Intelitrader - Semptember/2011 until present

  • Main Designer and coder of the following products: InteliMarket (Market Data Server) and InteliOrder (Order Management System with pre-trade risk control)
  • SCRUM using Redmine and Mercurial

System Architect / C++ Developer
Agência Estado - June/2010 until August/2011

  • Lead Developer and Architect on the New Trading Station Project
  • Message Routing core development, using C++0x and Boost Libraries
  • Responsible for implementing SCRUM-like methodology, using TRAC and SVN.

C++ Developer
Link Investimentos - November/2009 to May/2010

  • Home Broker Market Data Feed Server, using C++ and Boost Libraries. BM&F FIX MD feed handling and BOVESPA RLC/MMTP data feed handling.
  • System integration with SINACOR, the back-end management system provided by BM&FBOVESPA

C++ Developer / Project Manager
Brazilian Mercantile & Futures Exchange / MACSYS Trader - December/2004 to October 2009

  • Lead Developer on BMF's WebTrading platform. Responsible for architecture, design, maintenance and coding, mainly using C++ language. Responsible for coding Market Data Server and OMS. Multithreaded modules, communicating using TCP/IP, DCOM, MSMQ and FileMapping. Mutilplatform Order and Market Data Gateway using C++ and Boost Libraries.
  • FIX: all the server side software uses FIX to communicate to BMF's Order Matcher. Responsible for the architecture change during the migration from MMTP/RLC to FIX
  • Build automation scripts using Python
  • COM+ components (ATL).
  • Server software using OpenSLL
  • Performance optimization in existent software, including using of my knowledge in Windows Kernel and file system drivers to optimize components.
  • Windows Server 2003 cluster resource DLL. This DLL manages Windows Services and has a thread pool to monitor all the instances (150 approximately).
  • Architecture and implementation of a failover and load balance framework to be used by services needing high availability outside the Windows 2003 Server Cluster, routing messages to COM+ components.
  • ISAPI DLL, to broadcast assets prices to a Web Client (Ajax).

.NET Software Developer
Companhia de Desenvolvimento Habitacional e Urbano de São Paulo / Mastersoft Tecnologia - April/2004 to December/2004

  • Software development using Visual Basic.NET and C#
  • Network setup software development, using Visual C++ and C#
  • PocketPC software development, using .NET Compact Framework and SQL Server CE

Software Developer
SCUA Information Security Ltda - August/2002 to January/2003 - May/2003 to March/2004

  • Security software development, using Visual C++ and Assembly.
  • File System Filter drivers development, using the Microsoft IFS Kit. Real time file encryption, using the IDEA algorithm.
  • Out-process COM component developed using ATL, to control a USB token.
  • Applications: Configuration Wizard and a driver communication app, developed using WTL an MFC. Cryptography key management, and validation using MD5
  • Biometrics authentication software development, interacting with Siemens biometric mouse. GINA (Windows Authentication DLL).
  • Maintenance in a DDE comunication module to log Internet Explorer and Netscape accessed URLs.
  • Technologies used: MFC, ATL, WTL , STL, DDE, COM+, DCOM.

Software Developer and Architect
Itaú BBA Bank / Ogeda - January/2003 to May/2003

Market Risk software development, using Visual C++, Visual Basic and SQL Server. Software Analysis and documentation, statistical calculation, performance optimization, RUP

  • Software Analysis and specifications creation to Visual Basic developers, using the RUP methodology.
  • Market Risk software development, using Visual C++. Statistical calculation and extensive use o STL

Software Developer and Architect
Fundação Sistema Estadual de Análise de Dados de São Paulo / Mastersoft Tecnologia Ltda - August/2001 to August/2002
Big project, development team leadership. Distributed Components, ASP, ASP.NET. Visual Basic, Visual C++, SQL Server, C#.

  • Development team leadership
  • Analysis and development in a 8 months project, using the Windows DNA Architecture (Visual Basic COM objects, SQL Server 2000 backend and ASP frontend).
  • Network link management software, developed using Visual C++. Usermode Windows DDK API to device management.
  • Company intranet, using ASP.NET and C#

Manager
DEVSOLUTION.com.br - September/2000 to August/2001
Internet library management

Software Developer and Architect
Virtualway Internet - January/1998 to August/2000

TCP/IP software development, CGI ,ASP, SQL Server and internet provider administration using Windows NT.

  • C language CGIs
  • Video conference software development, using Winsock, ASP and the Microsoft Netmeeting automation API.
  • Access and users controls software

Given Courses

Brazilian Mercantile & Futures Exchange (BMF) - november 2005

  • "Advanced Visual C++" course, to BMF employees and consultants
  • 144 hours, covering the C++ language, STL, Windows Services, COM, COM+, Thread and Win32 in general

Instituto de Tecnologia de Software - april 2005

  • "Visual C++" course, to Semp Toshiba employees
  • 90 hours, covering the C++ language, MFC and ATL

Universidade São Judas Tadeu - summer course

  • 15 hours, to Computer Science students

Given Lectures

Por Dentro do Windows: Gerenciamento de Memória (Inside Windows: Memory Management)
  • June 2006, Semana de Engenharia do Instituto Mauá de Tecnologia, at Instituto Mauá de Tecnologia
  • September 2006, DEVTECH 2006, at Microsoft Brasil headquarters.
  • October 2008, C & C++ Brazil users group meeting
Hands on: Trabalhando com Threads (Hands on: Working with Threads)
  • October 28 2006 - "Codificando.Net - 3 anos de atuação"
Boost.Asio
  • April 2006 - C & C++ Brazil users group meeting

Open Source projects

OmniObjects: Free alternative do Microsoft DCOM, a runtime to distributed objects. C++, Windows only

Tio: Multiplatform container server (key/value, list, queue), focused on publish/subscribe pattern. C++, Windows, Linux, MacOSX

Primo: PRocess Instantiator and MOnitor. Python, Windows and Linux

Graduation

BS in Computer Science, Universidade Nove de Julho, 2010

Idioms

Native Portuguese
Fluent English

Some technical books read (or reading)

"The C++ Programming Language"
"Exceptional C++"
"More Exceptional C++"
"Windows Internals"
"Kernel Mode Drivers: Windows 2000 DDK"
"The Windows 2000 Device Driver Book"
"Programming The Windows Driver Model"
"Programming Windows Security"
"Inside COM+ Base Services"
"Undocumented Windows 2000"
"Python in a Nutshell"
"Inside Windows NT File System"