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
Every agency has its own layout. You copy the same history into a new
Excel file again and again, fighting merged cells.Years of experience are hard to count honestly. If you worked on two
Java projects at the same time for6 months, that's6 monthsof Java,
not12. Many people just add up the periods.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.
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)
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))
Java 36
TypeScript 73
Python 55
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:
Skill sheet:
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:
I'd love to hear from anyone who has dealt with skill sheets, especially
what layouts your agencies use.




Top comments (0)