Ionut-Cristian Florescu

Ionut-Cristian Florescu

React/Svelte/Node.js Developer in Bucharest, Romania, He/him

A full-stack developer from Bucharest, Romania, EU, with 20+ years of experience.

Curious by nature, an avid reader of fantasy, fiction, history & tech-related literature, always looking to expand my skill-set and horizons, to understand how things work and to make them work better.

Author of Mantine-DataTable, Mantine-ContextMenu, tRPC-SvelteKit, PocketBaseUML, Expose-WSL, IISExpress-Proxy and other open-source projects.

Owner of swapp.ro.

Projects

Ongoing

Mantine DataTable is a lightweight, dependency-free component that brings datagrid-like functionality to your data-rich user interfaces. Features context-menu support and intuitive Gmail-style additive batch rows selection out of the box.

FEATURE-RICH
Supports asynchronous data loading, pagination, multiple rows selection, column sorting, custom cell data rendering, row context menu, row expansion, nesting and more.

TYPESCRIPT-BASED
The entire codebase is written in TypeScript, component properties are well typed and documented with JSDoc, so you can build type-safe applications with confidence.

FREE & OPEN-SOURCE
The package is released under the MIT license, same as Mantine library, so you can freely build fantastic data-rich applications with it.

USE ANYWHERE
You can use it in any modern React framework supported by Mantine, such as Next.js, Vite, Create React App, Remix or Gatsby.

Ongoing

A component that brings right-click functionality to React web applications built with Mantine UI.

If you're a React developer and use the Mantine UI library, this cool little library enables you to design your applications for productivity and meet your users’ expectations by enhancing your UIs with desktop-grade context menus.

LIGHTWEIGHT YET CUSTOMISABLE
Features a succinct API, respects the Mantine dark mode and can be easily customized by providing your own content instead of using the default generated menu items.

TYPESCRIPT-BASED
The entire codebase is written in TypeScript, options are well typed and documented with JSDoc, so you can build type safe applications with confidence.

FREE & OPEN-SOURCE
This package is released under the MIT license, same as Mantine library, so you can freely build fantastic data-rich applications with it.

USE ANYWHERE
You can use it in any modern React framework supported by Mantine, such as Next.js, Vite, Create React App, Remix or Gatsby.

Ongoing

Move fast and break nothing.
End-to-end typesafe APIs for your SvelteKit applications.

Ongoing

PocketBaseUML is a free, open-source UML diagram generator for PocketBase.
You can use it online at pocketbase-uml.github.… or run it locally as an npm package.

2023

Expose-WSL is probably the simplest way to expose apps running on WSL to local network devices.

2023

A simple tRPC transformer based on superjson with Decimal.js support.

2020

An automotive sales web application built with React/Next.js, MaterialUI, ObjectionJS, KnexJS, PostgreSQL and deployed on Amazon Lightsail.

2020

A back-office fleet purchase management system built for AJM Business Services automotive trading company.
Built with React/Next.js, Blueprint.js UI library, Hasura, PostgreSQL, and deployed on Amazon Lightsail.

2019

A beautiful website built for a very special travel agency.
Designed from scratch using Figma, entirely coded with JS/React/Next.js.

2018

Beta-reading, consulting on and co-editing the King's Host implied a lot of work but at the same time was really fun. Finally getting the book published on Amazon Kindle, Google Play, Apple iBooks and Kobo Rakuten in May 2018 was really a dream come true.
The author invested countless hours and a tremendous amount of energy for more than a full year in bringing this book to life and supporting her was truly a privilege.

The technical tasks included editing the book content in Calibre, exporting and tweaking the output formats, submitting the results for review to four of the major ebook stores and setting up the main product website.

On a strictly technical note, I've built kingshost with Node.js / React / Next.js, dressed it with styled-jsx and crafted a workflow to host it on GitHub Pages. The code is opensource - please refer to my GitHub profile if you're curious to learn how it was done.

On a less technical note, if you're into fantasy novels, don't hesitate to give King's Host a try (and a nice review on any of the stores ;-). It will take you to a fantastic dream world, delight your senses and make you forget about your troubles for a while.

2016

Many years ago I performed a cool little experiment on how one could create and apply the leanest possible text-diffs in browser-based text editors such as CodeMirror, which materialized into two small utility NPM packages: textdiff-create and textdiff-patch.

I was recently surprised to discover that the two packages are still making between 3 and 3.5k downloads per month each!

2015

A simple, yet practical command-line utility enabling .NET developers to test web applications served by IIS Express on remote devices.

2014

Node.js, MongoDB, PostgreSQL & MySQL cartridges for Redhat's OpenShift, released in 2014-2015, when Docker wasn't yet a wide-spread tool.

Node.js: github.com/icflorescu/ope…
MongoDB: github.com/icflorescu/ope…
PostgreSQL: github.com/icflorescu/ope…
MySQL: github.com/icflorescu/ope…

2013

A simple Node.js asset packager inspired by Rails, released in 2013, when Webpack didn't exist

2010

Developing & maintaining our website to help us advertise our design, modeling and architecture vizualisation services.

Work Experience

2008 — Now
Bucharest, Romania

Senior Full-Stack Developer at @icflorescu
Bucharest, Romania
Having more than two decades of practical experience in web/software development with various tech & financial industry companies ranging from small technology start-ups to large enterprises, I’m working as an independent developer and technology consultant.

Current tech-stack:

  • Typescript/JavaScript
  • Node.js
  • React/Next.js, but I'm also interested in Svelte/SvelteKit and Qwik/QwikCity
  • tRPC — I'm a contributor and also the author of tRPC-SvelteKit and tRPC-Transformer
  • NextAuth
  • PocketBase — I'm the author of package PocketBaseUML
  • Firebase (mostly firebase-auth)
  • Prisma, PostgreSQL, Hasura
  • SQL in general; I have experience in designing enterprise DB architectures while working for multinational companies in the past
  • I have a few CSS tricks up my sleeve, a good understanding of the DOM, I'm fluent with CSS-in-JS, SASS/CSS-Modules, Emotion and I'm even good-enough at creating website/application designs from scratch

React UI Frameworks I've been working with:

  • Mantine — I'm a contributor and also the author of Mantine DataTable and Mantine ContextMenu
  • Ant Design
  • MaterialUI
  • Blueprint.js
2021 — Now
Bucharest, Romania

SWAPP is a workflow management and accounting application built for Romanian freelancers and small-business owners, enabling them to keep track of customers, contracts, projects, work effort, invoices and check-register entries. It also produces "real-time" accounting and financial reports.

Our small team of two people built the entire platform and website "from scratch" over 7 months - from hand-drawn UX/UI concepts, through Figma artboards, countless lines of code, to production deployment on a custom VPS.

The universally-rendered React/Next.js application code is written in Typescript and styled with SCSS modules. We're using Next-Auth to manage the user authentication workflow and Prisma with PostgreSQL for data persistence. Most of our business logic is handled within Next.js API routes and we've also used some advanced PL/pgSQL functions to be able to quickly generate "real-time" reports data. The UI is built on top of a slightly customized version of Ant Design - the most complete framework of UI components for React to date, perfectly suited for high-productivity desktop interfaces with heavy data density.

Our users' invoice documents are generated on-the-fly using a fantastic library called ReactPDF.

We've built a custom (bash-scripts based) scenario to reliably manage our production-deployment workflow, and be able to operate a low-cost production environment on a couple of Docker containers residing on an Ubuntu Server VPS.

We've using Paylike (by LUNAR) to accept online payments from our users, and since our application was custom-built, we've rolled our own integration using their Web SDK APIs.

2010 — 2020
Bucharest, Romania

Co-founded a design/visualisation studio offering professional services for:

• 3D modeling, rendering and architecture visualisation;
• interior design for commercial/retail & residential spaces;
• custom furniture design;
• digital graphics;
• custom web development.

2016 — 2019
Bucharest, Romania

edesigning and rebuilding from scratch the entire third version of the codebase and managing the PaaS infrastructure of one of the best automobile marketplaces in Romania.

Technology key-points:

• ES6/7 on both the server and client-side;
• Server application built with Express.js/Node.js, running on a custom-built PaaS infrastructure hosted on ArubaCloud;
• Data persistence layer built with Bookshelf.js/Knex.js on top of PostgreSQL, with a custom-made FTS engine to fully support Romanian language;
• Data caching on a dedicated Redis server;
• Views built with Jade and styled with Stylus;
• BLOB storage on Amazon AWS;
• PWA elements built with VanillaJS/DOMTastic/Riot.js, without jQuery.

2014 — 2018
Bucharest, Romania

Having significant practical experience in developing modern web application front-ends, I got involved in the UX/UI design process and especially JS coding for various exciting projects developed by Drift Data Systems.

2017 — 2018
Bucharest, Romania

Beta-reading, consulting on and co-editing the King's Host implied a lot of work but at the same time was really fun. Finally getting the book published on Amazon Kindle, Google Play, Apple iBooks and Kobo Rakuten in May 2018 was really a dream come true.
The author invested countless hours and a tremendous amount of energy for more than a full year in bringing this book to life and supporting her was truly a privilege.

The technical tasks included editing the book content in Calibre, exporting and tweaking the output formats, submitting the results for review to four of the major ebook stores and setting up the main product website.

On a strictly technical note, I've built kingshost.github.io with Node.js / React / Next.js, dressed it with styled-jsx and crafted a workflow to host it on GitHub Pages. The code is opensource - please refer to my GitHub profile if you're curious to learn how it was done.

On a less technical note, if you're into fantasy novels, don't hesitate to give King's Host a try (and a nice review on any of the stores ;-). It will take you to a fantastic dream world, delight your senses and make you forget about your troubles for a while.

2008 — 2013
Real-Estate Investment Advisor at Investment Romania
Bucharest, Romania

Capitalizing on previous experience gained while working for financial institutions, I was part of a private-equity investment group focusing on Bucharest residential RE market.

2011 — 2012
Co-Founder & Executive Search Consultant at Exposure Recruitment
Bucharest, Romania / Dublin, Ireland

Exposure Recruitment was a Dublin-based recruitment agency whose aim is to "make great things happen" by helping quality businesses and professionals find each other in the global market.

Our extensive "hands-on" technical background enabled us to do things a bit differently than the usual recruitment agencies. We "knew people" but we also knew technology.

2006 — 2007
Bucharest, Romania / Athens, Greece

Part of a 5 engineers team developing the company core insurance system based on Microsoft .NET / SQL Server technologies.

2003 — 2005
Bucharest, Romania

Part of a core-team of software engineers laying out the foundation of what was to become one of the best insurance software system based on Microsoft .NET / Oracle Database technology up to date.

2002 — 2003
Software Developer & IT Consultant at Network Security Ltd.
Bucharest, Romania

Consultancy agreement to build & manage a website for the Public Administration Ministry of Romania.

2000 — 2003
Lead Developer at Logic D&D Advertising / Logic Telecom
Bucharest, Romania

Logic D&D Advertising was a subsidiary of Logic Telecom, a leading Romanian ISP.

During my presence there I've practically "grown" with the company, stepping-up from an initial Web Developer position to becoming the IT Dept. Manager.

We've build quite a number of great products/websites and my involvement varied in time, from building the actual DB architectures and frantically writing thousands of lines of code to managing a team of 5 software / content developers / designers.

2002 — 2002
Database Architect at WDD Romania Ltd.
Bucharest, Romania

Consultancy agreement to build the database architecture for an e-commerce system.

2000 — 2001
Web/Software Developer at Frifugl Design AS
Høvik, Norway

Building a PHP/MySQL-based custom online content management system (similar to Joomla or Wordpress).

1999 — 2000
Web Developer & Webmaster at MKCO.RO
Bucharest, Romania

Developed/managed various web projects using open-source technologies (Linux, PHP, MySQL).

1998 — 1999

Developing and managing the online presence of ANEVAR, the National Association of Romanian Valuers, a member of TEGoVA (The European Group of Valuers’ Associations) and IVSC (International Valuation Standards Committee).

1998 — 1998
Network Administrator at Internet Café Ltd.
Bucharest, Romania

Internet Café Ltd. was the first publicly-open Internet Café in Bucharest.
This was my first "real" job and my duty involved providing the technical support to build and maintain the infrastructure of the Internet Café.

GitHub
LinkedIn