A Backend Roadmap Read From Job Postings
Count twelve postings and set the order
Goal
Looking at one posting, everything seems to be missing. If you skim that list from the top, you cannot decide what to do first, and you usually end up reaching for whatever stands out (whatever is trending these days).
Counting twelve changes that. You can see in numbers what appears almost everywhere and what appears in only one or two, and the order follows from that.
Materials
/opt/lab/hiring/postings.jsonl 백엔드 공고 12건 (required / preferred 로 나뉘어 있음)
mkdir -p /root/hiring && cp /opt/lab/hiring/* /root/hiring/ && cd /root/hiring
head -1 postings.jsonl | python3 -m json.tool
What to leave behind
01-count.txt 기술별 건수
02-tiers.txt 필수와 우대를 갈라 센 것
03-gap.md 내가 가진 것과의 차이
04-plan.md 12주 계획
05-evidence.md 무엇으로 증명할 것인가
06-fit.md 어디에 지원할 것인가
07-notes.md 왜 그런지
Count first
Count how many times each technology appears across the 12 postings (required and preferred combined), and write the top eight to 01-count.txt.
python3 - <<'PY'
import json
from collections import Counter
c = Counter()
for line in open('postings.jsonl'):
d = json.loads(line)
c.update(d['required'] + d['preferred'])
for t, n in c.most_common(8):
print(t, n)
PY
You may be surprised by what comes first. Some technologies are listed as required in few postings but listed as preferred in almost all of them.
Separate required from preferred
This time, split required from preferred and write the top of each to 02-tiers.txt. Separate the two sections with lines that start with 필수 and 우대. Also write one line on what that difference means for the order.
Something that ranked first in the combined count can drop sharply in the required ranking.
Required means you are rejected at the résumé stage without it, and preferred means it is nice to have. If you study the preferred items first, you spend your time while the required items stay empty.
Write the gap, not the list
Sort the top technologies into three columns — already do · know a little · don't know yet — and write them to 03-gap.md. For each item under "already do," also write what you can use to prove it.
The point is to split it into three columns. Lined up in one row, everything looks like "to do" and you cannot decide the order.
If you put something under "already do" but have nothing to prove it, it belongs under "know a little." That is exactly where interviews separate candidates.
A plan with durations and deliverables
Build a 12-week plan in 04-plan.md. For every item, write the duration and what remains when it is done. Start with the required items.
"Study Kubernetes" is not a plan. No one can tell whether it is finished.
Write down what remains — one repository, one deployed URL, one article. That becomes the material for the next step and for the interview.
Do not put the preferred items first. They stand out, but that is not an order.
What will you prove it with
In 05-evidence.md, write how you will prove each item in the plan in a form others can open and inspect. Include at least one number.
Certificates and "I studied it" are weak evidence, because anyone can say the same thing.
With something others can open (a repository, a deployed URL, an article) and a number (from how many seconds to how many, how many times faster), the conversation starts on the spot.
Where to apply
From the 12 postings, pick the ones to apply to now and the ones to look at after you finish the plan, write them by number in 06-fit.md, and give the reason for each. Factor in the required experience as well.
If the required experience is 5 years and you have 2, that posting is for later, not now. Conversely, if the required stack overlaps with what you already do, you still have something to talk about even if you are a little short on experience.
Applying to all of them is not a strategy. You counted to set the order of your preparation, so use the result for your applications too.
For the next person who reads this
Pick three or more of the things you saw here and summarize them in 07-notes.md. Write not what you did but why it is so.
Imagine it is read by you half a year from now, thinking about changing jobs again. "I counted the postings" does not help. "One posting makes everything look like a gap, but when you count twelve, only five or six are required" does.