Hi there!

Cristian Gutu

9+ years of experience on mobile

The Economist, Remote — Mobile engineer on Native iOS/Android and React Native

July 2022 - June 2023

I had the privilege of working with an incredible team in an environment that values productivity and work-life balance. During my time, I made a significant impact by spearheading next-level automations and collaborating with amazing, warm individuals.

One of my notable contributions was developing native implementations for iOS and Android, specifically focusing on the background download feature. This feature played a crucial role in enabling offline access to the audio version of each weekly news edition. I utilized Kotlin for Android and Swift for iOS, leveraging the native capabilities of each platform. On Android, we leveraged the power of the DownloadManager, while on iOS, we utilized the URLSessionDownloadTask.

Additionally, I took on the challenge of creating a React Native library from scratch for our consent management solution. To ensure optimal performance, I implemented critical components natively for iOS and Android, while exposing common functionalities through the Typescript module. This library proved to be a remarkable achievement as it was subsequently reused by other apps within The Economist, resulting in a remarkable time savings of at least 480 development hours.

Throughout my tenure, I wore many hats and actively supported the teams in various capacities. I resolved native issues, addressed CI/CD challenges, enhanced build pipelines, orchestrated seamless migrations to newer versions of React Native, and resolved issues with Detox and Unit tests.

DataCamp, Remote — React Native / React.js / NodeJS

January 2022 - July 2022

Rethinking and rewriting some big parts of the DataCamp iOS / Android apps and Web + Backend apps.

Doing the groundwork on mobile; necessary to be able to integrate all the features that are already available on DataCamp’s web app.

Migrated the entire code base from JavaScript to TypeScript in 2 weeks. Most of the migration was done with a script and we invested time to check and fix all the remaining type errors.

Added new features to an existing GraphQL API. That API is using multiple services to get data and a PostgreSQL DB. We’re heavily using join-monster-graphql-tools-adapter to make our job easier.

Most of the pages and components are tested using snapshot testing with Jest. We also have a lot of mocks for external libraries that are written by us.

The mobile app for iOS and Android, the backend app and 2 React.js web apps are all structured in a monorepo fashion because we share a lot of code between mobile and web. Yarn Workspace is configured to take care of this. We reuse a lot of code, in fact most of the core features are 100% reused, this was achieved by using react-native-web.

In terms of CI/CD, everything is scripted using Fastlane, with this tool we manage the Production Builds, PreRelease Builds and Nightly Builds.

Those PreRelease and Nightly builds are distributed using TestFlight and PlayStore’s Beta Channel.

Mostly we don’t touch the AppStore / PlayStore UI dashboards, because most of the release jobs are automated, new versions are automatically created, the release notes are automatically set, the iOS code sign certificates, provisioning profiles and Android’s KeyStore files are all gracefully handled.

One more interesting thing about this project is making sure we are prepared if a new feature breaks or if we want to gradually release something new, this is done by using Feature Flags, splitio-react-native helped us a lot.

AilyLabs, Remote — React Native / iOS / Android

February 2021 - January 2022

Building a next-gen fully AI powered solution to help big businesses understand & wisely use their data.

The client is of the biggest pharmaceutical companies in the world and we’re helping them to forecast and have the best possible business outcomes.

Used Swift / SwiftUI to build and integrate a well designed widget, using the latest WidgetKit and SiriKit Intents frameworks.

Used GraphQL with Apollo client, we also developed a nice script that updates the GQL type definitions directly from the remote schema.

Everything was written in TypeScript.

Used D3.js and HighCharts to render many charts, most of the chart config was controlled by the backend, those charts were very customizable with zero changes required on the client side.

Developed a solid number formatting implementation, by using the native way of formatting numbers in iOS and Android, this was done by adding some native code in Swift and Kotlin so we can use those implementations on the JavaScript side.

No PNGs/JPEGs, all of our graphic assets are vectorial ones, so it looks good on any screen size. Some of them were also delivered by the backend.

IBM / iX Division, On-site — React Native / iOS / Android

August 2020 - January 2021

Delivered a car companion app (like the one from Volkswagen or Tesla) for one of the biggest car makers from Asia.

The client was a car maker from Asia and the app was for the Italian market.

In the app you can see statistics about your registered vehicles like trips, mileage, battery level and so much more.

The app also supports an end-to-end vehicle registration process.

It was built using the latest version of React Native. I’ve used Apollo for GraphQL, Axios for REST API calls, Jest and react-native-testing-library for Unit and UI testing.

The code coverage for this project is above 90%, we used react-native-testing-library, we wrote very in depth tests which sometimes are more helpful than just a snapshot test.

The whole app is built using TypeScript, Functional Components, React Hooks, React Context and Redux.

Besides development I orchestrated the whole CI/CD pipeline, the whole AppStore and PlayStore listing and publishing work.

From time to time I also helped the backend team writing a small feature to support profile picture upload in GraphQL, this was written in Node.js

We held a live launch event and I was the one responsible for launching the app in the Italian app stores (AppStore & PlayStore).

Cobalt Sign, On-site — Technical Lead

June 2014 - August 2020

In the early days I used Objective-C for iOS apps and Java for Android, right now I heavily rely on Kotlin for Android, Swift for iOS and JS/TS for React Native.

In the last few years I built and maintained apps for clients from the fintech and medical sector, wrote functional and technical specifications for new projects, talked with clients, integrated CI services & static code analysis tools and other project management related tasks.

Experienced with Agile methodology, I did a lot of project management work.

Aware about the latest UI/UX trends in mobile apps. I know how to build experiences that feel like iOS or Android by choosing the right fonts, navigation patterns and animation styles.

Helped the team to develop and grow an in-house product, called ReadySetHoliday! which currently has over 2 millions downloads on AppStore & PlayStore and thousands of active users per month.

Did a lot of in-house technical talks about Java, Swift, Kotlin, JavaScript, React Native, Redux and general iOS & Android development tips.

I was part of the team that organized pro-bono courses for students about Android and React Native development.

Below I will mention some of my favorite projects that I’ve worked on.

Analytics App

for the biggest hospital from Zürich

The upper management wanted to easily see how good each department was performing.

I’ve built an app in React Native that showed charts and financial data for each department from that hospital.

Each month the users were notified about the new financial data, this was done by integrating push notifications in the React Native project using OneSignal.

We’ve used a monorepo approach to better separate the business-logic code from the mobile related code.

After I delivered the app the client was really happy and asked us for a web app in React.js.

This monorepo project structure helped me to reuse 95% of business-logic code and 60% of the UI code and save 1000+ hours of development.

All the project architecture and CI/CD work was done by me.

Investment and Mobile Banking App

for a bank from Zürich

For them I’ve built investment app, where you could:

  • buy financial products,
  • do investment banking,
  • do investment management and currency trading services,
  • see prices in real-time using web sockets,
  • have personalized portfolios,
  • have a lot of charts and insights about financial products,
  • a fully-featured search module with suggestions, search history sorting and filters,
  • a beautiful floating bubbles animation like the one from Apple Music app,
  • universal links to reset your password inside the app (and much more),
  • push notifications delivered when the product price changes
  • the ability to set all kind of rules and actions that will be executed when a product price is changed

All these features were branded with completely different styles and colors for Germany, Switzerland and Hong Kong.

I’ve done all the technical decisions, project architecture, held the meetings with the client, wrote technical specs in Confluence and managed sprints in Jira.

For this project I did a lot of custom work, meaning to write code on the native side (iOS/Android) to be able to integrate:

  • custom chart components,
  • custom floating bubbles components,
  • strong time, date and number formatters.

This project started when React Native was at version 0.20 so I also did a lot of React Native upgrades which can be very difficult because all those new versions were full of breaking changes.

I can help you too! 🤓

You can write a message here or connect with me on LinkedIn.

Send your thoughts here. I will get back to you.