Nilson Souto

Nilson Souto

Curitiba - State of Paraná, Brazil
Hire Nilson
Scroll To View More
Nilson Souto

Nilson Souto

Curitiba - State of Paraná, Brazil
Member since January 28, 2013
Nilson is a software developer with significant experience in several languages and technologies. Over the past few years, he has focused in particular on iOS development, and has developed a passion for computer graphics, physics simulations, and game development.
Nilson is now available for hire
Portfolio
  • xissburg
    iOS, cocos2d, Box2D, Ruby on Rails
  • Gonow
    iOS, cocos2d, Box2D, SQLite
  • Lab360
    iOS, cocos2d, cocos3d, Chipmunk Physics, Android
Experience
  • Physics Simulation, 8 years
  • Objective-C, 5 years
  • iOS, 5 years
  • OpenGL ES, 4 years
  • C/C++, 4 years
  • Box2D, 4 years
  • C, 4 years
  • Parse, 2 years
Curitiba - State of Paraná, Brazil
Availability
Part-time
Preferred Environment
macOS, Xcode, git, Atom, iTerm, Photoshop, Sketch
The most amazing...
...software I've made is a real-time simulator of deformable solids in 3D using the Finite Element Method.
Employment
  • iOS Developer
    xissburg
    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, Box2D, among other tools and frameworks.
    • Presented talks at a number of events.
    • Implemented custom photo and video filters using OpenGL and AVFoundation.
    • Wrote an API/web service using Ruby on Rails.
    • Managed subcontractors.
    Technologies: iOS, cocos2d, Box2D, Ruby on Rails
  • iOS Developer
    Gonow
    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 CoreGraphics and CoreAnimation to achieve the desired effects.
    • Setup physics simulation for a variety of scenes in a digital book using the Box2D physics engine.
    Technologies: iOS, cocos2d, Box2D, SQLite
  • Mobile Developer
    Lab360
    2010 - 2011
    • Developed applications that communicate with REST web services and actively use Push Notifications.
    • Setup physics simulation 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 10000 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: iOS, cocos2d, cocos3d, Chipmunk Physics, Android
Experience
  • SplashCam (Development)
    http://itunes.apple.com/us/app/splashcam/id521051209?mt=8

    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').

  • Pergunter (Development)
    https://itunes.apple.com/app/id584215930

    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 (Development)
    https://itunes.apple.com/app/biblia-em-1000-imagens/id557425634?mt=8

    Presents a gallery of paintings by Carlos Araujo.

  • Pix apps (Development)
    https://itunes.apple.com/br/app/pix-apps/id517083593?mt=8

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

  • Olimpíadas 2012 (Development)
    http://itunes.apple.com/br/app/caixa-em-londres/id522317236?mt=8

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

  • Marina de la Riva (Development)
    http://itunes.apple.com/us/app/marina-de-la-riva/id497178809?mt=8

    Developed 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 (Development)
    http://itunes.apple.com/br/app/menino-maluquinho/id456406243?mt=8

    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 (Development)
    https://itunes.apple.com/br/app/menina-do-narizinho-arrebitado/id541054813?mt=8

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

  • Rádio Alerta (Development)
    http://itunes.apple.com/app/radio-alerta/id404097675?mt=8

    Developed an app to keep users updated about the weather, traffic, and other conditions around them.

  • 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.
  • 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.
Skills
  • Languages
    Objective-C, C, C/C++, GLSL, Swift
  • Frameworks
    Box2D, Cocos2d, AV Foundation, Core Data, Bullet
  • Libraries/APIs
    OpenGL ES, Parse iOS SDK, Core Animation, Core Graphics, OpenGL
  • Tools
    Git, Adobe Photoshop, 3ds Max, Xcode, Sketch
  • Paradigms
    Object-oriented Programming (OOP), Functional Programming, Concurrent Programming, Scrum
  • Platforms
    iOS, Mac OS X, Parse, Linux
  • Misc
    UI Kit, Computer Graphics, 3D Modeling, Physics Simulation, 3D Animation, Digital Sculpting
  • Storage
    MongoDB, PostGIS, PostgreSQL
Education
  • Bachelor's degree in Science and Technology
    Universidade Federal do ABC - Santo André, Brazil
    2006 - 2010
  • Bachelor's degree in Computer Science
    Universidade Federal do ABC - Santo André, Brazil
    2006 - 2010
I really like this profile
Share it with others