Scroll To View More
Nilson Souto, iOS Developer in Curitiba - State of Paraná, Brazil
Nilson Souto

iOS Developer in Curitiba - State of Paraná, Brazil

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

Portfolio

  • Xissburg
    iOS, Cocos2D, Box2D, Ogre3D, Bullet Physics
  • Gonow
    iOS, cocos2d, Box2D, SQLite
  • Lab360
    iOS, cocos2d, cocos3d, Chipmunk Physics, Android

Experience

  • Physics Simulation, 7 years
  • OpenGL, 6 years
  • iOS, 5 years
  • Objective-C, 5 years
  • Bullet, 4 years
  • C, 4 years
  • C++, 4 years
  • Swift, 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

  • 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-env of iOS applications running on AWS EC2.
    • Began working on a driving/racing game with a focus on realistic vehicle simulation.
    Technologies: iOS, Cocos2D, Box2D, Ogre3D, Bullet Physics
  • 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 CoreGraphics and CoreAnimation to achieve the desired effects.
    • Set up physics simulations for a variety of scenes in a digital book using the Box2D physics engine.
    Technologies: iOS, cocos2d, Box2D, SQLite
  • 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: iOS, cocos2d, cocos3d, Chipmunk Physics, Android

Experience

  • FotoZap (Development)
    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) (Development)
    http://www.elevatr.com

    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 (Development)

    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 (Development)

    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)

    Presents a gallery of paintings by Carlos Araujo.

  • Pix apps (Development)

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

  • Olimpíadas 2012 (Development)

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

  • Marina de la Riva (Development)

    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 (Development)

    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)

    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.
  • 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++, GLSL, Swift, C
  • Frameworks

    Box2D, AV Foundation, Bullet, Core Data
  • Libraries/APIs

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

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

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

    Mac OS, iOS, Parse, Linux
  • Other

    UI Kit, Computer Graphics, Physics Simulation, 3D Animation, 3D Modeling, Digital Sculpting
  • Storage

    MongoDB, PostgreSQL, PostGIS

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
I really like this profile
Share it with others