About

Marius


  • Twitter


  • Language skills
    1. Romanian – native
    2. English - advanced
    3. French - basic


  • Programming Skills
    • C++/C++11
      • Direct X 9/11/12
      • Vulkan
      • GNM/GNMX
      • NVN
      • OpenGL3+
      • OpenGL ES2/3+
      • WebGL/WebGL2
      • Angle
      • wxWidgets/MFC/Win32 API
      • boost
      • OpenAL
    • CMake
    • Python
    • C#
    • HTML/CSS/Java Script
    • Java
    • SQL (MSSQL/MySQL)
    • ASM (x86/x64/AMD ISA/AMD RDNA) – FIXME
    • PHP
    • ASP
    • VB Script


  • Cross platform development:
    • Windows/Windows Universal Apps
    • PS4/PS4 Pro/PS5/PS5 PRO
    • XBox One/XBox Series X
    • Nintendo Switch
    • Linux/Google’s Gaming Platform
    • OSX
    • iOS
    • Android
    • emscripten


  • Linux administrator skills


  • Education
    • 10/2010 - 06/2012 Politehnica University of Bucharest Masters Complex Multimedia Signals Processing
    • 10/2006 - 06/2010 Politehnica University of Bucharest Diploma Computers and Automatics department specialized in Systems Engineering
    • 09/2002 - 06/2006 Colegiul Tehnic Miron Costin High School Computer Science


  • 09/2008 - present Experience in C++/wxWidgets/OpenGL/WebGL2/Vulkan/DirectX11/DirectX12
  • Job Title: ‘Dreamer Game Engine’ – personal project
    • implemented in C++, using wxWidgets, a portable GUI library for multiple operating systems
    • various rendering backends (OpenGL/WebGL2/Vulkan/DirectX11/DirectX12)


  • 09/2023 - 09/2024 Experience in C++/D3D11/D3D12/GNM/GNMX/NVN
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘FC 25’ project for ‘Electronic Arts’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • send back to Frostbite most of the divergences in our Grass extension and align it with the other sport titles
    • reduce divergences and inherit more Icepick tests from vanilla Frostbite
    • graphics related bugfixes and optimizations


  • 09/2022 - 09/2023 Experience in C++/D3D11/D3D12/GNM/GNMX/NVN
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘FC 24’ project for ‘Electronic Arts’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • officially switched FC to using the new RenderCore2 code paths
    • graphics related bugfixes and optimizations


  • 09/2021 - 09/2022 Experience in C++/D3D11/D3D12/GNM/GNMX
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘FIFA 23’ project for ‘Electronic Arts’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • migration to RenderCore2 (next generation rendering abstraction layer)
      • migrating the FIFA specific extensions from RC1 to RC2 (EARain/FIFA Indicators/Grass/LightmapGen/Swarm/Apt/…)
      • identifying Frostbite divergences on the RC1 code paths and ensuring they were mirrored correctly in the RC2 paths
      • identifying RC2 limitations/regressions based on FIFA use cases and work with Frostbite to address them
      • measuring overall performance in the new RC2 code paths and ensuring we can still reach the performance targets we already had in RC1 (architectural changes introduced unnecessary depth decompresses or resource barriers)
    • graphics related bugfixes and optimizations


  • 09/2020 - 09/2021 Experience in C++/D3D11/D3D12/GNM/GNMX
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘FIFA 22’ project for ‘Electronic Arts’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • implement a custom PSO cache (collection mechanism and boot preload of the most common PSO’s used)
    • look over the infrastructure and code changes required to start using the Frostbite Icepick system. Icepick is a unit test system that checks against provided reference images for differences in our rendering output in order to speed up the discovery of bugs and regressions introduced by code changes.
    • graphics related bugfixes and optimizations


  • 09/2019 - 09/2020 Experience in C++/D3D11/D3D12/GNM/GNMX
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘FIFA 21’ project for ‘Electronic Arts’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • implement GPU breadcrumbs for the PS4 platform (provides extra details about the location of GPU crashes)
    • graphics related bugfixes and optimizations


  • 03/2019 - 09/2019 Experience in C++/D3D11/D3D12/GNM/GNMX
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘FIFA 20’ project for ‘Electronic Arts’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • rendering code ramp up for the Frostbite game engine
    • graphics related bugfixes and optimizations


  • 10/2018 - 03/2019 Experience in C++/D3D11/D3D12/GNM/GNMX
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘Ghost Recon Breakpoint’ project for ‘Ubisoft’ (Bucharest RO)
  • Game Engine: In-house engine ‘Frostbite 3’ https://en.wikipedia.org/wiki/Frostbite_(game_engine)
    • bugfixing, profiling and optimizations of the engine and rendering code (PIX/RenderDoc/NVIDIA Nsight/internal tools)


  • 03/2017 - 10/2018 Experience in C++/D3D11/D3D12/GNM/GNMX/Vulkan
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘Assassin’s Creed Odyssey’ project for ‘Ubisoft’ (Bucharest RO)
  • URL: https://assassinscreed.ubisoft.com/game/en-us/home/
  • Game Engine: In-house engine ‘AnvilNext 2.0’ https://en.wikipedia.org/wiki/AnvilNext
    • implemented shore wave sound emitter system (grid of probes/depth buffer/stencil mask used for cheap method of determining interactions)
      • emit sounds for rolling waves
      • emit sounds for waves dissipating into the shore
      • emit sounds for collisions between waves and environment/entities
    • work on custom river system used on rough terrain
      • work on water visuals,flow and transition to FBM/FFT water
      • work on entity interactions (displacements/particle trails)
    • work on water/underwater look and feel
    • work on rain optimizations
    • bugfixing, profiling and optimizations of the engine and rendering code (PIX/RenderDoc/NVIDIA Nsight/internal tools)
    • fixes and optimizations specific for the new GGP platform (Google’s Gaming Platform)


  • 04/2016 - 03/2017 Experience in C++/D3D11/GNM/GNMX
  • Job Title: ‘Software Engineer/Render programmer’ on the ‘Ghost Recon Wildlands’ project for ‘Ubisoft’ (Bucharest RO)
  • URL: https://ghost-recon.ubisoft.com/wildlands/en-us/home/
  • Game Engine: In-house engine ‘AnvilNext 2.0’ https://en.wikipedia.org/wiki/AnvilNext
    • implement GPU hang tracing on PS4 (similar to NVIDIA Aftermath on PC)
    • work on supportig D3D11 deferred contexts GPU markers
    • implement multigpu support on PC
      • support NVIDIA SLI using NVAPI (NVIDIA’s core SDK that allows direct access to NVIDIA GPUs)
      • support AMD Crossfire using AGS (AMD GPU Services Library)
    • bugfixing, profiling and optimizations of the engine and rendering code (PIX/RenderDoc/NVIDIA Nsight/internal tools)


  • 10/2014 - 09/2015 Experience in C++/Javascript/DX9/WebGL/ES2/OpenGL3+/Angle
  • Job Title: ‘Software Engineer/Game Engine Developer’ on the ‘Runescape 3 (NXT Client - port from java to C++11)’ project for ‘Jagex’ (Cambridge UK)
  • URL: http://www.jagex.com/
  • Game Engine: In-house engine ‘NXT/RuneTek 7’
    • worked on the C++ cross platform game client
      • worked on python/cmake/bamboo build system and CI for new cross platform engine (windows/linux/osx/emscripten/ios/android)
      • implemented the memory tracking and tagging system
      • worked on profiling and optimizations using Intel VTune/Intel GPA/Nvidia Nsight
      • refactored runescape model format to allow faster loading and easier merging of meshes at runtime
      • multithreaded mesh combining based on material properties
      • multithreaded assets loading code that was blocking in the previous client
      • worked on rendering command gathering, sorting and merging


  • 06/2014 - 10/2014 Experience in JavaScript/HTML5/WebGL
  • Job Title: ‘Software Engineer/Game Engine Developer’ on the ‘Runescape 3 (HTML5 Client)’ project for ‘Jagex’ (Cambridge UK)
  • URL: http://www.jagex.com/
  • Game Engine: In-house engine ‘HTML5/RuneTek 7’
    • worked on the HTML5 game client
      • rewrite rendering code to support command gathering and sorting to help reduce OpenGL state changes
      • profile and optimize shaders
      • implement various post processing effects like DOF/BLOOM/SSAO


  • 02/2013 – 06/2014 Experience in C++/DX9/Java/C#/Lua
  • Job Title: ‘Software Engineer/Game Engine Developer’ on the ‘Transformers Universe’ project for ‘Jagex’ (Cambridge UK)
  • URL: http://www.jagex.com/
  • Game Engine: In-house engine based on ‘RuneTek 5’
    • worked on memory allocation tracking and tagging for the game client
      • implement external memory tracking system that injected hooks at runtime into the clients memory allocation functions (similar to the way Intel Pin inserts callback hooks)
      • implement memory tracking scoped tags to allow easy identification of the memory owners
      • implement memory tracking context tags to allow monitoring tasks that occurred over multiple threads
      • generate graphs and statistics based on the collected data
    • worked on various game client bug fixes and optimizations
    • work on Maya exporter plugin
      • worked on loosy keyframe compression for animations
      • implement “engine preview” mode where the artist could view models/materials/animations in a new viewport that used the engine rendering pipeline


  • 06/2012 - 12/2012 Experience in C++/OpenGL/DX9/DX11
  • Job Title: ‘Software Engineer/Game Engine Developer’ on the ‘Starsonata MMO’ project for ‘Starsonata, LLC’ (Bucharest RO)
  • URL: http://www.starsonata.com/
  • Game Engine: Open source engine ‘Irrlicht Engine’ https://en.wikipedia.org/wiki/Irrlicht_Engine
    • worked on rendering features and optimizations for the game client:
      • implemented post processing effects SSAO (screen space ambient occlusion)/HDR (high dynamic range)/Bloom/Various distortions
      • implemented new effects for lasers/force-fields/warps
      • optimized billboarding and text rendering by generating groups and minimizing the number of D3D calls
      • switched layered background rendering to premultiplied alpha and optimize overdraw
      • convert textures to BC1/BC3 (DDS with DXT1/DXT5) based on the clients hardware capabilities for lower memory usage
      • implemented icosahedrons based geospheres
      • implemented a unified task manager that uses an unblocking concurrent queue (relies on atomic operations instead of mutexes)
      • moved mesh/texture loading to the new task manager


  • 12/2008 - 11/2011 Experience in C++/Boost/wxWidgets/OpenGL/DX9/MySQL
  • Job Title: ‘Software Engineer/Game Engine Developer’ on the ‘Dawntide MMO’ project for ‘Working as Intended, LLC’ (Bucharest RO)
  • URL: https://en.wikipedia.org/wiki/Dawntide
  • Game Engine: Commercial engine ‘Gamebryo’ (https://en.wikipedia.org/wiki/Gamebryo)
    • worked on the game client development witch used the Gamebrio game engine
      • worked on client/server communications
      • worked on various post processing effects (Bloom/Heat haze)
      • worked on camera, animations, movement, trading and various other gameplay related features
      • worked on CEGUI user interface for various gameplay elements
      • worked on prioritizing relevant sound events that needed to be submitted to OpenAL (the number of available channels varied based on the hardware/drivers)
    • implemented a NavMesh editor that used the scene geometry to generated simplified navigation surfaces (constructive solid geometry operations/edge collapsing/inaccessible polygon elimination)
    • implemented a pahfinding server that used the simplified geometry to calculate movement routes
    • worked on the lobby server
      • worked on distributing of players to different zones
      • worked on the global chat system
      • worked on the global factions system
    • worked on the zone server
      • worked on proxy/master zones that allowed distributing workloads to different PC’s while allowing players to move seamlessly through the world (a total of 448 tiles of 1KM x 1KM existed that got distributed to different zone servers based on the area workload)
      • relied on boost asio to multithread the entity updates in the world
      • worked on the combat and spells system
      • worked on a needs/offers system that allowed the entities to perform complex behaviors (a wolf would actively search for prey to satisfy it’s hunger need)
    • worked on the patcher client/server
      • relied on libtorrent and XBT tracker server for client update distribution
      • relied on wxWidgets and WebView for client changelog and patcher progress display


  • 06/2008 - 11/2008 Experience in ASM/C++
  • Job Title: ‘Software Engineer/Game Engine Developer’ on the ‘XF-Gaming’ project for ‘Better Bionics for Gaming, LLC’ (Bucharest RO)
    • developed a series of game mods that allowed using a custom light gun controller
      • using the official SDK for the games Half Life 2/Quake Wars/Crysis
        • move the weapon reticle based on the light gun pointing direction
        • extended game hud for more light gun related actions
      • using reverse engineering and runtime hooks/patches for the games Half Life/Counter Strike/Counter Strike Source
        • hook into weapon reticle position/firing direction/server validations and adjust them to match the light gun
        • hook into the OpenGL rendering to add an extended game hud for more light gun related actions


  • 01/2008 - 06/2008 Experience in ASP/C#/ASP.NET/SQL
  • Job Title: ‘Software Engineer’ on the ‘HYLO’ project for ‘BTT&T; Software Development’ (Bucharest RO)
    • worked on developing a “smart” search engine (C# web service) based on a previous ASP .NET application
      • worked on phrase correction to improve displayed results
      • worked on various search techniques (up to 9 techniques were used for maximizing the number of results available)


  • 09/2007 - 01/2008 Experience in C#/MSSQL/JavaScript/HTML
  • Job Title: ‘Software Engineer’ on the ‘NetFlow’ project for ‘BTT&T; Software Development’ (Bucharest RO)
    • familiarized with the CISCO net flow protocol witch was used for network traffic data collection (stored in a MSSQL database)
    • worked on data aggregation and statistics generation
    • worked on a web application designed to display charts and statistics for the collected data
      • used HTML/JavaScript/AJAX for the front end
      • used a C# web service for database queries and chart generation


  • 06/2007 - 09/2007 Experience in C++/MFC/Codejock Software- Xtreme Toolkit
  • Job Title: ‘Software Engineer’ on the ‘Procumail’ project for ‘BTT&T; Software Development’ (Bucharest RO)
    • worked on a custom e-mail client/server with support for administrator roles that monitored and approved sent/received emails
      • similar client to Microsoft Outlook
      • server was based on Apache James


  • 2005 Experience in ASM/C++/SQL/HTML
  • Job Title: www.hackthissite.org/user/view/godmark - personal development (Roman RO)
    • familiarize with reverse engineering and methods for writhing software exploits
    • learn Ring0 debugging using SoftIce
    • learn Ring3 debugging with OllyDBG and IDAPro.


  • 2005 Experience in C++/OpenGL
  • Job Title: ‘Software Engineer’ on the ‘3D Scene Viewer using OpenGL’ project (Roman RO)
    • develop a system that allowed exporting 3DS Max scenes for viewing in a separate application using the OpenGL rendering API


  • 2004 Experience in C++/OpenGL
  • Job Title: ‘Software Engineer’ on the ‘Active X Control with OpenGL Rendering’ project (Roman RO)
    • develop an Active X control usable by web browsers that relies on an OpenGL rendering context for viewing 3DS objects


  • 2003 Experience in C++/MFC
  • Job Title: ‘Software Engineer’ on the ‘Phone firmware flashing using the serial port’ project (Roman RO)
    • use the serial port to reflash the firmware on Siemens mobile pones