Matija Stepanic, Developer in Zagreb, Croatia
Matija is available for hire
Hire Matija

Matija Stepanic

Verified Expert  in Engineering

Software Developer

Zagreb, Croatia

Toptal member since February 23, 2022

Bio

Matija is a seasoned web developer with 15 years of web and 10 years of mobile app experience. He has a Master of Science degree in computing and industry experience on over 200 projects in full-stack development with Node.js on the back end; NestJS and Parse Server for self-hosted Docker containers; Google Cloud Functions for Firebase on serverless environments; and Angular and Flutter on the front end. He has been a certified FlutterFlow Expert since May of 2022.

Portfolio

ITalk Ltd.
Node.js, TypeScript, NestJS, Parse Server, Firebase, Google Cloud, Docker...
Freelance
PHP, Node.js, MySQL, PostgreSQL, MongoDB, Java, Amazon Web Services (AWS)...

Experience

  • Software Engineering - 18 years
  • Node.js - 11 years
  • Firebase - 8 years
  • TypeScript - 8 years
  • Google Cloud - 8 years
  • Dart - 3 years
  • Flutter - 3 years
  • FlutterFlow - 3 years

Availability

Part-time

Preferred Environment

Visual Studio Code (VS Code), iTerm2, MacOS, FlutterFlow

The most amazing...

...thing I've developed is FirePixy, a complete solution for photo booths and photo walls at weddings and other events.

Work Experience

Senior Software Engineer and CEO

2016 - PRESENT
ITalk Ltd.
  • Listed as a FlutterFlow expert since 2022-05 and worked mainly as a FlutterFlow consultant on 50+ different FlutterFlow projects. Developed custom Flutter features and integrated the app with other services by developing Node.js Firebase functions.
  • Developed FirePixy for crowdsourcing photos and videos at weddings and community events from mobile devices and photo booths. The system consists of a Node.js back end, browser PWA written in Angular, and a WPF application.
  • Built a server-side OCR bridge to a native OCR engine with API key management for a SaaS solution while working as a consultant for Microblink Ltd.
  • Developed the back end and defined an architecture for the ScanShop project with NestJS and Parse Server while leading a development team of nine to build the back-end infrastructure and browser and the native mobile front end.
  • Built the back end for the Tempo project's progress tracking application for projects granted from European Union funds, using NestJS, Parse Server, and Firebase.
  • Developed a static site starter based on Angular and Scully backed by a Flamelink headless CMS and Firebase with automatic site-building and deployment to Netlify.
Technologies: Node.js, TypeScript, NestJS, Parse Server, Firebase, Google Cloud, Docker, Parse SDK, Flutter, Android, iOS, FlutterFlow, Dart

Software Engineer

2006 - 2016
Freelance
  • Developed an internal CRM for handling membership and activities for a Croatian public organization. It's been in production since 2008 and consistently has around 1,500 users.
  • Built a custom CMS and website for a Croatian business news agency.
  • Co-founded and developed the back end of Mobicon, a crowd microphone application.
  • Developed 100+ simple commercial websites and internal tools.
Technologies: PHP, Node.js, MySQL, PostgreSQL, MongoDB, Java, Amazon Web Services (AWS), Spring Boot, Yii

Experience

FlutterFlow Multi-file Upload with Firebase Storage and Drag-and-drop

https://github.com/stepanic/mp-ff-super_drag_and_drop
Customized the FlutterFlow file upload feature to integrate with Firebase Storage SDK. I used UploadTask Stream to monitor upload progress and optimized memory by handling files as streams. I also added the ability to get original file names and implemented a drag-and-drop feature for file uploads using the super_drag_and_drop library from pub.dev.

FlutterFlow Barcode Generator with Data Encryption

https://github.com/stepanic/mp-ff-barcode
This project includes a set of reusable Custom FlutterFlow widgets and actions for barcode generation; it depends on the open-sourced package `barcode_widget` from the pub.dev. Many types of barcodes could be generated and shared as an image outside the application. Also, the project includes implementation from `ff-encrypt` (another open-source FF project I created), which unlocks the feature for the creation of barcodes with encrypted data with the Salsa20 Cryptography Algorithm. The primary usage of that set of functions is to share data with encrypted QR codes.

FlutterFlow Encrypt

https://github.com/stepanic/mp-ff-encrypt
A set of FlutterFlow Custom Actions for simple string encryption and decryption based on the Salsa20 Cryptography Algorithm. This project's main dependency is the `encrypt` package from pub.dev. The project includes multiple reusable functions and a Demo UI for testing all available custom functions.

FlutterFlow Identity Document Scanning Custom Widget

https://marketplace.flutterflow.io/item/58Xo9jogISg1W94KLuJC
I integrated the blinkid_flutter package with FlutterFlow, which wraps native iOS and Android identity document scanning SDKs. I developed a custom FlutterFlow widget that uses device cameras to read identity documents and returns structured data. This data can be processed in FlutterFlow Action Chains based on custom business logic (possible until August 2024). This solution has been implemented in 1,119 different FlutterFlow projects.

FlutterFlow Socket

https://github.com/stepanic/flutterflow-socket
I developed a CLI tool that extends Flutter CLI functionality. When a push is made to GitHub from FlutterFlow, a webhook notifies a local Node.js listener. After verifying the Git commit signature, local Bash scripts integrate the changes into the local working Git branch. Unix signals are then used to trigger hot reloads across one or more running Flutter processes.

The Birth Deck FlutterFlow App

https://thebirthdeck.com/pages/the-app
I developed an iOS and Android app for The Birth Deck Cards using FlutterFlow. The app, built with Flutter, integrates Firebase and Rowy for data management. Users can interact with cards, view related videos, and make in-app purchases via the RevenueCat SDK.

FirePixy | Applications for Crowdsourcing and Making Photos at Community Events

A Node.js serverless back end consisting of several Firebase Cloud Functions with integration to a few external services for media management. The photo booth WPF application is integrated with the official Canon SDK to take photos from Canon EOS DSLR cameras and print photos taken in photo booths or mobile apps. I wrote the browser PWA in Angular and Flutter Android, and iOS apps are currently in private alpha. The plan is to open source all parts of the system by licensing photo booth WPF applications.

ScanShop | Self-checkout Native Mobile Application for Retail Stores

https://ss.hr/
A Node.js back end written in NestJS and Parse Server with Firebase integration. The browser PWA application is based on Angular, and the native iOS and Android mobile applications were written in Swift and Kotlin. For marketing and sales purposes, I integrated the project with a few external services for automated data transfer between production data and internal reporting tools. As part of ScanShop open source, it was contributed to the Parse Dashboard project on GitHub.

Microblink | A JavaScript Web Component for Seamless Integration with a Server-side OCR Engine

https://github.com/microblink/microblink-js
A standalone web component for integration to any web application with a generic UI for accessing a device camera, uploading photos, and sending them to the Microblink Cloud-based OCR engine. As a sub-project of microblink-js, I created the Angular application with a desktop-to-mobile feature to start identity document scanning on the desktop and use a native mobile camera with higher resolution for better document scanning. I used Firebase and Cloud Firestore as a database for exchanging data between server-side and client-side components.

Parse Server Schema to DBML CLI Tool

https://github.com/stepanic/parse-server-SCHEMA-to-DBML
A Node.js CLI tool for converting Parse Server schema format to DBML for easy visualization of Parse classes and relations through external tools, dbdiagram.io and dbdocs.io. It's simple to create Parse classes and relations in the Parse Dashboard application, all data is stored in a MongoDB collection called _SCHEMA, and this CLI converts MongoDB JSON documents for DBML.

SaveTime | A Ticketing Counter as a Service

A Node.js-based back end on top of Parse Server with a SPA front end in AngularJS. SaveTime is a ticketing counter application in the cloud for handling waiting queues by providing a number that can be tracked remotely from the web application. The waiting line resolver has a simple dashboard for taking the next ticket to process the related person as part of their business service. The waiting line could be anywhere—at the bank, hair salon, doctor, etc.

Static Site Starter on Top of Angular and Scully

An Angular-based environment with Scully for building static landing websites with headless content editing by Flamelink CMS (with data-owning in a protected Firebase project) with a seamless triggering site build and static HTML deployment on Netlify from Flamelink via a Cloud Firestore onCreate trigger. Since 2020, several static websites have been created from that private GitHub repository for internal projects. The plan is to document and open source it live in the next few months.

EU Funds Mobile Android and iOS Application

A Node.js back end based on the Sails.js framework with MongoDB deployed to Heroku and MongoDB Atlas. The back end is a proxy with an in-memory cache for transforming the content structure from the WordPress API on the site and preparing to display it in Android and iOS applications created with Xamarin.Forms in C#.

Education

2013 - 2015

Master's Degree in Computer Science

University of Zagreb, Faculty of Electrical Engineering and Computing - Zagreb, Croatia

2009 - 2013

Bachelor's Degree in Computer Science

University of Zagreb, Faculty of Electrical Engineering and Computing - Zagreb, Croatia

Skills

Libraries/APIs

Node.js, Parse SDK, RxJS, WordPress API, WebRTC, Stripe API

Tools

Slack, MongoDB Atlas, AutoCAD, Adobe Photoshop, Adobe Illustrator, Figma, BlinkID, GitHub

Languages

TypeScript, JavaScript, HTML, CSS, SCSS, Dart, PHP, Java, C#, SQL, Bash, Kotlin, Swift, Solidity, GraphQL, Python

Frameworks

NestJS, Flutter, Angular, Spring Boot, AngularJS, Yii, Windows Presentation Foundation (WPF), Sails.js

Platforms

Firebase, FlutterFlow, Visual Studio Code (VS Code), MacOS, Docker, Parse Server, Netlify, Amazon Web Services (AWS), Google Cloud Platform (GCP), Linux, Android, iOS, Xamarin, Blockchain, RevenueCat

Storage

Google Cloud, MySQL, MongoDB, Cloud Firestore, NoSQL, PostgreSQL

Other

Database Markup Language (DBML), Full-stack, APIs, Rowy, iTerm2, Serverless, CI/CD Pipelines, Command-line Interface (CLI), Flamelink CMS, Software Architecture, SaaS, Software Engineering, Canon EDSDK, Web Components, Optical Character Recognition (OCR), Xamarin.Forms, Cryptocurrency, Webhooks, SDKs, Cryptography, Barcode Library

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring