DEV Community

sudo-dev
sudo-dev

Posted on

Working in Japan? Here's the "skill sheet" nobody explains to you

If you take contract or SES (System Engineering Service) work in Japan, sooner or later an agent will ask for your skill sheet (スキルシート).

What it is

A skill sheet is an Excel form, not a résumé. A typical one has:

  • A header: name (often initials only), age, nearest station, certifications
  • One block per project: period, a short description, your role, team size
  • Columns for languages, databases, OS and tools used in that project
  • A row of marks (●) for the phases you handled: requirements, basic design, detail design, coding, integration test, system test, maintenance

Clients compare candidates by these sheets, so two numbers matter a lot:
years in IT and years per language.

The annoying parts

  1. Every agency has its own layout. You copy the same history into a new
    Excel file again and again, fighting merged cells.

  2. Years of experience are hard to count honestly. If you worked on two
    Java projects at the same time for 6 months, that's 6 months of Java,
    not 12. Many people just add up the periods.

  3. Japanese and English versions drift apart. You fix one and forget the other.

Counting experience without double-counting

Example

Project Period Months Languages
A 2019-04 to 2021-03 24 Java
B 2020-10 to 2022-03 18 Java, TypeScript
C 2022-04 to present 55 (to 2026-10) Python, TypeScript

Adding up the Java periods gives 24 + 18 = 42 months.
But A and B overlap by 6 months, so the real Java experience is
2019-04 to 2022-03: 36 months.

Timeline: Project A (24 months) and Project B (18 months) overlap by 6 months; merged, Java experience is 36 months

How to count

Merge the overlapping periods first, then count. If you turn each year-month into
the integer year * 12 + month - 1, a subtraction gives you the number of months.

def ym(s):
    y, m = map(int, s.split("-"))
    return y * 12 + m - 1

def count_months(intervals):
    merged = []
    for start, end in sorted(intervals):
        if merged and start <= merged[-1][1] + 1:
            merged[-1][1] = max(merged[-1][1], end)
        else:
            merged.append([start, end])
    return sum(end - start + 1 for start, end in merged)
Enter fullscreen mode Exit fullscreen mode

Don't forget the + 1. A skill sheet period includes its end month,
so 2025-01 to 2025-03 is 3 months.

Collect the periods per language and pass them in. Projects that are still
running are cut off at the month you update the skill sheet, and projects
that start after that month are not counted.

projects = [
    ("2019-04", "2021-03", ["Java"]),
    ("2020-10", "2022-03", ["Java", "TypeScript"]),
    ("2022-04", None, ["Python", "TypeScript"]),
]
base = ym("2026-10")  # the month you update the skill sheet

by_lang = {}
for start, end, langs in projects:
    interval = (ym(start), min(ym(end) if end else base, base))
    if interval[0] > interval[1]:
        continue  # starts after the update month
    for lang in langs:
        by_lang.setdefault(lang, []).append(interval)

for lang, intervals in by_lang.items():
    print(lang, count_months(intervals))
Enter fullscreen mode Exit fullscreen mode
Java 36
TypeScript 73
Python 55
Enter fullscreen mode Exit fullscreen mode

For TypeScript, B and C are back to back without overlapping,
so the total is the same as adding them: 18 + 55 = 73 months.

Roles too

The same goes for roles. If you were a PL on one project while also doing PMO
work on another, adding up the months per role makes you look more experienced
than you are.

With the sample career in the app, I got PL 55 months, PM 36 months and PMO 21 months,
112 months in total. Counting the PM, PL and PMO periods together after merging
gives 103 months. Merge first, then count.

What I built

I've been building software in Japan and overseas for over 25 years, and I got
tired of maintaining my own skill sheet. So I turned my scripts into a small web app,
SheetCarry:

  • Enter your career once in a structured editor (Japanese and English side by side)
  • Years per language, framework, DB, role and phase, calculated as above
  • A dashboard with your career timeline and charts
  • Export to an Excel skill sheet that keeps the template's borders and formatting
  • Company names can be masked ("Company A") for proposals
  • Your career is stored only in your browser. It is sent to the server only to analyze or export, and is never stored.

Dashboard:

The SheetCarry dashboard with a career timeline and experience charts (sample data)


Skill sheet:

An English skill sheet with a header and one block per project (sample data)


Analysis and export are free to start with a Google account (10 analyses a month,
3 exports); unlimited use is a small monthly fee.

You can look at a sample without signing up:

Open the SheetCarry sample

👉 app.sheetcarry.com

I'd love to hear from anyone who has dealt with skill sheets, especially
what layouts your agencies use.

Top comments (0)