Aivars Kalvans, Developer in Jelgava, Latvia
Aivars is available for hire
Hire Aivars

Aivars Kalvans

Verified Expert  in Engineering

Fintech Developer

Location
Jelgava, Latvia
Toptal Member Since
October 8, 2021

Aivars is a fintech developer with 18+ years of experience designing and developing high-performance front-office and back-office payment card systems for card issuing, acquiring, and processing. He is an expert in mobile payments, including payment gateways, utility payments through ATMs, and POS terminals that he developed using Oracle Tuxedo and database, C++, Python, and Java. Aivars is eager to work on projects that demand the highest level of skill to create, scale, and run.

Portfolio

Tieto
C++, Oracle Database, Oracle Tuxedo, Python, Card Payments, Fintech...
Tieto
Oracle, Oracle Tuxedo, Oracle Database, Python, Buildbot, Reverse Engineering...
Tieto
Java, JMS, Oracle Database, SwiftMQ, Cryptography, C++, HSM, Kannel, SMPP...

Experience

Availability

Part-time

Preferred Environment

Linux, Vim Text Editor, IntelliJ IDEA, SQLAlchemy, Amazon Web Services (AWS), Amazon Simple Queue Service (SQS), Terraform, Website Data Scraping

The most amazing...

...thing I've done was write and publish a book about technology I have used for more than 18 years.

Work Experience

Software Architect | Lead Software Architect

2010 - 2020
Tieto
  • Designed and developed software from scratch for the card acquirer domain 3DS Server and the card issuer domain Access Control Server according to the 3-D Secure version 2.1.0. Completed all paperwork and 1,000+ test cases to get the EMVCo approval.
  • Developed a real-time accounting component and batch processing of payment cards handling several thousands of transactions per second.
  • Developed Tieto cloud-based payments based on host card emulation (HCE) and MasterCard cloud-based payment solution and got it approved by MasterCard.
  • Worked on Tieto Card Suite that enables banks, payment card processors, and retailers to offer a complete range of card services. It provides MasterCard, Visa, American Express, and Diners Club compliance and EMV chip card support.
  • Developed TCP/IP concentrators and adapters for Oracle Tuxedo to handle thousands of long-running ATM sessions and more than 20,000 requests per second from POS terminals.
  • Created a framework on top of Boost.Asio for developing SOAP and REST servers and clients.
  • Built several REST APIs for card acquiring and PSD2 directive using Go programming language.
  • Developed several SOAP APIs for card system integration using Go language. Implemented a custom library for parsing SOAP messages because the existing ones did not work with the provided WSDL.
Technologies: C++, Oracle Database, Oracle Tuxedo, Python, Card Payments, Fintech, Payment APIs, Payment Gateways, Mobile Banking, Architecture, TCP/IP, Boost.Asio, SOAP, REST, Non-blocking I/O, APIs, Microservices, Microservices Architecture, XML, XML-RPC, JSON, Grafana, Prometheus, Hibernate, Spring Data JPA, JPA, Go, PSD2, Web Services Description Language (WSDL), OpenAPI, Swagger, XSLT, Back-end, Back-end Architecture, PostgreSQL, Django, SQL, REST APIs, Back-end Development, Spring Boot, PCI DSS

Systems Analyst | Senior Systems Analyst

2006 - 2010
Tieto
  • Shortened greenfield installations from several days to a few hours, made upgrades safe and fast, and reduced downtime by designing and developing a package manager and database migration tool for a large and complex Oracle Tuxedo application.
  • Installed and configured Buildbot to automate nightly builds and on-commit builds of a large C++ codebase on different flavors of Unix (Linux, AIX, HP-UX, Solaris). Set up a second instance of Buildbot to automate builds of deliveries to customers.
  • Integrated Bankmaster, Tieto Card Suite, and Netbank, including Bankmaster ISAM file synchronization with Oracle database, online payment interface from Netbank to Bankmaster TPS, and transaction history data for card and account mini statements.
  • Designed and developed software for managing card lifecycle, which includes generating a card number, PIN, and other values, and producing input for embosser, renewal, and replacement.
  • Created and developed a real-time card authorization system with different scenarios depending on transaction type and environment.
Technologies: Oracle, Oracle Tuxedo, Oracle Database, Python, Buildbot, Reverse Engineering, PL/SQL, Oracle PL/SQL, C++, Java, Back-end Development, Spring Boot

Junior Developer | Developer

2002 - 2006
Tieto
  • Worked on Java version of mobile banking that provides information and payment services using plain SMS and an application running on the SIM card. The application was personalized remotely and communicated with encrypted SMS messages.
  • Designed and implemented the second version of mobile banking using C++ and Eracom hardware security modules.
  • Worked on a payment gateway with configurable scenarios, extension points, and integrations. Used for cash payments in ATMs, mobile payments, internet payments, P2P card payments, selling top-up codes in POS terminals, selling prepaid cards, etc.
  • Refactored a payment gateway to use fewer resources by asynchronous processing and to support more extension points. It is processing more than 25,000,000 payments per day in 2021.
Technologies: Java, JMS, Oracle Database, SwiftMQ, Cryptography, C++, HSM, Kannel, SMPP, TCP/IP, XML, SOAP, XML-RPC, ISO 8583, Oracle Tuxedo, XSLT, Python, Back-end Development, Spring Boot

Implementation Specialist

2001 - 2001
Baltic Transit Bank
  • Configured and administered Bankmaster and Branchpower systems on Solaris created data input screens.
  • Adjusted a general ledger setup to match updated requirements.
  • Developed extensions in C for the missing built-in functionality.
Technologies: C, Solaris, Back-end Development

Python 3 Bindings for Writing Oracle Tuxedo Clients and Servers

https://pypi.org/project/tuxedo/
I developed a Python library that allows the development of Oracle Tuxedo applications in pure Python without touching the C/COBOL API. This Python library considerably simplifies Tuxedo development, and I use it to teach Oracle Tuxedo to developers and administrators. This project is described in my book “Modernizing Oracle Tuxedo Applications with Python: A Practical Guide to Using Oracle Tuxedo in the 21st century,” published by Packt Publishing in 2021.

Fuxedo

https://github.com/fuxedo/fuxedo
Fuxedo is an open-source implementation of X/Open XATMI specification and some Oracle Tuxedo extensions of the API. The goal is to provide source code compatibility with core Tuxedo functionality, and, ideally, a recompilation will be sufficient to port software from Tuxedo to Fuxedo. Fuxedo also keeps Tuxedo's configuration file formats and conventions silently, ignoring the obscure parts.

Using Select2 System Call

https://github.com/aivarsk/misc/tree/master/select
I wrote an article "Using Select2" and supporting code to debunk an article about slow networking code. Here I demonstrated some lesser-known techniques from the Linux kernel and discussed several research papers I had learned about during my career. The article was published on the website Hacker News Discussion (http://aivarsk.com/2017/04/06/select/).

Prometheus Exporter of Oracle Tuxedo Metrics

https://github.com/aivarsk/prometheus-tuxedo-exporter
This application exports internal Oracle Tuxedo metrics to Prometheus for monitoring the state of the application. It can be run both as a part of the Oracle Tuxedo application or as a stand-alone program from the command line.

SOCKSv4 Proxy with Multiple IPs

https://github.com/aivarsk/multi-socks
Cloud providers have a feature to assign multiple IPs to a single server. That is a cheap and safe way to create proxies for your data scraping tasks to avoid IP bans. I couldn't find an easy way to set up a SOCKS proxy to use all IPs, so I made my own.

Scrapy Proxies

https://github.com/aivarsk/scrapy-proxies
A middleware for a popular Python scraping library (Scrapy) to process requests using a random proxy from the list to avoid IP bans and improve crawling speed. I've used it in several projects and made it public to demonstrate how it can be achieved.

FastAPI and Cooperative Multi-threading

https://aivarsk.com/2022/01/21/fastapi-concurrency/
An article about FastAPI and concurrency problems the cooperative multi-threading has with serializing large Pydantic models. I showed how to offload serialization to a thread pool while keeping the code clean and simple.
2006 - 2006

Course in Software Architecture, Design and Analysis, Documenting, Product Lines

Carnegie Mellon University - Pittsburgh, Pennsylvania, USA

2000 - 2003

Bachelor's Degree in Computer Science

Riga Technical University - Riga, Latvia

MARCH 2013 - PRESENT

University M101P: MongoDB for Developers (Version 3.2)

MongoDB University

Libraries/APIs

REST APIs, SQLAlchemy, Pydantic, JMS, OpenAPI

Tools

Oracle Tuxedo, Flyway, Celery, GNU Autoconf, Docker Compose, Vim Text Editor, IntelliJ IDEA, Grafana, PyPI, SwiftMQ, Buildbot, Amazon Simple Queue Service (SQS), Terraform

Languages

Python, C, C++, Java, SQL, XML, Go, C++11, C++14, Assembler, Web Services Description Language (WSDL), XSLT, Python 3

Frameworks

Django, Scrapy, Spring Boot, Hibernate, JPA, Swagger, Twisted, Select2

Paradigms

REST, Microservices, Microservices Architecture, Back-end Architecture

Platforms

Oracle Database, Linux, Oracle, Apache Kafka, Amazon Web Services (AWS), Docker, Solaris, Kubernetes

Storage

PostgreSQL, SQL Performance, Database Performance, JSON, Relational Databases, MySQL, Spring Data JPA, XML-RPC, PL/SQL, Oracle PL/SQL, MongoDB

Other

Technical Leadership, Finance APIs, Code Review, Web Scraping, Data Scraping, Back-end Development, Website Data Scraping, 3D Secure, ISO 8583, Card Payments, Boost.Asio, Kannel, HSM, PCI/PA-DSS, Python Performance, Performance Tuning, Secure Coding, APIs, FastAPI, PCI DSS, PyBind11, Linux IPC, Transactions, ISO 20022, NATS, Data Structures, Fintech, Payment APIs, Payment Gateways, Mobile Banking, Architecture, TCP/IP, SOAP, Non-blocking I/O, Low-level Programming, Prometheus, Cryptography, SMPP, Reverse Engineering, PSD2, Back-end, Networking, Software Architecture, Analysis, Software Design, Scraping

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