David Arturo Diaz Diaz, Computer Graphics Developer in Bogotá - Bogota, Colombia
David Arturo Diaz Diaz

Computer Graphics Developer in Bogotá - Bogota, Colombia

Member since July 21, 2017
David is a highly creative engineer with strong analytical aptitude. He has proven experience executing a game development life cycle from concept to maintenance with over a dozen shipped titles in 9+ years in the game development industry. David is a team player with excellent communication skills.
David is now available for hire


  • Joju Games
    Unity, Shaders, C#, Photon Game Server, PlayerIO, Blender, SVN, Git
  • Joju Games
    Unity, Shaders, C#, ActionScript 3, Photon Game Server, PlayerIO...
  • Freelance Work
    XNA, C#, HLSL, Multithreading, Blender


  • Computer Graphics 10 years
  • C# 8 years
  • Game AI 7 years
  • Mobile 6 years
  • Unity 6 years
  • Unity Shaders 6 years
  • ActionScript 3 4 years
  • Leadership 3 years


Bogotá - Bogota, Colombia



Preferred Environment

Unity, Git, Google Docs

The most amazing...

...thing I worked on was Sparcade’s Pacman. It made heavy use of shaders to achieve the artist’s vision and had a distributed logic due to server side validation.


  • Lead Developer

    2012 - 2017
    Joju Games
    • Generalized common functionalities into reusable unity packages—created the Assets API and replicating the Persistence API, Localization API, and Analytics API.
    • Adapted the company's match 3 code base from AS3 to Unity in C#.
    • Defined the standard Jenkins auto-build system for mobile projects.
    • Defined the architectural baseline for the programmers to adhere to a design standard in various games.
    • Planned and distributed the Agile tasks among the programmers; was responsible for meeting the project milestones during the specified deadlines from a technical standpoint.
    • Conducted daily code reviews of the programmers.
    • Defined the overall architecture to cope with server validation for real money betting in Sparcade Pacman. (all the input from the player was sent to the server and an accelerated simulation was performed to validate the score).
    • Served as the computer graphics expert in the company helping other teams achieve the artistic vision through CG shaders, particle systems, and custom computer graphics solutions.
    • Programmed procedural shaders using mathematical equations to achieve diverse visual effects in various games.
    • Worked for clients like 505 Games, GSN, Playdom (Disney), and Shockwave Games (Viacom).
    Technologies: Unity, Shaders, C#, Photon Game Server, PlayerIO, Blender, SVN, Git
  • Senior Game Programmer

    2010 - 2012
    Joju Games
    • Integrated different games with PlayerIO and proprietary back-ends for different functionalities like persistence, server-side validation, and payment verification.
    • Implemented a GUI system that converted a Flash SWF UI into an XML representation with a Sprite Atlas and then loaded it into Unity.
    • Added a CDN integration to Unity games (with asset bundles) and flash games (with compressed assets) to reduce the web initial download or the mobile binary size.
    • Added external services to many mobile games like Google Play, Game Circle, analytics packages, ad providers, error trackers, and back-end services.
    • Generalized the MATCH 3 functionalities of many games into a single MATCH 3 framework for Wicked and any future MATCH 3 games in the company.
    • Implemented alternative rendering techniques using low-level APIs to overcome the limitations of the standard tree structure in ActionScript 3 for open world 2D games.
    • Optimized heavily the ActionScript 3 web-based games to work on mobile devices.
    • Created stand alone Adobe Air editors for different games with advanced tile bit masking and mission definition modules.
    • Worked for clients like 505 Games, GSN, Playdom (Disney), and Shockwave Games (Viacom).
    Technologies: Unity, Shaders, C#, ActionScript 3, Photon Game Server, PlayerIO, Flash Professional, Blender, SVN, Git
  • Independent Game Developer

    2007 - 2010
    Freelance Work
    • Implemented advanced shader model 3 graphics, variance shadow maps and instanced skinned meshes.
    • Researched and applied state-of-the art AI techniques for NPCs.
    • Implemented a continuous physics system from scratch with swept capsules.
    • Published 2 Xbox 360 games successfully that can still be downloaded and played today.
    • Created the BetaCell3 D toolkit for game development aid in the XNA platform.
    Technologies: XNA, C#, HLSL, Multithreading, Blender
  • Software Engineer

    2007 - 2008
    Isthmus Software Solutions
    • Collaborated with a team of over 40 developers maintaining a powerful banking application.
    • Worked for TSYS, a major payment solutions provider.
    • Implemented the rewards front-end for the TSYS credit card solution by implementing Java web components connecting to a J2EE back-end.
    • Tracked time and money critical bugs in a sizeable code base.
    • Maintained a professional relationship with all the platform stakeholders as part of the outsourced Isthmus team.
    Technologies: Java, J2EE, Oracle, Web Services, JIRA
  • Software Engineer

    2006 - 2007
    • Acted as a software solutions consultant for local businesses.
    • Designed casino management software solutions.
    • Implemented layered architectures for distributed client server solutions.
    • Refactored client applications that were lacking proper design and architecture.
    • Estimated resources of different projects for local clients.
    Technologies: Java, J2EE, Java Server Faces, MySQL
  • Certified Instructor

    2005 - 2007
    Sun Microsystems
    • Taught the official Sun Enterprise class courses.
    • Evangelized about the Java and the J2EE platform.
    • Always maintained a high ranking in the course evaluations.
    • Taught multiple courses to many important local companies.
    • Earned 4 Java Sun certifications.
    Technologies: Java, J2EE, MySQL


  • Pacman for Sparcade (Development)

    The Pacman game is where you bet real money in a skill contest against other players. To prevent cheating by altering the mobile client, all the input from the players is recorded and sent to the server for score validation at the end of a level. Achieving this requires a model-view-controller design where the model is shared by the server and the client and has to be implemented using only integer logic (floating-point operations may give slightly different results across different processors).

    • Defined the overall architecture to cope with server validation.
    • Designed an integer only Pacman logic to allow validation (floating point ops may give slightly different results across different processors).
    • Designed the game view. The model processes inputs and trigger events. In the server, the events are ignored but in the client, the events are handled by the view to show the player what’s happening.
    • Planned and designed the maze layout change.
    • Handled GSN SDK updates to keep the game compliant with the platform while minimizing potential bugs.
    • Implemented the animated background.
    • This Pacman version uses custom Cg shaders to increase the visual quality and reduce the assets load at the same time.

  • 2 Dots for Sparcade (Development)

    Adaptation of the 2 dots mobile game to the Sparcade platform. The original code was adapted to allow server side validation.

    • Analyzed the 2 dots original code and proposal of a conversion strategy.
    • Created the model logic baseline.
    • Implemented the tutorial.

  • Air Adventure Slots (Development)

    A slot machine made with Unity in which you travel the world collecting prizes. This was a small project for a casino effort made by the company.

    • Collaborative generalization of the slot machine code from other projects to separate the machine logic from the visual customization
    • Planned the tasks to create the air adventure visual customization.
    • Planned and distributed the tasks amongst the senior developers.

  • Tribal Idol (Development)

    This is a Unity 3D puzzle game based on bingo in which you rescue tribe members from the board using symbols and powerups. This game integrated a PlayerIO back-end to store the player's progress and download/cache assets to maintain the mobile binary size small.

    • Created the architectural baseline for the programmers to adhere to a design standard.
    • Planned and distributed the tasks among the programmers.
    • Conducted daily code reviews of the programmers.
    • Defined the Assets API with an external CDN, local filesystem caching, and bundle embedding for the initial playthrough.
    • Developed a texture reuse system using asset bundles to share them between scenes.
    • Adapted the falling mechanics of the Joju's MATCH 3 engine for the cascading bingo game type.
    • Created an iOS auto build system with Jenkins.

  • Wicked: The Game (Development)

    A MATCH 3 game based on the Broadway musical. The game has an interesting progression mechanic over a big maze filled with gems.

    • Defined the iOS and web flash build pipeline to be able to build the game in Windows.
    • Generalized the MATCH 3 engine from the previous MATCH 3 games.
    • Adapted the new MATCH 3 engine to scroll boards with thousands of gems.
    • Created an automated Adobe Air app that tested the game’s logic and animations with pseudo-random inputs. This helped us improve the robustness of the code.
    • Defined a process to include new gems and obstacles through the implementation of an abstract design.
    • Integrated a PlayerIO integration for a player profile and messaging.
    • Added a function that saves for offline play and PlayerIO cloud saves with synchronization across devices.
    • Integrated social media with Facebook invites, requests, gifting, and friends' portraits on a map.
    • Optimized the memory for the game to run appropriately on iOS, the target amount of RAM was 64 MB at the time
    • Reduced the IPA size to 35MB for 3G download by moving the assets to the CDN.
    • Implemented ads for the web and iOS with HasOffers.
    • Implemented GameCircle for the Amazon port and Google Play for the Android port.

  • Everybody Draws (Development)

    A multiplayer game made with Flash. Players take turns to draw, the rest of the players try to guess the drawing.

    • Created a multi-platform scalable UI framework in Flash for the web and mobile.
    • Integrated PlayerIO for multiplayer game play.
    • Developed a functionality for multi-platform multiplayer matchmaking.
    • Implemented multiplayer match logic; replicating draw strokes and player actions.

  • Jewels of the Amazon (Development)

    A MATCH 3 game made with ActionScript 3.

    • Reimplemented the gameplay following an MVC pattern. The prior implementation had reliability, design, and performance issues; my new implementation corrected all of those shortcomings.
    • The new gameplay implementation was successfully rolled out with the game already in production.

  • Disney Dream Kingdom (Development)

    The project was a park where the player could purchase and update rides. We were tasked with creating rides of some iconic Disney trips.

    • Developed an Adobe Air jigsaw puzzles generator.
    • Built an Adobe Air application that converted a Flash SWF UI into an XML representation with a Sprite Atlas.
    • Implemented a parser in Unity to display the UI.
    • Implemented camera movement for the Soarin over California minigame using splines.
    • Enabled silhouette highlighting via edges detection on meshes and on the fly silhouette mesh update.
    • Created a story system with camera movements, character animations, and assets management for the Sleeping Beauty minigame.
    • Integrated CDN to reduce the initial download.
    • Enabled soaring clouds dynamic generation.
    • Implemented the Sleeping Beauty castle where the different puzzles were selected.
    • Adapted and optimized the Unity project to be able to build the minigames with the Flash exporter.
    • Skinned Monsters Inc.for the Sleeping Beauty jigsaw mechanics.
    • Skinned Dumbo for the soaring mechanics.
    • Skinned Dumbo for the Sleeping Beauty story system.

  • Caribbean Paradise Slots (Development)

    A slot machine made with Flash.
    • Implemented the minigames including random rewards design to keep the machine’s return rate.
    • Created a Montecarlo simulation for payout fine-tuning.

  • Bubble Atlantis (Development)

    A puzzle game with a rotating mesh of gems at the center that you must shoot with a gem cannon.

    • Developed a stand alone Adobe Air editor to define gem placement.
    • Integrated BaaS with PlayerIO for profiles, messaging, and achievements.
    • Implemented IAP lives with Facebook credits.
    • Integrated Facebook for a message feed, requests, and invites.

  • Acrobat Smashers (Development)

    An Angry Birds clone made with ActionScript 3.

    • Adapted the Box2D physics for the different elements of the game.
    • Created the visual representation of the game elements and linking them to their Box2D physical counterparts.

  • Autowars (Development)

    An adventure RPG made with ActionScript 3. It's an open world with missions and car customization.

    • Developed the stand alone Adobe Air editor with advanced tile bitmasking for automatic placement of roads.
    • Created the visual quest editor module with triggers and actions.
    • Adapted the Box2D physics for car and weapon physics.
    • Optimized asset instantiation and destruction on a 400x400 tile map to cope with Adobe Flash limitations.
    • Created a custom rendering pipeline using low level graphical APIs. The hierarchical rendering approach of Flash had an unacceptable performance overhead.
    • Crafted a GPS system that distributed the A* search implementation across multiple frames to prevent performance hiccups.
    • Developed an enemy AI with goals and steering behavior.
    • Integrated a Shockwave back-end for the player profile and IAPs.
    • Implemented a tutorial system that masked dialogs and actions.

  • B-A-Mazed (Development)

    A 3D maze game in which you control the maze’s orientation rather than the player’s avatar. The objective is to reach your girlfriend before your opponents do, you can use powerups to your advantage or your opponent's demise.

    • Developed the advanced shader model 3 graphics.
    • Implemented the AI with goals and steering behaviors.
    • Implemented the continuous physics.

  • Old School Destruction (Development)

    A multiplayer, single-screen third-person shooter.

    It uses advanced Direct3D 9 rendering techniques to compensate for XNA’s slow runtime. For example, it used instancing on the enemies storing the bone animation data in textures to draw all enemies with a single call. It was also made entirely by me, I even did the 3D art in Blender.

    • Developed the advanced shader model 3 graphics.
    • Implemented the AI with fuzzy logic, goals and steering behaviors.
    • Implemented the continuous physics.

  • BetaCell Toolkit (Development)

    A toolkit to aid XNA game development.

    This was made entirely by me and used in both Old School Destruction and B-A Mazed.

    The main advantage of the toolkit was the compile time effect composition for Xbox 360 and for the PC. The developer specified the effect components (like shadow mapping or bump mapping) and the toolkit created the FX file and compiled it.

    For more information, see the tutorial section of the toolkit’s page.


  • Languages

    ActionScript 3, C#, Java
  • Frameworks

    Unity, Unity3D
  • Paradigms

    Design Patterns, Agile Software Development
  • Platforms

  • Other

    Unity Shaders, Unity3D AI, Shaders, Computer Graphics, SDKs, Game AI, Game Physics, 3D Math, Math, Leadership, Amazon GameCircle
  • Tools

    Subversion (SVN), Git, PlayFab, GameSparks
  • Libraries/APIs

    Google Play API, Facebook API


  • Unity Certified Developer in Game Programming
    2017 - 2017
    Unity Technologies - San Francisco, CA, USA
  • Bachelor of Engineering in Software Systems Engineering
    2001 - 2006
    Universidad Javeriana - Bogotá, Colombia

To view more profiles

Join Toptal
Share it with others