Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Teya Engineering - open source from the team building payments for local business

LinkedinWebsiteBlogCareers - we're hiring

We keep the money side of local business moving

Teya builds payments, business accounts, and funding for small businesses across Europe. A card machine on the counter of a bakery. Instant settlement for a barber shop on a Friday night. An account that handles the boring parts of the books so the owner can go home.

More than 75,000 businesses run on what we build. Real money, in real time, with no good day to be down. That sets the bar for the software behind it.

This is where we share the parts of that work we think are useful to everyone else.

How we build

We run a lot of services, and we would rather they were boring. The interesting part of a payments platform should be the payments, not the plumbing.

Technology stack: Java, Spring Boot, Kafka, Flink, PostgreSQL, Kubernetes

  • The JVM does the heavy lifting. Java and Kotlin on Spring Boot for most services, always on latest versions.
  • Events over calls. Kafka carries most of what moves between services, with schemas that are versioned and checked before anything ships.
  • Postgres until it hurts. Then we partition it. We are slow to add a new datastore and quick to lean on the one we know.
  • AWS and Kubernetes underneath. That is where our services run and where the platform team invests, so it is where new services should run too.
  • If we cannot see it, it is not done. Metrics, logs, and traces are part of the change, not a follow-up ticket.
  • Small pull requests, reviewed by humans. They are easier to reason about, and much easier to roll back at 2am.
  • There is a paved road, and we stay on it. We optimise for boring.
How we work

The technical choices above only hold up because of how the teams around them work. These are our engineering tenets.

  • 🚀 Extreme ownership

    • Own your system end to end, from design through production and beyond.
    • Improve what you built without being asked, and raise the bar as you go.
    • Fix problems at the root so the same mistake does not come back.
  • 💥 Measure yourself on impact, not effort

    • Understand why a thing is being built, not just how.
    • Part engineer, part product thinker, part project driver.
    • If describing, documenting, or tracking a change takes longer than making it, just make it.
  • 🔄 Respond to change over following a plan

    • New requirements and new information are welcome, not a setback.
    • Plan enough to move forward with confidence, and be ready to change direction when it makes sense.
  • ️🔨 Prefer simplicity over perfection

    • The simple thing that ships and can be changed later beats the perfect thing still being designed.
  • ✨ AI first

    • Reach for AI by default in how we work, and expect what that means to keep changing.
  • 🪞 Radical transparency and communication

    • Work in the open.
    • Backlogs, discussions, and retrospectives are there for anyone to read.
    • Share the wins and the failures, and make room for the people who share.
  • 🌱 Own your growth

    • Seek out knowledge, try new tools, make time to get better. Nobody will do it for you.
    • Be part of the engineering community here: share what you know, ask questions, stay curious about what others are doing.
  • 🎯 Prioritise with judgement

    • We care about quality and the long term, and we also need steady, imperfect progress.
    • Finding the line between one deep focus and a thousand spinning plates is the job.
  • 🎉 Have fun

    • We spend a large part of our lives doing this. It should be worth showing up for.

Come build with us. We are hiring engineers across Europe, in teams working on payments, banking, data, and the platform underneath all of it. See open roles.

Made by the engineers at Teya.

Popular repositories Loading

  1. copycat copycatPublic

    Go 31

  2. code-station code-stationPublic

    Swift 13 4

  3. lemonade-design-system lemonade-design-systemPublic

    Compose Multiplatform, Swift UI and Flutter implementation of Teya's Lemonade design system

    Kotlin 11 1

  4. roadmap-builder roadmap-builderPublic

    JavaScript 8

  5. fakerock fakerockPublic

    Go 7 1

  6. unified-epos-sdk unified-epos-sdkPublic

    ePOS sample apps that showcase using the new Teya

    Kotlin

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…