Nilson Souto, iOS Developer in Bella Vista, Panama City, Panama, Panama
Nilson Souto

iOS Developer in Bella Vista, Panama City, Panama, Panama

Member since January 28, 2013
Nilson started programming in C/C++ after playing video games for the first time at a young age. Over the last few years, he has worked on iOS applications mostly, and he's now focusing on game development, computer graphics, physics simulation, and vehicle simulation. He's also a 2D/3D technical artist.
Nilson is now available for hire


  • Xissburg
    Bullet, OGRE, Box2D, Cocos2d, iOS
  • Gonow
    SQLite, Box2D, Cocos2d, iOS
  • Lab360
    Android, Chipmunk, Cocos3d, Cocos2d, iOS



Bella Vista, Panama City, Panama, Panama



Preferred Environment

Sketch, Photoshop 2018, ITerm, Atom, Git, Xcode, MacOS

The most amazing... I've made is a real-time simulator of deformable solids in 3D using the finite element method.


  • Freelance iOS Developer

    2012 - PRESENT
    • Developed applications for iPhone and iPad with customized user interfaces leveraging UIKit, animations, and transitions.
    • Implemented geolocation services in iOS apps.
    • Maintained open-source projects on GitHub.
    • Taught online courses using the Edukee platform, targeted specifically at game development and computer graphics for iOS, using Cocos2D and Box2D, among other tools and frameworks.
    • Presented talks at a number of events.
    • Implemented custom photo and video filters using OpenGL and AVFoundation.
    • Created an maintained the back end of iOS applications running on AWS EC2.
    • Began working on a driving/racing game with a focus on realistic vehicle simulation, using C++ and Qt for tools.
    Technologies: Bullet, OGRE, Box2D, Cocos2d, iOS
  • iOS Developer

    2011 - 2011
    • Developed and maintained a variety of iOS applications.
    • Developed a home automation app which allows users to control devices in their homes/offices and access live camera feeds.
    • Wrote code to communicate with SOAP and REST web services.
    • Wrote an interactive page-flipping algorithm for iPad eBooks. Derived the formulas to implement said algorithm, and used Core Graphics and Core Animation to achieve the desired effects.
    • Set up physics simulations for a variety of scenes in a digital book using the Box2D physics engine.
    Technologies: SQLite, Box2D, Cocos2d, iOS
  • Mobile Developer

    2010 - 2011
    • Developed applications that communicate with REST web services and actively use push notifications.
    • Set up physics simulations for a variety of scenes in a digital book using the Chipmunk Physics engine.
    • Wrote a polyline drawing optimization algorithm using a quadtree in order to draw a route on a map, supporting polylines of over 10,000 vertices in real time.
    • Developed some 3D applications and demos for iPhone and iPad using the Cocos3D engine.
    • Developed a couple HTML5 graphics samples using its new (at the time) 3D features.
    Technologies: Android, Chipmunk, Cocos3d, Cocos2d, iOS


  • FotoZap

    Worked on the FotoZap suite of applications for picture marketing. They are photo and video capturing apps which run on an unattended iPad device in kiosk mode. They make extensive use of AVFoundation for photo and video capture and processing, and also Metal for real-time image filtering and chroma keying.

  • Elevatr (previously Docz)

    Developed the iPhone app from scratch in Swift using the MVVM architecture. This application makes extensive use of advanced UIKit features to present dynamic table views and collection views that load more items as they are scrolled and refreshes existing items eventually to keep things always up to date.

    I also wrote and managed the Parse back-end using JavaScript and Node.js.

  • SplashCam

    Developed the personal SplashCam app with a friend, which allows you to take photos highlighting certain colors while keeping everything else in black & white (also known as the 'color splash effect'). It happened to become quite popular at the time reaching Top 1 in the Apple AppStore in many countries.

  • Pergunter

    Developed Pergunter app, which allows you to post questions using photos or videos and share them only with your friends or with the entire Pergunter community in order to find the right answer.

  • 1000 Images

    Presents a gallery of paintings by Carlos Araujo.

  • Pix apps

    Developed Pix app, which provides a new dimension to discovering apps using an infinite bidimensional scroll.

  • Olimpíadas 2012

    Allows you to keep updated with the news and status of the 2012 Olympic Games. Sponsored by Caixa.

  • Marina de la Riva

    Developed an app for the singer Marina de la Riva, which allows you to follow her updates on Twitter and Facebook, watch her videos on YouTube, see her recent photos in Flickr, listen to her songs in SoundCloud, and keep up-to-date with her schedule.

  • Menino Maluquinho

    Contributed to interactive book for the iPad, with primary involvement in the scenes containing physics simulation (made with Box2d) and the dynamic and interactive page-flipping animation.

  • A menina do Nariz Arrebitado

    Contributed to interactive book for iPad, including a complete refactoring of the code to make it reusable and maintainable. Additionally, handcrafted the physics simulation scenes (made with Chipmunk Physics).

  • The Mistakes Most Swift Developers Don't Know They're Making (Publication)
    Swift is the new programming language created to be a modern replacement for Objective-C in iOS and OS X application development. In general, a skilled Swift developer is usually someone who is already experienced with Objective-C, and that, among other things, might lead them to write Swift code using Objective-C best practices, which can cause some bad mistakes. In this article, Toptal Freelance Software Engineer Nilson Souto outlines the most common mistakes Swift developers should be aware of.
  • Video Game Physics Tutorial - Part III: Constrained Rigid Body Simulation (Publication)
    In Part I of this three-part series, we saw how the free motion of rigid bodies can be simulated. In Part II, we saw how to make bodies aware of each other through collision and proximity tests. Up to this point, however, we still have not seen how to make objects truly interact with each other. The final step to simulating realistic, solid objects, is to apply constraints, defining restrictions on the motion of rigid bodies. In this article, we'll discuss equality constraints and inequality constraints. We'll describe them first in terms of a force-based approach, where corrective forces are computed, and then in terms of an impulse-based approach, where corrective velocities are computed instead. Finally, we'll go over some clever tricks to eliminate unnecessary work and speed up computation.
  • Video Game Physics Tutorial - Part II: Collision Detection for Solid Objects (Publication)
    In Part I of this three-part series on game physics, we explored rigid bodies and their motions. In that discussion, however, objects did not interact with each other. Without some additional work, the simulated rigid bodies can go right through each other. In Part II, we will cover the collision detection step, which consists of finding pairs of bodies that are colliding among a possibly large number of bodies scattered around a 2D or 3D world.
  • Video Game Physics Tutorial - Part I: An Introduction to Rigid Body Dynamics (Publication)
    Simulating physics in video games is very common, since most games are inspired by things we have in the real world. Rigid body dynamics -- the movement and interaction of solid, inflexible objects -- is by far the most popular kind of effect simulated in games. In this series, rigid body simulation will be explored, starting with simple rigid body motion in this article, and then covering interactions among bodies through collisions and constraints in the following installments.
  • Toptal Mentor
    Nilson is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Nilson shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.


  • Languages

    Swift, C++, Objective-C, C, GLSL
  • Frameworks

    Bullet, AV Foundation, Box2D, UIKit, Core Data, Qt, Cocos2d, Cocos3d, Chipmunk, OGRE
  • Libraries/APIs

    Core Animation, Core Graphics, OpenGL, OpenGL ES, Parse SDK
  • Tools

    Adobe Photoshop, Git, Xcode, 3ds Max, Blender, Sketch, Atom, ITerm, Photoshop 2018
  • Paradigms

    Object-oriented Programming (OOP), Concurrent Programming, Scrum, Functional Programming
  • Platforms

    MacOS, iOS, Linux, Android
  • Other

    3D Modeling, Physics Simulations, 3D Animation, Computer Graphics, Machine Learning, Game Development, Physics Simulation
  • Storage

    SQLite, PostGIS, PostgreSQL


  • Bachelor's degree in Science and Technology
    2006 - 2010
    Universidade Federal do ABC - Santo André, Brazil
  • Bachelor's degree in Computer Science
    2006 - 2010
    Universidade Federal do ABC - Santo André, Brazil

To view more profiles

Join Toptal
Share it with others