# Ivan Čurić (@ivancuric.npmx.social)

Profile: https://sifa.id/p/ivancuric.npmx.social
Headline: A software developer with a deep love for HCI and everything related to the user experience — including developers.  Resident jankbuster, hopeless idealist.

## About

Making browsers bleed since 2010

## Experience

- **Freelance Web Developer at Freelance - Web Development** (2010 – 2014)
  • Worked on smaller local and international projects built on Wordpress.
- **Frontend Developer at 404 agency** (2014 – 2018)
  • Worked on corporate sites and webshops for high-profile clients such as Zagrebačka banka, HRT, Croatia Osiguranje and Valamar.
  • Worked on implementing best practices and new technology stacks in the company such as React, Node JS, build and deployment processes, CDN usage and resource optimization.
  • Gained a lot of experience writing flexible and easily refactorable code for accomodating potential project oversights and changes.
- **Frontend Developer at Software Sauna** (2018 – 2022)
  Worked primarily with remote teams of Nordic clients.
  • Worked with Varjo on building a user-facing Windows application for managing the hardware and software stack of VR headsets using Electron, React, Redux, nodeJS and Typescript: https://www.itewiki.fi/p/vr-headset-management-application
  • Developed a graphical node based programming interface for a chatbot flow configurator based on directional graphs.
  • Developed an Electron app for for operating a medical class camera. Features also include high performance previews, media management and and network video streaming using FFmpeg native addons.
- **Staff Software Engineer at Microblink** (2025 – present)
  • Architected the composable v7 SDK.
  • Led the complete rewrite of BlinkID for the web, delivering a flexible product that resolved hundreds of bugs and drastically reduced support tickets.
  • Drove cross-team collaboration and influenced cross-functional stakeholders to secure adoption of the new architecture and facilitate seamless client migrations.
- **Frontend Developer at north2** (2014 – 2014)
  • Worked on presentational sites. Implemented a canvas-powered carousel on www.lobagola.com, nominated for an Awwwards Site Of the Day.
- **Frontend Developer at Interaction Design Foundation (IDF)** (2018 – 2018)
  • Worked on refactoring the legacy codebase of www.interaction-design.org to a modern tech stack.
- **Senior Software Engineer at Microblink** (2022 – 2025)
  • Building and maintaining the WebAssembly-powered browser variants of Microblink's document scanning SDKs across the entire product lineup

## Education

- **Tehničko veleučilište u Zagrebu** — Bachelor's degree (2008 – 2011)
- **University of Zagreb/Sveuciliste u Zagrebu** — Masters’s degree in multimedia (2011 – 2013)

## Skills

- User Experience
- API design
- SolidJS
- Windows
- Responsive Web Design
- Zustand
- D3.js
- Optimizing Performance
- Cascading Style Sheets (CSS)
- CSS
- Front-end Development
- Babel
- HTML5
- User Interface Design
- Cross-functional Collaborations
- Redux
- Browser rendering performance
- Javascript
- Web Content Accessibility Guidelines (WCAG)
- Webpack
- ES6
- SCSS
- Video Processing
- Web Video
- Code Refactoring
- Build Tools
- MacOS
- Web Development
- Computer Vision
- WebAssembly
- Initiative
- Library Development
- Monorepo
- Electron
- TypeScript
- Browsers
- Web Typography
- React
- Semantic Markup
- NodeJS
- JavaScript
- Scalable Architecture
- Multithreading

## Projects

- **Prostoria** — https://www.prostoria.eu/hr/
  Worked as a sole frontend developer on the project. Switched the agency workflow to using Cloudinary as a CDN. Lot of focus was put into responsive typography, accessibility, semantics and quick image loading. The image loading code was eventually split into a separate library: https://github.com/ivancuric/lazy-img  Tech used: Stage 1 ES6 (at the time of writing), Sass, HTML, Webpack, Gulp, NodeJS
- **Google Chrome UI element sample contribution** — https://github.com/GoogleChrome/ui-element-samples/pull/88
  Upgraded Google demo using scale transforms to make performant expand-and-collapse effects to eliminate in-between-frame artifacts due to non-linear property composition.
- **lazy-img.js** — https://github.com/ivancuric/lazy-img
  A lazy loading image library, written in ES6, taking advantage of Cloudinary.
- **BlinkID Web v7**
  A complete rewrite of BlinkID, shipped as multiple composable components for ultimate implementation flexibility, including a headless and a UI component.

Major improvements across the board, including industry-leading camera management, frame processing performance and success rates.

## Publications

- Optimizing CSS: ID Selectors and Other Myths — Sitepoint (https://www.sitepoint.com/optimizing-css-id-selectors-and-other-myths/)
- JavaScript Performance Optimization Tips: An Overview — Sitepoint (https://www.sitepoint.com/javascript-performance-optimization-tips-an-overview/)
- Talk: Lazy loading images — Frontend Zagreb @Five (https://github.com/ivancuric/lazy-img)
- Talk: "Web in 60 fps (or more)" — Frontman Zagreb @ HUB365 (https://www.meetup.com/FrontmanZg/events/229630625/)

## Volunteering

- Member of the talks committee at WebCamp Zagreb

## Languages

- English (full_professional)
- German (elementary)
- Croatian (native)
