Software company · Lappeenranta, Finland

Python backends, data pipelines and ML that hold up in production.

TechPillars builds and runs the parts of a product that users never see but always depend on: APIs, scheduled data jobs, machine learning models and the cloud they run on. Clients include solar energy companies in Switzerland and a language testing provider in the US.

Worked with
  • Solar Manager AGCH
  • 3S Swiss Solar SolutionsCH
  • Cloudacioed-tech
  • Winthrop IntelligenceUS
  • FinrooUS

Selected work

Systems that run every day for real customers

A few longer projects, with what was built and what it changed. Some client work is under NDA, so those parts are described in general terms.

3S Swiss Solar Solutions AG

Sector
Solar energy, Switzerland
Period
2022 – 2026
Role
Lead backend and data engineer

Finding faults in residential solar systems without a site visit

3S wanted to know when a customer's PV system produces less than it should, and why, using only the power data the system already sends. We built the analytics platform that does this every night.

  • Fault detection and diagnosis engine. Physical PV modelling with pvlib and horizon profiles, a clear-sky day classifier, trend analysis and stuck-value checks. Each loss is checked against weather, snow and hail data before it is reported.
  • Performance Loss Rate (PLR). Multi-year, year-on-year degradation analysis, recalculated every month.
  • Public REST API. Endpoints for performance, trends, outliers, hail history and daily hail risk, with scoped API keys and per-scope rate limits.
  • Data pipelines. PV data arrives through AWS SQS every 30 minutes. Weather, irradiance, snow and precipitation come from several providers. Celery runs the nightly jobs.
  • Regression baselines. Reference systems with pinned results, so a library upgrade or algorithm change never moves the numbers by accident.
18public API endpoints
30 mindata refresh from the field
~10scheduled jobs every night
  • Python
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Celery
  • Redis
  • pvlib
  • pandas
  • scikit-learn
  • AWS SQS · RDS · ECS
  • Docker

Solar Manager AG

Sector
Energy management, Switzerland
Period
2026 – now
Role
Backend and platform engineer

Running PV analytics as a scalable service on Kubernetes

Backend and data engineering for Solar Manager's energy management platform, which connects home solar, batteries, heat pumps and EV chargers.

  • Re-architecture. Moved the analytics service from one container running six processes to separate Kubernetes workloads: API, batch workers, data ingest, scheduler and a migration job that runs before each deploy.
  • Data continuity. A site keeps its full history when its hardware is replaced or the system moves, and earlier fault data is merged in.
  • Safe changes. A local sandbox with fake upstream APIs for scenario tests, versioned releases and metrics in Prometheus.

This work is under NDA. Happy to talk about the approach in a call.

  • Python
  • FastAPI
  • Celery
  • Valkey
  • PostgreSQL
  • AWS EKS
  • Kubernetes
  • Terraform
  • Prometheus
  • GitLab CI

Cloudacio

Sector
Ed-tech, language testing
Period
2026 – now
Role
Senior AI / ML engineer

Scoring spoken English tests with machine learning

For a large language testing provider, human raters score recorded speaking tests. The goal was automated scores that agree with raters at least as well as raters agree with each other, plus useful written feedback for every learner.

  • Proficiency scoring model. DeBERTa embeddings for each answer plus 24 prosody features from the audio, combined with attention pooling across the 8 to 14 answers in a test.
  • Rehearsed answer detection. A classifier trained on about 80,000 responses that flags memorised answers, using text together with 36 audio features.
  • Diagnostic reports with an LLM. An event-driven pipeline on AWS that writes a feedback report after each test session. Duplicate triggers are safe, failed runs are tracked and retried.
  • Prompt control. Prompts are versioned by hash and a CI check blocks a merge if a prompt changes without review.
S3 + SQS→Load→Grammar check→Generate→Validate→Save
0.833QWK with human scores, up from 0.687 (human to human: 0.621)
0.81accuracy of the rehearsed answer detector, vs 0.78 text only
~30 sto produce a full diagnostic report
  • PyTorch
  • Hugging Face
  • DeBERTa
  • XGBoost
  • FastAPI
  • AWS Lambda
  • Step Functions
  • SQS
  • Amazon Bedrock (Claude)
  • Terraform

Winthrop Intelligence

Sector
Document intelligence, US
Period
2025
Role
Senior backend engineer

Reading contracts at scale with OCR and LLMs

Large volumes of contracts and public records had to be collected, read and classified without manual work.

  • PDF ingestion pipeline. OCR, page splitting, validation and structured extraction.
  • LLM classifiers. Contract type detection, validation and addendum detection with GPT and Claude.
  • Async scrapers. Playwright jobs with strict validation and error handling.
  • Reliability. Sentry alert rules, error categories, dashboards and trace IDs across services.
  • Python
  • FastAPI
  • Celery
  • Playwright
  • OCR
  • OpenAI
  • Anthropic
  • Google Drive / Sheets API
  • Sentry

Our own product

KotiQ: a free report on any home in Finland

Type an address and KotiQ gives you a price estimate, noise and flood risk, nearby services and area statistics. An AI assistant answers questions about the report. TechPillars built and runs the whole product.

  • Open data from Statistics Finland, SYKE flood zones, HSY noise maps, LIPAS, OpenStreetMap, Digitransit and the PRH registry, stored in PostGIS.
  • About 82,000 housing companies (asunto-osakeyhtiöt) indexed.
  • A transparent price model built on official transaction data and published Finnish housing research.
  • Report chat and multi-home comparison with Claude, grounded in the report data.
  • Finnish and English, Google sign-in, Stripe subscriptions, GDPR handling. One codebase, built to run in several countries.
  • Django
  • PostgreSQL + PostGIS
  • Redis
  • Tailwind
  • Claude API
  • Stripe
  • Docker
KotiQ price estimate card showing an estimated sale price, price per square metre and an 80% range
Price estimate with an 80% range
KotiQ map view with noise zones from city streets, roads, railways and air traffic
Noise map, flood risk and nearby services

SolarPaybackCheck

A solar payback calculator for US homeowners, using state electricity rates. Runs on Cloudflare Workers and D1. solarpaybackcheck.com

Vierellä

A Finnish service in development that helps adult children support ageing parents from a distance. vierella.fi

Services

Four things we do well

Most projects need more than one of these. You get one engineer who can carry a feature from the database to production monitoring.

Backends and APIs

New services, or taking over an existing codebase and making it faster, tested and easier to change.

  • FastAPI
  • Django
  • PostgreSQL
  • Redis

Data pipelines

Scheduled jobs, queues, scraping and ETL that run every night without someone watching them.

  • Celery
  • SQS
  • Playwright
  • pandas

Applied ML and LLMs

Models trained and evaluated against real metrics, and LLM features with validation, evals and cost control.

  • PyTorch
  • XGBoost
  • Claude
  • OpenAI

Cloud and DevOps

Infrastructure as code, CI/CD, containers and the alerts that tell you something broke before customers do.

  • AWS
  • Kubernetes
  • Terraform
  • Sentry

Ongoing

An engineer in your team

Part-time or full-time on your product, in your tools and stand-ups, with a monthly invoice.

Project

A fixed piece of work

A clear scope, agreed deliverables and a handover your team can run with.

Review

A second look at your system

An audit of an existing backend or pipeline, with a ranked list of problems and how to fix them.

About

You work directly with the engineer

TechPillars Oy is run by me, Soheil (Sam) Dolatabadi. I have built backend and machine learning systems since 2018, for companies in Switzerland, the US, Turkey and Finland. There are no account managers in between: the person you talk to is the person who writes the code.

I have an M.Sc. in Electrical Engineering with a focus on optimisation, more than ten published papers, and contributions to open source projects such as PyTorch, Zulip and BeeWare. I live in Lappeenranta, and my working hours overlap with both Europe and the US East Coast.

  1. Founder, TechPillars Oy · Finland
  2. Senior AI / ML engineer, Cloudacio · ed-tech
  3. Backend and platform engineer, Solar Manager · Switzerland
  4. Senior Python engineer, 3S Swiss Solar Solutions · Switzerland
  5. Senior backend engineer, Winthrop Intelligence · US
  6. Data and ML engineer, Finroo · US fintech
  7. Python developer, Data Co Lab · Turkey

Contact

Tell me what you are building.

Send a few lines about the project and your timeline. I usually reply within one working day.