Skip to content
vp.Ven Petrov
WorkWritingAboutAt a glance
A bit about me

I’m Ven Petrov.

I’m a software engineer in Barcelona. My recent work focuses on AI applications and model APIs, building on years of web, mobile and business software and a degree in business and finance.

What I’m building and exploring now

I spend a lot of time working with LLMs and tools like Codex, Claude Code, OpenCode and Pi Agent. I build prototypes that connect models to data, tools and interfaces, then inspect what they receive and return. Now, I have AI write the code and review what it produces. I still decide what to build, check the changes and take responsibility for the result.

My interest goes back further than the current coding tools. By my recollection, I was experimenting with the OpenAI API and Playground roughly two years before ChatGPT arrived. The tools have changed quickly over the last couple of years, and my way of working has changed with them.

ctxforge grew from the context question. I wanted a model to use its engineering knowledge to ask the questions a senior engineer would ask before starting a project: what are we trying to achieve, what is missing and what should stay outside the scope?

In a React and Express prototype, I separated image analysis from product-copy writing so I could inspect each step. With voice agents, I worked on what an assistant should remember when a call passes to another person. The finance review demo starts with a smaller question: can every number in an explanation be traced back to a published statement?

Software that has to keep working

At Knowify, I worked on the frontend of construction software with Angular and TypeScript, and on browser tests with Playwright and GitHub Actions. Features had to fit existing workflows and continue working as the product changed.

At Gadgeon Europe, I worked on Ionic and Angular mobile applications and web dashboards for banking and construction customers. Those dashboards combined several APIs for energy monitoring and connected-device control, including lighting, access and sensor systems. My work also included maintenance and mobile store releases.

Earlier, at Transfutur, I built a transport and logistics ERP from zero as the only software specialist. I worked directly with the owner and office users, then stayed responsible for deployment, operation and support. The system handled roughly €5–6 million in annual invoicing across two offices. I ran and supported it for about a year while the company grew, before it moved to a larger vendor’s system. I am proud that I built something the business could rely on for that stage of its growth.

Business, finance and other interests

My degree is in business and finance. At university, I also volunteered to lead practical informatics classes for a couple of years. That mix still shapes my interests: understanding the work people do, explaining it clearly and finding useful questions to test with software.

I research time-series data and global news around crude oil, and experiment with creative tools. Between Us is a short dialogue-film workflow where voice delivery and camera framing mattered as much as generating the video.

I use AI throughout this work. I need to inspect the code, explain the decisions and check the output before relying on it. The articles include revisions, results and questions I have not answered yet.

A few stages of my work

Get in touch

If something here is close to a problem you are working on, I’d be happy to talk about it.

ven.k.petrov@gmail.com
LinkedIn ↗GitHub ↗Choose a project to read →
Ven PetrovSoftware engineer · Barcelona
GitHub ↗LinkedIn ↗Email ↗

Find a project or a note

17 results

Transfutur ERP · ExperienceERP for transport and logisticsAs the sole engineer, I built an ERP from zero for transport and logistics. It supported roughly €5–6 million in annual invoicing across two offices, and I kept it running for about a year.Financial review lab · Project storyExploring a financial report with Python and FastAPII started with one income change, then opened up the same 54-page report: products, regions, cash flow, core adjustments and a dataset whose figures lead back to the source.Crude-oil narrative tracker · Project storyCrude-oil research from global news and market dataI wanted help following global events that could matter for crude oil. The prototype combines news research with calculated market and position values, while keeping recent assessments separate from the longer numeric history.MNQ time-series research · ExperimentTime-series prediction experimentsAn exploration of high-resolution market data: choosing what to acquire, checking its limits, comparing time intervals and testing whether a prediction survived later data and the cost of acting on it.NQ/MNQ backtest engine · Technical noteA missing closing bar left the simulator’s short position openThe strategy reset for a new day while a shared counter still counted yesterday’s short. A small replay shows why closing the position has to happen before clearing its state.Small-cap edge research · Project storyTurning small-cap trading ideas into repeatable researchI asked Claude Code for a fresh research system that could test named price patterns, compare later periods and carry its methodology into new sessions. One candidate shows how features, entry timing and costs fit together.Gadgeon Europe applications · ExperienceConnected-device dashboards and mobile apps at Gadgeon EuropeI worked on Ionic and Angular applications that brought several APIs into dashboards for energy monitoring and connected-device control, with releases and maintenance across multiple client versions.ctxforge · Project storyctxforge: discovering what to build before codingA context discovery framework that asks an LLM to act like a senior engineering interviewer: understand the idea, uncover requirements and agree the scope before an agent starts building.Sociedades Inactivas enquiries · Technical noteSaving an enquiry before trying to send its emailOn the Sociedades Inactivas catalogue, a visitor can ask about a company or send a general enquiry. The form separates saving that request from delivering its notification, including when the visitor retries.Astro local-services website · Project storyA local-services site assembled from city, service and FAQ recordsThe Astro site describes flooring and other local services across different cities. Shared templates check availability, read the matching content and select one FAQ set for both visitors and structured data.3D Spaces website migration · Project storyMoving 3D Spaces to Next.js while its email stayed on the old serverI rebuilt the virtual-tour website with AI coding collaborators, preserving its content and URLs. The cutover also had to protect the mailbox, enquiry flow and existing analytics history.Capture CRM · Project storyConnecting classified listings to contacts in a small CRMA Chrome extension and Next.js dashboard bring classified listings, platform profiles and contact history together. Saving a listing again can add the person who was missing from an earlier import.Product-description comparison bench · ExperimentComparing one model call with separate vision and writing stepsA small product-description tool lets me inspect the visual analysis before the copy is written, change the model used for each step and compare request measurements.Between Us · Project storyBetween Us: why I kept the first take and widened the shotI compared dialogue takes, asked for wider shots and more physical acting, then changed the workflow when its studio limited the scenes I wanted to make.Restaurant-service voice agent · ExperimentDesigning a restaurant-service call around the real offerI worked through a Spanish outbound agent prompt, corrected a free visit to the actual paid service and compared how two drafts handled transfers and bookings.Vapi and Telnyx voice integration · Technical noteThe Vapi agent could speak, but it could not hear me clearlyMy Telnyx number connected to the assistant, but the caller audio was distorted. Three codec tests recovered the connection without fixing that original problem.Warloop: Echoes of Solmara · Project storyWarloop: turning generated character art into a playable prototypeGood-looking character images became tiny figures, a backwards walk and misplaced bosses in the game. I worked through the gap between generated art and playable behavior.
esc to close · Tab to move through results