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

Matija Stepanic

Verified Expert  in Engineering

Software Developer

Location
Zagreb, Croatia
Toptal Member Since
February 23, 2022

Matija is a seasoned web developer with 15 years of web and 10 years of the 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

Availability

Part-time

Preferred Environment

Visual Studio Code (VS Code), iTerm2, Slack, MacOS, Linux, Google Cloud, Node.js, TypeScript, Docker

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.
  • 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 WPF application.
  • Built a server-side OCR bridge to native OCR engine with API keys 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 the 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 Projects 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

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

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

https://play.google.com/store/apps/details?id=hr.strukturnifondovi&hl=en&gl=US
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#.

Languages

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

Frameworks

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

Libraries/APIs

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

Other

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

Tools

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

Platforms

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

Storage

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

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

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