Data Engineering · Web App
Vekstlab — making the stock market less noisy
Visit Vekstlab"Vekst" is Norwegian for "growth" (yes, I'm learning Norwegian, and yes, I sneak it into everything). Vekstlab is a website that does one simple job: it looks at a huge pile of stocks and quietly hands you back the handful that are actually worth a second look.
Here's the problem it solves. There are thousands of companies you could invest in. Reading about all of them is impossible, and staring at a spreadsheet until your eyes water isn't much better. A stock screener is basically a very patient filter: you tell it what you care about — companies that are growing, that aren't drowning in debt, that don't cost a fortune — and it throws away everything that doesn't fit.
Under the hood, Vekstlab is really two projects wearing the same coat: a data engineering project and a web development project. Neither works without the other, so here's how they fit together.
The data engineering half — getting the numbers right
Before anyone can screen a single stock, the data has to exist and be trustworthy. That's a pipeline that runs quietly in the background, and it goes through a few steps:
- Collect. Reach out to financial data sources and pull in raw numbers for hundreds of companies — prices, earnings, revenue, debt, and so on.
- Clean. Real-world data is messy. Some numbers are missing, some are in different units, some are just plain wrong. This step fixes, fills, or throws them out so the rest of the app can trust what it's reading.
- Crunch. Raw numbers aren't that useful on their own, so the pipeline works out the ratios and growth figures that actually matter — is this company growing? is it overpriced? is it drowning in debt?
- Store. Everything lands in a database, tidy and ready, so the website can ask a question and get an answer instantly instead of recalculating the world every time.
- Refresh. Because markets move, the whole process runs on a schedule so the data stays reasonably fresh — delayed, not live. This isn't a trading terminal, and it says so right on the tin.
That's the data engineering part: less glamorous than it sounds, but it's the foundation everything else stands on. Garbage in, garbage out.
The web development half — making it usable
A great database nobody can touch is just an expensive spreadsheet. The web side turns all of that into something a human actually wants to open:
- Accounts & login. You can create an account or sign in with Google, so your setup stays yours.
- The screener itself. The heart of it — pick what you care about, and the app queries that database and hands back a clean, sorted short list in a blink.
- The interface. Buttons, tables, and pages that (hopefully) feel obvious, whether you're on a phone or a laptop.
- The server behind it. A Python web app that ties the front-end to the data, remembers who's logged in, and keeps every piece talking to the others.
I won't pretend I wrote every single line alone — I built it with a lot of help and an even larger amount of trial and error. But I understand every piece of it, which was the whole point. It started as "I wonder if I could," turned into something I genuinely use, and it's free forever — because the goal was to build the tool I wished existed, not to sell it.