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

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

Member since February 19, 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

Portfolio

  • Xissburg
    Bullet, OGRE, Box2D, Cocos2d, iOS, OpenGL, 3D Graphics
  • Tessa Barton LLC
    iOS, Image Manipulation, Video Editing, Swift, AVFoundation, Core Image
  • Gonow
    SQLite, Box2D, Cocos2d, iOS

Experience

Location

Bella Vista, Panama City, Panama, Panama

Availability

Full-time

Preferred Environment

Sketch, ITerm, Atom, Git, Xcode, MacOS, Visual Studio Code, Adobe Photoshop, Blender

The most amazing...

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

Employment

  • Freelance iOS Developer

    2012 - PRESENT
    Xissburg
    • 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, OpenGL, 3D Graphics
  • iOS Developer | Photo/Video Manipulation

    2019 - 2021
    Tessa Barton LLC
    • Developed an app focused on image and video editing, which leveraged advanced AVFoundation features.
    • Developed a small back end that required using the server-side Swift.
    • Worked on fixing bugs reported by the many users of this app.
    Technologies: iOS, Image Manipulation, Video Editing, Swift, AVFoundation, Core Image
  • iOS Developer

    2011 - 2011
    Gonow
    • 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
    Lab360
    • 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

Experience

  • Edyn | Real-time Physics Engine Organized as ECS
    https://github.com/xissburg/edyn

    Edyn (pronunciation: "eh-dyin'") stands for Entity Dynamics, and it is a real-time physics engine organized as an ECS (Entity-component System) using the amazing EnTT library. The main goals of this library are to be multi-threaded and to support networked and distributed physics simulation of large dynamic worlds.

  • FotoZap
    https://picturemarketing.com/apps/

    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.

Skills

  • Languages

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

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

    Core Animation, Core Graphics, OpenGL, OpenGL ES, Parse SDK, Core Image
  • 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, Visual Studio Code
  • Other

    3D Modeling, AVFoundation, Physics Simulations, 3D Animation, Computer Graphics, Machine Learning, Game Development, 3D Graphics, Image Manipulation, Video Editing, Physics, Game Physics
  • Storage

    SQLite, PostGIS, PostgreSQL

Education

  • 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