Pedro Amorim Brandão da Silva, Developer in Porto, Portugal
Pedro is available for hire
Hire Pedro

Pedro Amorim Brandão da Silva

Verified Expert  in Engineering

Software Developer

Porto, Portugal

Toptal member since June 22, 2017

Bio

Pedro has a doctoral degree in informatics engineering specializing in computer graphics and automated/procedural content generation for 2D/3D applications and games. He is proficient in .NET and C# development but has also worked with several other languages and environments. He's an excellent communicator—having led several talks and taught in university classes. Since 2015, Pedro has been working as a developer and CTO at Sceelix.

Portfolio

3Decide
Bootstrap, Visual Studio Code (VS Code), HTML, Shaders, IntelliJ IDEA, MeshLab...
Emitu
Amazon Web Services (AWS), SQL, Bootstrap, Visual Studio Code (VS Code), YAML...
Sceelix
GIS, Unity3D, Game Design, XNA, SQL, XML, MySQL, SQLite...

Experience

  • C# - 8 years
  • Procedural Generation - 7 years
  • GIS - 7 years
  • Unity3D - 5 years
  • Java - 5 years
  • PostgreSQL - 4 years
  • Sceelix - 4 years
  • Git - 4 years

Availability

Part-time

Preferred Environment

Visual Studio, Windows, Git

The most amazing...

...piece of software that I've developed is Sceelix, a procedural content generation tool—that allows for the automated, rule-based production of 2D/3D content.

Work Experience

WebGL Developer

2017 - PRESENT
3Decide
  • Developed a 3D web component for viewing, navigating, and interacting with hierarchical 3D models.
  • Developed a 3D web component for viewing and interacting with textured 3D surfaces.
  • Conceived semantic description for 3D scenes, their content, appearance, and navigation possibilities.
  • Built flexible architecture supporting several types of 3D model formats (OBJ, FBX, gITF), materials, animations, and lighting styles.
  • Introduced several postprocessing effects to interact, highlight, and modify scene elements.
  • Executed performance optimization to reduce data overhead, lower hardware requirements, and provide compatibility with mobile devices.
Technologies: Bootstrap, Visual Studio Code (VS Code), HTML, Shaders, IntelliJ IDEA, MeshLab, SourceTree, Notepad++, CSS, Node.js, Git, JSON, Webpack, Three.js, React, JavaScript

Technical Manager

2017 - PRESENT
Emitu
  • Designed and developed an IoT system with applicability in several industries, such as rent-a-car, logistics, health, smart buildings, and more.
  • Implemented a cloud solution featuring device management, sensor and location data gathering/visualization, flexible rule definition, and more.
  • Built software to run in remote devices to read and transmit sensor and location data.
  • Architected and implemented the communication protocol between distributed devices and services.
  • Orchestrated fleets of remote devices and managed cloud server instances.
  • Optimized queries for storage, aggregation, and query of large amounts of sensor and location data.
  • Led building, testing, and release processes through several steps of development.
  • Executed team management tasks, from task assignment to implementation of several work policies.
  • Assumed recruiting and training responsibilities towards the new staff.
  • Performed customer development, support, and management.
Technologies: Amazon Web Services (AWS), SQL, Bootstrap, Visual Studio Code (VS Code), YAML, PuTTY, IntelliJ IDEA, SourceTree, REST, Notepad++, Paint.NET, Express.js, Linux, PL/pgSQL, Node.js, Thymeleaf, MQTT, HTTP, Python, Leaflet, Git, Postman, SSH, JSON, CSS, XML, HTML, TypeScript, jQuery, JavaScript, PostgreSQL, Spring Boot, Java

Co-founder | Technical Manager

2015 - PRESENT
Sceelix
  • Engaged in entrepreneurial activities and programs towards the creation of a new business.
  • Developed a procedural generation system—allowing for the automated, rule-based production of 2D/3D content, with possible usage in games, simulations, media production, urban planning, and others.
  • Implemented a core generation engine—featuring complex algorithms for data aggregation, geometric modeling, GIS data handling, image processing, and other operations.
  • Developed a cross-platform desktop application: the Sceelix Designer; using .NET/Mono which features its own GUI system and 3D-rendering capabilities.
  • Built a modular, decoupled, and extensible API for both the core and designer parts—allowing users to easily introduce new features.
  • Implemented a Unity 3D plugin that introduced its direct connection with Sceelix—allowing instant data communication between the tools without the need for export formats.
  • Developed a PHP back end for license activation/registration as well as for the integration of external payment APIs such as Gumroad and the Steam platform.
  • Developed an automated-build, documentation generation, packaging, and distribution system for quick software updates.
  • Assumed recruiting, training, support, and supervision responsibilities towards new staff and towards researchers building on top of Sceelix.
  • Led several talks and workshops for education, advertisement, and customer study purposes.
Technologies: GIS, Unity3D, Game Design, XNA, SQL, XML, MySQL, SQLite, Visual Studio Code (VS Code), ReSharper, Shaders, CAD, MeshLab, SourceTree, Inkscape, Notepad++, QGIS, Computational Geometry, Paint.NET, JetBrains Rider, Microsoft Visual Studio, CSG, Steam Integration, Procedural Generation, Git, JavaScript, PHP, Mercurial, DigitalRune Engine, Monogame, C#

Unity Developer

2019 - 2020
Icon Interactive (via Toptal)
  • Designed, implemented, tested and compared several geometric algorithms to extract visible and occluded surfaces from high detail 3D models.
  • Adjusted algorithms to operate from several points of view, as well as to export the final results in OBJ format.
  • Performed study and evaluation of several Constructive Solid Geometry (CSG) approaches.
  • Developed support tools and testbeds inside the Unity Editor for debugging and testing.
  • Improved final algorithm performance by implementing it in a C++ library and integrating it as a native Unity plugin with a C# wrapper.
Technologies: Monogame, Unity3D, ReSharper, MeshLab, JetBrains Rider, Git, Computational Geometry, CSG, C++, C#

Procedural Generation Consultant

2018 - 2020
INESC TEC
  • Provided tutorial and consultancy sessions on the Sceelix software and procedural general methodologies.
  • Worked on GIS data specification and cleanup to achieve the necessary consistency.
  • Created several graphs on Sceelix to define a procedural generation process to create a 3D Scene.
  • Set up a lighting and post-processing environment within Unity and integrated the Sceelix output in an automated pipeline.
  • Configured animated flybys for production of video and image captures.
Technologies: Paint.NET, GIS, QGIS, Unity3D, C#, Sceelix

Unity Senior Developer

2019 - 2019
Imbellus (via Toptal)
  • Led study and evaluation of alternative Unity Rendering Pipelines for the developed product.
  • Performed analysis and adjustments to migrate Standalone application to WebGL 2.0 and later WebGL 1.0 technologies, using Unity.
  • Developed build-time algorithms to optimize the deployed size of Unity asset bundles.
  • Introduced methods to improve loading and rendering performance through asset optimization and object batching.
  • Engaged in post-processing shader development in the scope of several application workflows.
  • Worked on procedural algorithms for generating custom layer information for 3D terrains.
  • Developed Unity editor plug-ins to improve productivity and asset management.
Technologies: Game Design, ReSharper, Shaders, JetBrains Rider, Procedural Generation, Git, Unity3D, C#

Unity Environment Engineer

2017 - 2018
Dimension Science, Inc. (via Toptal)
  • Developed a system for automatic/procedural generation of both fictitious and real-world 3D urban environments, with a particular focus on roads and traffic details for use in driving simulations.
  • Built a plugin for Sceelix using C#, introducing several new procedural generation algorithms for geometric data creation, loading, manipulation, and serialization.
  • Developed a semantic representation of 3D urban traffic features for supporting complex AI simulation.
  • Created a Unity3D editor plugin and test environment for navigation and experimentation with the generated urban environments.
  • Constructed an ASP.NET server that centralized the procedural generation process and provided easy delivery of 3D content directly to the Unity3D editor without the need for additional Sceelix installation on the user's side.
Technologies: GIS, ReSharper, Microsoft Visual Studio, Procedural Generation, Git, Sceelix, Unity3D, C#

Researcher | Consultant

2012 - 2013
INESC TEC's
  • Integrated manual and procedural 3D data sources into a single pipeline for visualization, animation, and testing.
  • Coordinated and complemented human resources towards reporting and publishing tasks.
  • Participated in research paper authoring, revision, and publishing.
Technologies: GIS, SQL, ReSharper, Notepad++, Microsoft Visual Studio, Procedural Generation, PostGIS, 3ds Max, C#

Invited Assistant Professor

2012 - 2012
University of Porto, Faculty of Arts
  • Taught a programming course for the master's program in geographical information systems and spatial planning.
  • Introduced students to the Python programming language and to the ArcGIS library, ArcPy.
Technologies: SQL, ArcPy, ArcGIS, Python

Intern Software Developer

2012 - 2012
Esri R&D Center–Zurich
  • Conducted research on a novel approach for visual editing of grammar-based rule sets for the procedural generation of 3D models.
  • Designed the visual methodology, based on flow graphs, which greatly improved the user experience when defining procedural generation rules.
  • Developed a plugin for the CityEngine software which was built upon the Eclipse Rich Client Platform.
  • Implemented, as part of the plugin, a visual graph-based editor and a 3D visualizer of the results produced by the edited graphs.
Technologies: GIS, Procedural Generation, Subversion (SVN), Esri CityEngine, Eclipse RCP, Java

Invited Assistant Professor

2011 - 2012
University of Porto, Faculty of Engineering
  • Taught C/C++ lab course in hardware interface and low-level embedded systems for the bachelor's degree program in informatics engineering.
  • Taught a C++ course in advanced algorithms and data structures for the bachelor's degree program in informatics engineering.
Technologies: MINIX, C++, C

Researcher | Consultant

2010 - 2011
INESC TEC
  • Designed a PostgreSQL/PostGIS solution that operated directly on its contained geographic data to produce 3D information.
  • Developed a fast procedural generation framework capable of enforcing a series of production rules on geographic input data.
  • Built a geometric modeling kernel for the execution of 3D creation and manipulation functions on urban data.
  • Implemented a graphical application for the progressive loading, navigation, and visualization of large-scale 3D urban environments.
  • Conceived a multi-user collaborative solution for parametric editing of 3D urban elements.
  • Contributed to the export and integration of the produced 3D data into popular simulation platforms, such as OpenSim and Second Life.
Technologies: GIS, SQL, PL/pgSQL, Microsoft Visual Studio, Procedural Generation, Subversion (SVN), PostGIS, PostgreSQL, XNA, C#

Logic Dots Solver

https://github.com/DeadalusVIII/logicdotssolver
A small C# project for solving puzzles in the mobile game called Logic Dots.

The puzzles are loaded from a file, solved (using a recursive greedy approach with backtracking), and the solution is then drawn on the screen.

The easiest way to run the code is to open the .sln project file using Visual Studio or MonoDevelop and then choose build/run.

Spontaneous Coders

https://github.com/DeadalusVIII/spontaneous-xna-library
I shared This project portfolio website with some colleague engineers, which lists several of our creations. This includes code libraries, development tools, plug-ins, utilities, and more. The scope and purpose of each project have been diverse: to answer an academic assignment, a friend request, a personal need, or for any other spontaneous reason.

Imagine City

https://www.youtube.com/watch?v=B8Ge3nN_NiI
A 3D business simulation game designed to be a massive multiplayer online game integrated with social networks.

The objective is to build a city from scratch and try to address the many problems that arise from it (hunger, unemployment, pollution, and more). In short, the idea is to try to reach the 8-millennium goals at this small scale, realize its difficulties, and learn how to accomplish them. This is done by constructing and evolving roads and buildings, passing laws and measures, and establishing partnerships with other players. Each of these actions can contribute in many ways to improve your score regarding the achievement of the millennium goals.

Imagine City is intended to be a never-ending game—the player's objective is to improve his city as much as possible and compete in the world's Imagine City Ranking.

This project was developed using .NET C# and XNA Framework technologies, all in the scope of Microsoft's Imagine Cup 2010 competition.

Tag Tournament

This is a 2D game designed for two players. The game story is based on a love triangle between two protagonist school students who are rivals, Tom and Jon, who compete for a girl's affection. They do so by drawing graffiti hearts with their names and the girl's name, aka tagging, in as many spots as possible while trying to survive the many obstacles and foes (instigated by each other) in a school environment.

Gemini

http://arxiv.org/ftp/arxiv/papers/1302/1302.3862.pdf
This is a middleware framework that maps body poses or voice commands to actions in any game. This not only warrants a more natural and customized user-experience but it also defines an interoperable virtual controller.

Body poses and voice commands are respectively recognized through the Kinect's built-in cameras and microphones. The acquired data is then translated into the native interaction scheme in real-time using a lightweight method based on spatial restrictions. The system is also prepared to use Nintendo's Wiimote as an auxiliary and unobtrusive gamepad for physically or verbally impractical commands. This framework also provides a game-controlling tool that is totally customizable and very flexible—thus expanding the market of game consumers.

The framework was developed in C# and was cited in a scientific publication.
2010 - 2015

Doctoral Degree in Informatics Engineering

The University of Porto—Faculty of Engineering - Porto, Portugal

2005 - 2010

Bachelor's and Master's Combined Degree in Informatics Engineering

The University of Porto—Faculty of Engineering - Porto, Portugal

NOVEMBER 2018 - PRESENT

Creating Virtual Reality (VR) Apps

UCSanDiegoX

Libraries/APIs

XNA, Steam Integration, OpenGL, Three.js, Node.js, React, ArcGIS, jQuery, Leaflet

Tools

Paint.NET, Subversion (SVN), MQTT, Git, Microsoft Visual Studio, Mercurial, Eclipse IDE, Inkscape, Esri CityEngine, Notepad++, IntelliJ IDEA, SourceTree, ReSharper, JetBrains Rider, GIS, CAD, 3ds Max, Webpack, Eclipse RCP, Postman, MeshLab, PuTTY

Languages

C#, SQL, HTML, Java, XML, JavaScript, TypeScript, YAML, C, CSS, F#, PL/pgSQL, Python, PHP, C++, Visual Basic, Prolog

Frameworks

Unity3D, Monogame, Sceelix, DigitalRune Engine, Bootstrap, Thymeleaf, Spring Boot, Express.js

Platforms

Windows, NetBeans, Visual Studio Code (VS Code), MINIX, Amazon Web Services (AWS), Linux

Storage

PostGIS, JSON, SQLite, MySQL, PostgreSQL

Paradigms

Functional Programming, REST

Other

Game Design, Procedural Generation, QGIS, Computational Geometry, ArcPy, CSG, HTTP, Shaders, SSH, Virtual Reality (VR), Stereolithography (STL)

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring