Sergey called us last week. Thirty-five, six years as a labour-safety engineer. Started learning to code 18 months ago — Python via online courses, then Django on his own. Four pet-projects on GitHub, one with real users. Six months of CVs sent to job boards. Zero callbacks. He asked: what am I doing wrong, and can you help? This post is my long answer.

What people usually tell juniors — and why it doesn't work

"Build more pet-projects", "contribute to open source", "polish your GitHub", "do an internship". Good advice on paper, but at scale, it doesn't close the gap to a job. Here's why.

The Russian-speaking IT market in 2026 is structured tightly: junior roles are objectively scarce. After 2022, companies optimised their hiring funnels for middle and senior — that's where ROI is faster. Each junior posting in a major city gets 200-500 applications. Initial screening is automated: ATS filters on keywords, then HR spends 30 seconds per CV.

In this funnel you're not "the person who really wants to be a developer". You're a row in an export — getting 30 seconds of attention.

What companies actually look for in a junior

When a junior brief lands on our desk — and it does happen, especially with product startups and engineering teams of 50-150 — the client rarely says "just give us a junior". The brief looks more like:

  • "Someone for our stack (Django + PostgreSQL) who'll grow into middle within a year."
  • "Preferably with a prior technical background — engineering, physics, something with maths."
  • "Comfortable writing tests, reading someone else's code, not panicking from code review."
  • "A pet-project with real users would be a big plus."

This isn't a request for "junior" in the pure sense — it's for an adult who recently changed profession and has already built something with their hands. Two different profiles. If you're the second one — you have a chance for that shelf. If not, you'll compete with university graduates for the same narrow shelf.

What counts as a pet-project, and what doesn't

Courses (Yandex Practicum, Hexlet, Skillbox, GeekBrains, freeCodeCamp, Codecademy) are not a "tick on the CV" — they're a minimum admission ticket. They show the person can finish what they start. They don't hire anyone on their own.

Pet-projects work differently. Not all of them are equal:

  • Tutorial projects ("built a blog in Django from a tutorial") barely work — everyone has one.
  • "For myself" projects without users work weakly. Hard to tell from an AI-generated weekend.
  • Projects with real users work. Even 5-10 actual users turn "junior from courses" into "person who shipped and supports something".

If you have a pet-project — find someone to use it. Friends, colleagues, the neighbour's small business. A small Telegram bot for the local laundromat is more valuable than "another Twitter clone".

How we work with juniors

We maintain a structured junior candidate pool — not a "folder of resumes", but a filterable database by stack, prior experience, availability, salary expectations. When a junior brief lands, we filter by the needed stack — Python, JS, Go — and reach out to the matches.

To get into the pool, three things:

  • Sign a personal-data processing consent. We'll send the template in reply to your first email. Without it, we don't add anyone — it's legally required.
  • Send your CV to [email protected]. Email only. The site is hosted outside Russia and we don't store CVs on it.
  • Briefly introduce yourself in the email body. Stack, work format, salary expectation, remote vs. office, city.
This is not a placement guarantee. It's a place in the queue. When a relevant junior brief comes in, we write to those who match.

How long to wait

Honestly: unpredictable. Some months have zero junior briefs — you'll be in the pool waiting. Other months have two or three back-to-back — and matching profiles hear back almost immediately.

What accelerates:

  • A stack in current demand (Python backend, React frontend, Kotlin/Swift mobile).
  • Remote readiness — widens the geography of briefs.
  • A minimum pet-project with users.
  • Adequate salary expectations for a junior (relative to your region).

What slows things down:

  • "Open to anything" on the stack — the client doesn't know what you actually do.
  • One specific city only, no remote.
  • Salary expectations at middle level.

What to do while you wait

While you wait — don't just wait. Keep going in parallel:

  • Apply to job-board postings, tech Telegram channels, niche communities.
  • Attend free meetups and conferences — direct contact gets made there.
  • Grow the pet-project — add a feature or a user every month.
  • Learn a second language (programming) — sharply widens the role space.

An agency is an additional channel, not a replacement for the others.

Checklist before you email

Before writing to [email protected]:

  • CV in PDF, 1-2 pages.
  • Stack, work format, city, salary expectations explicit.
  • Current status: "not working", "in adjacent role", "in IT but not target role".
  • GitHub link and at least one pet-project.
  • In the email body: who you are, what you're looking for, what you can do.

What not to include: photo, ID details, marital status. We don't need those.

What we told Sergey

Sergey sent his CV. His profile — adult, six years engineering background, systematic approach, real pet-project (a Telegram bot for production-safety risk calculations, used by a few colleagues from his prior role). The second profile — the one our clients actually ask for. He signed the consent, we added him to the pool.

A matching brief will land at some point. Could be two weeks, could be two months. That's the honest range.

If you're a "Sergey" in the broad sense — adult, career-changed, with a real project — write to us. We'll see whether your profile fits current briefs and discuss what to improve in your CV before adding you to the pool.

Get in touch
Want to discuss your specific situation?

Email [email protected] with a few lines about your context — we'll respond with a candid view, whether we can help or not.

Email Anastasia →