Skip to content

Skill swap sessions that count as proof.

A skill swap is peer learning in a live video call: you teach what you know and learn what you don't. Book a 30- or 60-minute session with a matched partner; when you both join, it completes on its own and becomes evidence on your Skills Passport.

Live · 23:47

React · refactoring a custom hook

Learning from Maya R. · Thu 8 Oct, 18:00–19:00

src/hooks/useCart.ts You are sharing
12export function useCart() {
13 const [items, dispatch] = useReducer(cartReducer, []);
14 // derive, don't store
15 const total = useMemo(() =>
16 items.reduce((s, i) => s + i.price, 0),
17 [items]
18 );
19 return { items, total, dispatch };
20}
21
22function cartReducer(state: Item[], action: Action) {
23 switch (action.type) {
24 case "add":
25 return [...state, action.item];
26 case "remove":
27 return state.filter((i) => i.id !== action.id);
28 }
29}
14 passed· useCart.test.ts · 0.8s
Maya R.
You
84
React · SCI 84 · adds to practice when it completes
Learning

From request to record in four steps.

Every session follows the same path, so both of you know what happens to your time and your credits.

Matches · React
Top match

Maya R.

Berlin · UTC+2 · English, German

91%

fit

Teaches youReact · SCI 81
Learns from youPython

38

sessions

4.9

rating

0

no-shows

Mutual fit · you can swap
Skill fit
96
Teacher quality
92
Recent activity
88
Similar learners
81

Pick a matched partner

Choose a skill and review suggested partners. Each suggestion shows how well it fits and why it was made.

Request a session

React with Maya R.

Thu 15 Oct · shown in your time zone

30 min

200 LC

60 min

350 LC

17:0018:0019:3020:30
Thu 15 Oct, 18:00–19:00350 LC

Held now, charged when the session completes

Book a slot

Agree a 30- or 60-minute slot from their availability. Your credits are held when you book and charged only when the session completes.

React with Maya R.
Live · 23:47
useCart.ts Alex Chen sharing
13 const [items, dispatch] = useReducer(cartReducer, []);
14 // derive, don't store
15 const total = useMemo(() =>
16 items.reduce((s, i) => s + i.price, 0),
17 [items]
18 );
  • Alex Chen joined17:59
  • Maya R. joined18:02

Both joined within 15 min of 18:00, so the session completes on its own at 19:00.

Meet live

Join a video room with audio and screen sharing. Lemma records that each of you joined, and that is what completes the session.

Session complete
Both rated

React · Thu 8 Oct, 18:00 · 60 min

  • Alex Chen · Learner

    “Clear on why the total is derived.”

  • Maya R. · Teacher

    “Came prepared with a failing test.”

Your reflection · private

Next: move the total into a selector and add a test for “remove”.

Credits releasedAdded to both records

Rate and reflect

You rate each other and can add a short reflection. The teacher receives their credits and the session is added to both records.

Before, during and after.

A session is more than a call. It starts with a booked skill and a held payment, runs live, and ends with ratings and a reflection that stay attached to the skill it covered.

  • Each session is booked against one canonical skill, so the evidence lands in the right place
  • Live video with screen sharing, opened from the session page
  • Mutual ratings and an optional reflection once the session ends
React with Maya R.
Completed
  1. Requested: React · 60 min

    Mon 5 Oct, 10:12 · by you

  2. Confirmed by Maya R.

    Mon 5 Oct, 11:40 · Thu 8 Oct, 18:00

  3. 350 LC held

    Charged only when the session completes

    Held
30- or 60-minute sessions, booked in your timezone
Live video and screen sharing
Mutual ratings and reflections after completion

How session partners are matched.

Every suggestion weighs skill fit first, then schedule, shared language and reliability, and it learns from the sessions that worked for people like you. Each match shows its top reasons, and you always choose who to request.

Every suggestion explains itself.

A suggestion lists the reasons behind it: a mutual skill fit, your focus skill, a shared language, a compatible timezone or a reliable track record. Recent no-shows or late cancellations are flagged too.

You still choose. Suggestions rank partners for you; you decide who to request a session with.

How matching is weighed, in the methodology
Mutual match
Mutual fit

Carmen M.

Berlin · UTC+2

TeachesTypeScript · 78
LearnsGo

Oscar T.

London · UTC+1

TeachesGo · 74
LearnsTypeScript
Carmen teaches OscarTypeScript · 60 min
Oscar teaches CarmenGo · 60 min
Shared hours: 09:00–18:00 UTC, Mon–Fri
Availability
Berlin · UTC+2
WeeklyOne-off
12–16 Oct · 9 open
Mon 12
Tue 13
Wed 14
Thu 15
Fri 16
09:00
Open
Open
Open
12:00
Open
Open
15:00
Open
Open
18:00
Open
Booked
20:00
Open
No slot selected

Thu 15 Oct, 18:00 · React with Maya R.

60 min · reminder 5 min before

Google Calendar

Sessions added · synced 2 min ago

iCal feed

For Apple Calendar, Outlook and others

Availability that fits your week.

Set recurring weekly slots once and add one-off times when your week changes. Partners book only inside the hours you open.

  • Recurring weekly slots, plus one-off additions
  • Google Calendar sync and an iCal feed for any calendar app
  • A reminder about five minutes before each session starts

What a session adds to your record.

A completed session is written to the evidence log of the skill it covered. It feeds two of the five SCI components directly.

Practice
Each completed session adds to Practice, weighted by the rating it received. Sessions where you teach count one and a half times.
Reliability
Completed sessions build Reliability. No-shows and late cancellations in the last 30 days take points away.

SCI components for one skill

  • Practice20 / 25
  • Proof20 / 40
  • Reliability6 / 20
  • Freshness10 / 15
  • IntegrityDeductions only, up to −30
Sessions feed Practice and Reliability

When a session goes wrong.

Sessions complete on their own, so the rules for the edge cases matter.

No-shows and late cancellations

Join within 15 minutes of the start or it counts as a no-show. If your partner never arrives, your held credits come back in full. Cancelling under 24 hours before the start counts as late.

Disputes reviewed by a person

If a session was completed wrongly, report it. A support ticket opens and a person reviews the session history, then voids it, refunding credits and reversing progress, or upholds it.

Corrections, not erasures

Every correction is added as its own event before it applies. Nothing is deleted, so the record shows what changed and why.

Sessions for every skill type

Code review60 min

PR #214 · cart/useCart.ts

-const total = items.length && sum(items);
+const total = useMemo(() => sum(items),
+ [items]);

Zoe F.: memo this, it re-sums on every render.

Rated by both · 5.0

Code review

Review a real pull request with a peer, find the bug together and talk through the fix.

Language exchange30 min
Englishswap at 15:00Español

¿Qué tal tu semana?

Muy bien, ¡he trabajado mucho!

Corrected: “he trabajado”, not “he trabajé”

15 min Spanish, then 15 min English

Language exchange

Practise conversation with a speaker of the language you are learning, then swap and help them with yours.

Design critique60 min
Cart2 items$48Shipping$6Continue
PaymentVisa4242Total$54Continue
12

2 Price breakdown before the pay button.

3 comments · checkout flow v2

Design critique

Get structured feedback on a portfolio piece, a UI flow or a design system from someone who does the work.

Mock interview60 min
Question 3 of 504:12

Explain a closure and when it can leak memory.

A function that keeps its outer scope alive, like a listener that is never removed…

Feedback: 3 strengths, 2 gaps

Mock interview

Run a technical interview with a peer who has sat on the other side of the table, and get notes on what to fix.

Pair programming60 min
Diego S.Driving
Yara K.Navigating

def parse_row(line):

cols = line.split(",")

return Row(*cols)

Roles swap at 30:00 · 12:40 left

Pair programming

Build a feature together on one shared screen. One of you drives, the other navigates, then you swap.

Notebook walkthrough60 min

churn.ipynb · cell 14

Jun
Jul
Aug
Sep
Oct
Monthly churnAUC 0.81
Next: add a holdout set

Data science

Walk through a notebook, a dataset or a model with a peer whose strengths complement yours.

System design60 min
Client
API
Queue
Postgres

Peak load

4k req/s

Read replicas

2

Queue absorbs the traffic spikes

System design

Sketch an architecture on a shared screen and argue the trade-offs: scaling, consistency, failure modes.

Ear training30 min

ii – V – I – VI in C major

Dm7G7Cmaj7A7
4 of 5 progressions named

Music theory

Work on ear training, chord progressions or composition with another musician.

Frequently asked questions

What is a skill swap?

A skill swap is an exchange where two people teach each other what they know. On Lemma it runs as live 30- or 60-minute video sessions: you teach one skill, learn another, and pay with Lemma Credits that teaching earns. Matching ranks partners who can teach each other higher, and each completed session becomes evidence.

Is there a skill swap app that records what you learned?

That is what Lemma's sessions do. Every session is booked against one skill, completes when both people join, and is added to both Skills Passports with the rating your partner gave. Over time the sessions build a dated record of what you taught and learned.

Do I have to teach to join a skill swap?

No. You can book sessions as a learner and pay with Lemma Credits from your monthly plan allowance or a top-up. Teaching is optional, but it earns credits and counts one and a half times in the practice part of SCI.

How long is a skill swap session?

30 or 60 minutes, booked in your timezone from the hours your partner has opened. Join within 15 minutes of the start or it counts as a no-show. Cancelling less than 24 hours before the start counts as a late cancellation.

What happens if my skill swap partner does not show up?

If your partner never joins, your held credits come back in full and the no-show is recorded against them, which lowers the reliability part of their SCI. If a session was recorded wrongly, report it and a person reviews the session history.

How does Lemma choose who I swap skills with?

Suggestions weigh skill fit most, then schedule, shared language and reliability, and they learn from the sessions that worked for people like you. A mutual fit, where each of you can teach the other, ranks above a one-way fit. Each match shows its top reasons, and you always choose who to request.

Give your skills somewhere to live.

Bring your evidence together and start building a Skills Passport that can grow with you.

We use your email only to invite you to Lemma and send launch news. See our Privacy Policy.