Work Experience

I’ve been fortunate to collaborate with diverse teams and technologies in various environments. My skills have developed through meaningful interactions with talented colleagues and my dedication to keeping up with the latest in technology.

My journey began in mobile development, but over time, I’ve expanded my expertise to become more of a generalist. Currently, I’m focusing more on backend development, but I always keep an eye on frontend and mobile advancements as well. Here’s a brief overview of my work experience.

(This page will probably mimic my linkedin, so you can see all this information there)

JPG Store

Aug 2022 - Present
Roles: Head of Mobile, Backend developer
Technologies: Typescript, NestJS, React Native, fastlane, Rust

I have a deep understanding of React Native and its ecosystem, and I make use of the latest technologies and frameworks like react-query, storybooks, flashList, hooks and other tools to deliver high-quality and responsive apps.

I also conduct code reviews and contribute to the development of our automated testing and continuous integration pipeline, built with GitHub actions. Thus allowing us to automate the release process, making it faster and more efficient, and publishing to different environments with ease.

Software Mentor

Mar 2020 - Present
Technologies: Typescript, Swift, React Native

Aside from leading technical teams, I find fulfillment in mentoring others. I’m an active mentor at these sites:

I have over 60 ⭐⭐⭐⭐⭐ reviews and plenty of people I’ve helped with software- related problems. This role has allowed me to guide many developers on their career paths, share insights from my professional experience, and learn from the diverse perspectives of my mentees. I’ve been recognized as “Featured mentor” and highlighted in the different platforms.

Arbitrage bot

Sep 2021 - Nov 2022
Technologies: Typescript, Solidity, AWS, Google Cloud

I developed a DeFi bot that interacts with various protocols across different EVM compatible blockchains. It run continuously, thanks to its deployment on AWS Lighthouse and Google Cloud Engine.

Teaching Assistant Professor in Functional Programming

Aug 2021 - Aug 2022
Technologies: Haskell
Helped students with Haskell classes, assignments and reviewed exams.

Apple

Jun 2020 - Aug 2021
Roles: Staff iOS Engineer
Technologies: Swift

While in Theorem (a consulting company) I worked with Apple Retail, coding in different projects that involved App Store experiences. I contributed to different systems that consisted of multiple iOS devices connecting with each other, building a mesh of devices using Apple’s proprietary technology. The devices are meant to be kept on the wall, so challenges regarding memory issues && performance had to be taken care of to ensure a smooth experience. The technologies used consist mainly on Swift, targeting iPhone and iPads.

Visual implications of the work I did: https://9to5mac.com/2021/01/17/apple-store-arcade-retail-display/ https://9to5mac.com/2020/12/22/apple-store-fitness-plus-retail-display/

Brubank

Feb 2019 - May 2020
Roles: Staff iOS Engineer

Worked at Brubank, in the iOS app (https://itunes.apple.com/us/app/brubank/id1295202448?mt=8).

My achievements include:

  1. Setting up code signing with fastlane (match) and bitrise.
  2. Automate testing and production releases for every PR with bitrise and fastlane (via scripting).
  3. General knowledge of Rx and MVVM.
  4. Testing using Quick and Nimble.
  5. Mentoring in technical aspects.
  6. Coordinate with other areas common projects (i.e: docker & infra).
  7. Update to Swift 4.2 and Swift 5.
  8. Gave more than 5 internal technical talks.
  9. Automate taking metrics such as build time, slow building functions, unused classes
  10. Automate deployment of versions to slack channels so they could be installed by QA team.

MURAL

May 2018 - Feb 2019
Roles: Senior React Native Engineer

MURAL (https://mural.co/) is an online collaboration tool. It’s similar to a remote whiteboard, in which users can interact remotely, add post-its, drawings and other type of elements.

[React Native] As the app was written in React Native, I learned that language and actually enjoyed it a lot. I also had to use my Swift - Objective-C skills, because of several components in the app that we needed to code in native due to performance issues. This was a complex app that required sockets, drawing (had to be performant), and other software challenges.

[iOS] Inside Mural, I also worked in other project named “Mural Scan” (https://mural.co/scan). It’s an Augmented Reality (AR) app that scans post-its from a wall into the mural. In order for this to work, we used OpenCV (to detect drawings), Vision framework (to detect rectangles) and ARKit to place the stickies at the wall. I then ported this app to Mural’s iOS app by creating a cocoapods framework that was consumed via Mural.

Tools used:

  1. Cocoapods (heavy use, as I built MURAL Scan as a framework that was then consumed by Mural).
  2. Javascript, Typescript, Swift and Objective-C.
  3. React Native, Redux, Sagas.
  4. Automation with Bitrise and Fastlane.

Cuaderno Rojo (Freelance)

Jul 2018 - Dec 2018
Roles: Senior React Native Engineer

The project was left at a middle stage when I arrived, so I helped one of the founders (a friend) to be able to upload it. My work consisted on migrating the react native code working in iOS to android, and in addition fix some issues and impelement some features (like Push Notifications). The task was quite complex because the project had an outdated version of Expo, so I had to go through some migrations. Making react-native-firebase and native modules work with Expo was quite a nightmare - impossible, so I removed expo to instead use react-native.

Mimo

Aug 2017 - Dec 2018
Roles: Senior iOS Engineer

During my second semester in Austria, I worked at Mimo (https://getmimo.com/). It was one of the best work experience I had. The product was widely used, growing a lot and it was a small team (~12) of great people, from different parts of the world.

In my short experience here, I switched back again to iOS development (after finishing my thesis). I realized how much I grew on my development skills.

The tools I learned/used here include:

  1. RxSwift (I already had experience with ReactiveCocoa).
  2. Autolayout in code.
  3. Taught what I knew regarding architecture (MVVM + Rx).
  4. Cocoapods.
  5. Code review.

AIT Austrian Institute of Technology

Apr 2017 - Oct 2017
Roles: Machine Learning Engineer

While living in Vienna for my last year of university, I wrote my master thesis about Artificial Intelligence (AI), sponsored by AIT (Austrian Institute of Technology). The thesis was highly appreciated by AIT, and earned me an honorable mention at UAS Technikum Wien.

Title: Object Detection Based on Convolutional Neural Networks Trained on Synthetically Generated Data

Abstract: Object detection is one of the most active research areas in computer vision, although it continues to be an extremely difficult computational problem and an open research topic. At the core of this challenge is image variation: each object in the world casts infinite different images to the viewer, depending on object position, pose, lighting and background.

It has been shown that when there is enough training data available, even simple models can address image classification problems with outstanding results. However, the required data for real-world scenarios tends to be hard to obtain in large quantities.

The aim of this thesis consists of exploring the usage of CNNs for object recognition of arbitrary chosen object categories. Furthermore, to address the problem of insufficient data, the project will explore synthetic data generation tools for training purposes. The main purpose is to analyze how accurate does training with synthetic data results on detecting real world objects.

Object detection is widely applied in different areas of computer vision, such as video surveillance, medical imaging, autonomous driving, augmented reality and robotics. The results obtained in this project hold potential for improving each one of these areas, as well as advancing the current state of computer vision in general.

Wolox

Mar 2015 - Oct 2016
Roles: Machine Learning Engineer

Wolox was my first work experience. There I learned iOS development, first with Objective-C and then Swift (since the beginning of Swift basically).

The technical expertise at Wolox was pretty high, and in my time there I could learn a lot, not only of iOS development, but of software as a whole. I pushed myself forward, started reading blog posts, watched technical talks, subscribed to iOS communities, wrote some blog posts and other activities that made me grow a lot as a developer.

Inside Wolox I worked at different projects, I can recall:

  1. Syrmo (http://syrmo.com/): Skate app to share tricks with other skaters, which maintained a persistent connection with a Bluetooth tracker attached below the skate.

  2. SonicWords (https://twitter.com/sonicwords): Audio player, from local & remote sources. Could control the player via voice commands.

  3. WolmoCore (https://github.com/Wolox/wolmo-core-ios): While working at Wolox, I was the maintainer of Wolox’s iOS open source library wolmo core.

The tools I learned here include:

  1. ReactiveCocoa (both Objective-C and Swift).
  2. Autolayout with storyboards && xibs.
  3. Architectures, like MVC and MVVM (mixed with ReactiveCocoa).
  4. Real understanding of git.
  5. Carthage
  6. Travis CI.
  7. The last year, I was also in charge of code reviewing in iOS.

Some accomplishments:

  1. Wrote a post: https://medium.com/wolox-driving-innovation/viewmodel-injection-in-viewcontrollers-with-storyboards-50230143c3ac
  2. Gave a talk at SwiftBA Meetup: https://www.youtube.com/watch?v=zOaFd4GnkO8. Slides: https://www.slideshare.net/frandepascuali/view-controllers-the-right-way-66607511
  3. Won a Wolox hackathon with Drone Clash: AR game in which teams of two players fight with their drones. The driver is in charge of manipulating the drone, while the attacker receives on his phone the drone video feed and targets the opponent drone.