Karlis
Purens
Software Developer Portfolio
GPT Helper
Automated AI Tool
Aug 2023 - Nov 2023
Creating automated GPT helper tool.
Tool is designed to significantly improve daily workflow.
Completes user goals by clarifying and splitting them into smaller tasks.
Main advantage is the ability to modify file system using function calls. Regular ChatGPT can not modify user file-system resulting in large overhead.
Can easily select desired context using web interface. Eliminates the need for copy-pasting code to/from ChatGPT.
Core functionality implemented using Java Spring + Gradle.
Front-end displays relevant information using NodeJS + React.
Using non-blocking reactive Spring WebClient to access GPT API.
Tool is not limited to single scope or programming language. This allows performing tasks in any coding language or framework.
CudaSecp
Cuda Application
Jul 2022 - Oct 2022
Cuda Secp256k1 Wallet / Account Recovery Tool.
Performs Secp256k1 Point Multiplication directly on GPU.
Can be used for efficient brain-wallet or mnemonic-phrase recovery.
Multi-threaded client-side written in C++.
Main thread manages client-server communication.
GPU thread executes several commands on each cuda core:
Clients can be quickly deployed as Docker images.
Java Spring server synchronizes multiple clients.
Multiple endpoints are exposed as REST services.
Authorization endpoint manages client credentials / tokens.
File endpoint allows downloading binary target hash files.
Sync endpoint synchronizes next and done words.
PostgreSQL database + Spring JPA manages data storage.
Housify
Search Engine
Jan 2021 – Dec 2021
Real-estate search engine: Housify.lv
Main goal of the system is to collect real-estate posters from multiple websites and display them in simple unified format.
System uses microservice architecture. Each microservice runs custom Java Spring service inside a Docker container and communicates with other containers / services.
Poster data is stored in PostgreSQL database and managed by the Poster service.
Poster images are handled by Image service, which can be directly accessed by client-side apps to reduce load on API-Gateway.
Web Crawler process periodically crawls all websites, uses JSoup to read / parse the HTML content, finds new housing posters and sends them to Poster service.
Advanced features include viewing poster historic versions,
loading nearby posters and calculating statistics for specific address.
PDF Gen
Java Spring Service
Oct 2020 – Dec 2020
Developing PDF Generator service.
Service designed to allow fast and reliable PDF generation.
Can be easily adapted for any type of PDF file:
(Contracts, Invoices, Receipts, Manifests, etc)
PDF request is sent by front-end and then validated.
Necessary information is fetched from the database.
HTML template is loaded and used to generate new PDF file.
Service uses Java Spring Boot as backend framework.
MongoDB is currently used as persistance layer.
Service includes caching to avoid generating identical PDFs.
If PDF file for specific request already exists then it is returned from cache.
Qred
Finance Project
March 2019 - May 2020
Working for the largest Nordic creditor: Qred
Qred gives out loans to small businesses, but instead of having complex fees and conditions the payback process is very simple - a fixed monthly payment similar to gym membership.
Worked as full-stack Java developer with wide variety of responsibilities.
Front-end form and interface improvements using GWT and XML config.
Back-end improvements with Java, Lombok, custom mapping framework.
Database management with PostgreSQL / Liquibase / Hibernate.
Build management with Gradle, Jenkins & Linux scripts.
Transitioning towards Microservice architecture with AWS + Docker
Multiple different REST / SOAP APIs to external systems.
Daily / Hourly processes with complex transaction logic.
Accounting changes and improvements,
Parsing payment information from bank CSV / Excel files.
Handling high-value assets for partners through FTP.
Handling contract changes / templates / reports.
Other
Java Enterprise
2014 - 2019
Previous employment in various tech companies in Latvia.
Participating in multiple Java Enterprise projects.
Most projects were large-scale monolythic web applications.
Gained valuable experience working with core Java technologies,
builds, versioning, deployments and server configuration.
Most projects also had complex database structure in either Oracle or Postgres, which allowed me to become familiar with DB optimization, indexing, data-types and procedures.
Each project had one or more REST services leading to good understanding of data-flow, TCP, APIs, JSONs, common issues and best practices.
Full details can be found in my CV.
Contact