Tonko Rafajac

I'm Tonko,

Full-Stack Software Developer

About me

I have more than 10 years of web development experience working with enterprise solutions on premise and cloud for a wide variety of industries. Before becoming a developer, I did system administration which provided me with invaluable experience to also do the Ops part while doing the Dev part. I also hold a couple of dozen Microsoft Certifications to prove it.

Green field, brown field, rewrite or legacy project? I've did them all. I like solving problems and I'm interested in all of them! I have worked solo and in teams as a developer, mentored junior and mid-level developers, led projects as a team lead, and analyzed and advised on software development process.

I'm best skilled in Blazor, Vue, React, Svelte, .Net Core, SQL and Docker. During rewrite and legacy projects I've also been exposed to AngularJS, NodeJS, pretty much all ASP.Net technologies, and of course WinForms and WPF. I also used Selenium to write integration tests and wrote some automation scripts using Playwright. I would love to do more work like that.

Once the Docker craze hit, I decided to prefer developing apps to run in a cloud-native OCI compliant containers. I loved it so much that I even write them in containers! After all, what better way to make sure there are no surprises after deployment. While transitioning to cross platform development, I've set up a local Linux server which is now years later used to self-host a whole slew of containers that provide services to me and my extended family. For reliability, I've also had to deploy some of those containers to the cloud and I must say how amazed I was when I realized containers are cloud agnostic and I could easily switch from one cloud provider to another.

Code



C# logoC#ASP.NET Core logoASP.NET CoreJavascript logoJavascriptTypeScript logoTypeScriptHTML5 logoHTML5CSS3 logoCSS3Blazor logoBlazorVue logoVueReact logoReactSvelte logoSvelteAstro logoAstroGatsby logoGatsby

Databases



SQL Server logoSQL ServerPostgreSQL logoPostgreSQLMySQL logoMySQLSQLite logoSQLite

Cloud



AWS logoAWSAzure logoAzureHetzner logoHetznerGitHub logoGitHubJira logoJira

Other



VS Code logoVS CodeDocker logoDockerLinux logoLinuxubuntu logoubuntu logoredis logoredisSelenium logoSeleniumBootstrap logoBootstrapTailwind logoTailwind

Services

Development

Full-Stack

Backend

Frontend

Cloud

CI/CD

Cloud migrations

Support

Consulting

Coaching & Mentoring

Security and safety policies

Process and scoping help

Types of projects I can work on

Greenfield

Do you have an idea you want to come to fruition? I will build it with a strong foundation and tackle any non-functional requirements.

Brownfield

Do you have an existing project moving slowly or behind schedule? I can hit the ground running and help your existing team from day one.

Rewrite

Do you want to replace or modernize an existing app? Tech debt is real and I can help you manage it.

Legacy

Do you need to update or maintain an existing app? No matter how old, I'll try my best.

Migration

Do you want to migrate to cloud? Switch cloud provider? Go back to on premise? I've seen it all and I can transform your app to a cloud native one so you can switch more easily in the future.

MVP

Do you need a proof-of-concept (PoC) or Minimum Viable Product (MVP)? I can help transform your ideas into tangible, functional prototypes.

Projects

Holiday rental management MVP

Automating business processes for holiday rental agencies.

SMTP server Greenfield

SMTP protocol implementation providing key integration points for other apps.

Central Authentication & Authorization Greenfield

Manage user, roles and claim for entire company. Provided integration points via OpenId Connect and LDAP.

Unemployment Insurance disputes Rewrite

Tracking UI claims and provide employers with guidance to dispute these claims.

Invoicing app Greenfield

SaaS to enable entrepreneurs to issue fiscalized receipts and basic tax related reports. Integration with Tax Authority.

Agriculture subsidies app Legacy

Added ability to login via smart cards. Tracking application statuses and satellite monitoring system.

Revenue and expense tracker Greenfield

App to track revenues and expenses for a non-profit.

Intranet portal Greenfield

App for the employees of a major insurance company.

Bike web shop Migration

An eCommerce app for bicycles, parts and tracking services orders.

Intranet portal Greenfield

App for the employees of a major telecom.

Restaurant chain opening process Brownfield

Workflow app for scheduling and tracking all activities needed to opening a new restaurant.

Hospital Information System Legacy

Upgraded existing web app with a local smart card login.

Print jobs tracker & scheduler MVP

B2B to allow clients to schedule print jobs and to provide print statuses. Print jobs were mostly for monthly bills and credit card reports.

Phone number manager Greenfield

Tracking of contractual obligations to telecom's and assignment to employees. A companion Windows Phone app was also deployed via Windows Store so employees had latest company contacts.

Printer supplies monitor & ordering Greenfield

Querying printers for toner status and automatically placing orders in Procurement Portal.

Procurement portal Greenfield

Allowed offices to order monthly supplies enabling procurement department to easily make bulk orders and track deliveries.

On boarding portal Greenfield

Streamlined on boarding of new hires by creating their accounts and assigning roles throughout various internal apps and services.

Computer deployment services Migration

Creating custom Windows images & deployment through Windows Deployment services and network booting. Images varied depending of workload needed.

Thanks for contacting me

Your message has been sent. I'll get back to you shortly. Thank you for your interest.

Get in touch with me

Where am I

Zagreb, Croatia is in Central European Time (CET) time zone.
I can schedule work hours to overlap with most other time zones when required.
If not already set, you can choose your time zone and compare the difference between our time zones.

Your time:

My time: