Skip to content

Commit 7057ae2

Browse files
committed
refactor: support multiple links per project card
1 parent 56bbe51 commit 7057ae2

7 files changed

Lines changed: 79 additions & 45 deletions

File tree

public/Alexey-Popov-Resume.pdf

-7.07 KB
Binary file not shown.

src/app/core/services/seo.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ export class SeoService {
2121
readonly #copy: Record<LocaleCode, SeoCopy> = {
2222
en: {
2323
title: $localize`:@@seo.title:Alexey Popov — Tech Lead / Senior Angular Developer`,
24-
description: $localize`:@@seo.desc:Tech Lead / Senior Angular Developer (NgRx). 14+ years of Angular across every platform — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ test coverage, AI code-review. Leading 9+ devs.`,
24+
description: $localize`:@@seo.desc:Tech Lead / Senior Angular Developer (NgRx). 14+ years of Angular across every platform — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ test coverage, AI code-review. Leading frontend teams.`,
2525
},
2626
ru: {
2727
title: $localize`:@@seo.title:Alexey Popov — Tech Lead / Senior Angular Developer`,
28-
description: $localize`:@@seo.desc:Tech Lead / Senior Angular Developer (NgRx). 14+ years of Angular across every platform — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ test coverage, AI code-review. Leading 9+ devs.`,
28+
description: $localize`:@@seo.desc:Tech Lead / Senior Angular Developer (NgRx). 14+ years of Angular across every platform — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ test coverage, AI code-review. Leading frontend teams.`,
2929
},
3030
};
3131

src/app/features/portfolio/sections/about/about.component.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ <h2 class="section__title" i18n="@@about.title">Angular specialist who closes ev
1515
templates, nx&nbsp;affected, parallel test sharding, automated semantic versioning, Docker multi-stage builds and Nginx.
1616
</p>
1717
<p i18n="@@about.p3">
18-
I <strong>lead people</strong>: I built and lead a team of 9 frontend engineers (hired the entire team myself) plus ~6
19-
subcontractors, ran <strong>70+ technical interviews</strong>, and own the code-review process. I
18+
I <strong>lead people</strong> — I've built and led frontend teams, run technical interviews, and own the code-review process. I
2019
<strong>test relentlessly</strong> — I raised a project to <strong>90%+ unit-test coverage</strong> and hold my own code to the same
2120
bar. And I drive <strong>AI-assisted development</strong> — custom Claude Code skills, agents and hooks, including an AI code-review
2221
skill that handles huge MRs.

src/app/features/portfolio/sections/hero/hero.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h1 class="hero__title">{{ profile.name }}</h1>
1010

1111
<p class="hero__subtitle" i18n="@@hero.subtitle">
1212
14+ years building <strong>Angular across every platform</strong> — web (SSR), Smart&nbsp;TV, mobile&nbsp;(Ionic) and
13-
desktop&nbsp;(Tauri/Rust). Nx · NgRx · GitLab CI/CD · 90%+ test coverage · AI code-review · leading a team of&nbsp;9.
13+
desktop&nbsp;(Tauri/Rust). Nx · NgRx · GitLab CI/CD · 90%+ test coverage · AI code-review · leading frontend teams.
1414
</p>
1515

1616
<ul aria-label="Platforms" class="platforms" i18n-aria-label="@@hero.platforms">

src/app/shared/data/portfolio.data.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const PLATFORMS: readonly string[] = ['Web · SSR', 'Smart TV', 'Mobile
1616

1717
export const STATS: readonly Stat[] = [
1818
{ value: '14', suffix: '+', caption: $localize`:@@stat.years:years shipping` },
19-
{ value: '9', suffix: '', caption: $localize`:@@stat.team:engineers led` },
19+
{ value: '4', suffix: '', caption: $localize`:@@stat.platforms:platforms shipped` },
2020
{ value: '90', suffix: '%+', caption: $localize`:@@stat.coverage:test coverage` },
2121
{ value: '70', suffix: '+', caption: $localize`:@@stat.interviews:interviews run` },
2222
];
@@ -29,12 +29,12 @@ export const SOCIALS: readonly SocialLink[] = [
2929

3030
export const EXPERIENCES: readonly Experience[] = [
3131
{
32-
role: $localize`:@@exp.current.role:Senior Frontend Engineer`,
32+
role: $localize`:@@exp.current.role:Senior Angular Developer`,
3333
company: null,
3434
location: $localize`:@@exp.current.loc:Remote`,
3535
period: $localize`:@@exp.current.period:2023 — Present`,
36-
description: $localize`:@@exp.current.desc:Architecting a large Angular productNx monorepo, micro-frontends (single-spa), NgRx + Signals, zoneless, OnPush. Shipping features across web (SSR), Smart TV, mobile (Ionic) and desktop. Built GitLab CI/CD from scratch with 90% coverage gates. Introduced AI-assisted development with custom Claude Code skills, including AI code-review for huge MRs.`,
37-
tags: ['Angular', 'single-spa', 'NgRx', 'Signals', 'RxJS', 'Nx', 'GitLab CI/CD', 'Docker', 'Nginx'],
36+
description: $localize`:@@exp.current.desc:Building and architecting large-scale Angular applicationsmodern reactive architecture (NgRx, Signals, zoneless, OnPush), a strong testing culture and CI/CD. Focused on performance, code quality and developer experience.`,
37+
tags: ['Angular', 'NgRx', 'Signals', 'RxJS', 'TypeScript', 'CI/CD'],
3838
},
3939
{
4040
role: $localize`:@@exp.fifthkind.role:Tech Lead / Senior Frontend`,

src/locale/messages.ru.xlf

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<target>Алексей Попов — Tech Lead / Senior Angular-разработчик</target>
1212
</trans-unit>
1313
<trans-unit id="seo.desc" datatype="html">
14-
<source>Tech Lead / Senior Angular Developer (NgRx). 14+ years of Angular across every platform — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ test coverage, AI code-review. Leading 9+ devs.</source>
15-
<target>Tech Lead / Senior Angular-разработчик (NgRx). 14+ лет Angular на всех платформах — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ покрытие тестами, AI code-review. Веду команду из 9+ разработчиков.</target>
14+
<source>Tech Lead / Senior Angular Developer (NgRx). 14+ years of Angular across every platform — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ test coverage, AI code-review. Leading frontend teams.</source>
15+
<target>Tech Lead / Senior Angular-разработчик (NgRx). 14+ лет Angular на всех платформах — Web (SSR), Smart TV, Mobile (Ionic), Desktop (Tauri/Rust). Nx, GitLab CI/CD, 90%+ покрытие тестами, AI code-review. Веду фронтенд-команды.</target>
1616
</trans-unit>
1717
<trans-unit id="ld.jobTitle" datatype="html">
1818
<source>Tech Lead / Senior Angular Developer</source>
@@ -35,8 +35,8 @@
3535
<target> Я <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>проектирую крупные Angular-приложения целиком<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — Nx-монорепо, micro-frontends, мульти-тенант, zoneless, signals, NgRx, дизайн-системы и общие библиотеки. Строю <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>GitLab CI/CD с нуля<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — переиспользуемые шаблоны, nx affected, параллельный шардинг тестов, авто-семвер, многостадийные Docker-сборки и Nginx. </target>
3636
</trans-unit>
3737
<trans-unit id="about.p3" datatype="html">
38-
<source> I <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>lead people<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>: I built and lead a team of 9 frontend engineers (hired the entire team myself) plus ~6 subcontractors, ran <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>70+ technical interviews<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>, and own the code-review process. I <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>test relentlessly<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — I raised a project to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>90%+ unit-test coverage<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> and hold my own code to the same bar. And I drive <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>AI-assisted development<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — custom Claude Code skills, agents and hooks, including an AI code-review skill that handles huge MRs. </source>
39-
<target> Я <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>руковожу людьми<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>: собрал и веду команду из 9 фронтендеров (нанял всю команду сам) плюс ~6 на субподряде, провёл <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>70+ технических собеседований<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> и отвечаю за процесс code-review. Я <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>дотошно тестирую<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — поднял проект до <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>90%+ покрытия unit-тестами<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> и держу свой код на той же планке. И внедряю <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>AI-assisted разработку<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — кастомные скиллы, агенты и хуки для Claude Code, включая скилл авто-код-ревью для огромных MR. </target>
38+
<source> I <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>lead people<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — I've built and led frontend teams, run technical interviews, and own the code-review process. I <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>test relentlessly<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — I raised a project to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>90%+ unit-test coverage<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> and hold my own code to the same bar. And I drive <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>AI-assisted development<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — custom Claude Code skills, agents and hooks, including an AI code-review skill that handles huge MRs. </source>
39+
<target> Я <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>руковожу людьми<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — собирал и вёл фронтенд-команды, провожу технические собеседования и отвечаю за процесс code-review. Я <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>дотошно тестирую<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — поднял проект до <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>90%+ покрытия unit-тестами<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> и держу свой код на той же планке. И внедряю <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>AI-assisted разработку<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — кастомные скиллы, агенты и хуки для Claude Code, включая скилл авто-код-ревью для огромных MR. </target>
4040
</trans-unit>
4141
<trans-unit id="nav.experience" datatype="html">
4242
<source>Experience</source>
@@ -47,8 +47,8 @@
4747
<target>Где я работал</target>
4848
</trans-unit>
4949
<trans-unit id="hero.subtitle" datatype="html">
50-
<source> 14+ years building <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>Angular across every platform<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — web (SSR), Smart TV, mobile (Ionic) and desktop (Tauri/Rust). Nx · NgRx · GitLab CI/CD · 90%+ test coverage · AI code-review · leading a team of 9. </source>
51-
<target> 14+ лет создаю <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>Angular на всех платформах<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — web (SSR), Smart TV, mobile (Ionic) и desktop (Tauri/Rust). Nx · NgRx · GitLab CI/CD · 90%+ покрытие тестами · AI code-review · веду команду из 9. </target>
50+
<source> 14+ years building <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>Angular across every platform<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — web (SSR), Smart TV, mobile (Ionic) and desktop (Tauri/Rust). Nx · NgRx · GitLab CI/CD · 90%+ test coverage · AI code-review · leading frontend teams. </source>
51+
<target> 14+ лет создаю <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>Angular на всех платформах<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> — web (SSR), Smart TV, mobile (Ionic) и desktop (Tauri/Rust). Nx · NgRx · GitLab CI/CD · 90%+ покрытие тестами · AI code-review · веду фронтенд-команды. </target>
5252
</trans-unit>
5353
<trans-unit id="hero.platforms" datatype="html">
5454
<source>Platforms</source>
@@ -86,9 +86,9 @@
8686
<source>years shipping</source>
8787
<target>лет в разработке</target>
8888
</trans-unit>
89-
<trans-unit id="stat.team" datatype="html">
90-
<source>engineers led</source>
91-
<target>инженеров в команде</target>
89+
<trans-unit id="stat.platforms" datatype="html">
90+
<source>platforms shipped</source>
91+
<target>платформ освоено</target>
9292
</trans-unit>
9393
<trans-unit id="stat.coverage" datatype="html">
9494
<source>test coverage</source>
@@ -99,8 +99,8 @@
9999
<target>собеседований</target>
100100
</trans-unit>
101101
<trans-unit id="exp.current.role" datatype="html">
102-
<source>Senior Frontend Engineer</source>
103-
<target>Senior Frontend-инженер</target>
102+
<source>Senior Angular Developer</source>
103+
<target>Senior Angular-разработчик</target>
104104
</trans-unit>
105105
<trans-unit id="exp.current.loc" datatype="html">
106106
<source>Remote</source>
@@ -111,8 +111,8 @@
111111
<target>2023 — наст. время</target>
112112
</trans-unit>
113113
<trans-unit id="exp.current.desc" datatype="html">
114-
<source>Architecting a large Angular productNx monorepo, micro-frontends (single-spa), NgRx + Signals, zoneless, OnPush. Shipping features across web (SSR), Smart TV, mobile (Ionic) and desktop. Built GitLab CI/CD from scratch with 90% coverage gates. Introduced AI-assisted development with custom Claude Code skills, including AI code-review for huge MRs.</source>
115-
<target>Проектирую крупное Angular-приложениеNx-монорепо, micro-frontends (single-spa), NgRx + Signals, zoneless, OnPush. Реализую фичи под web (SSR), Smart TV, mobile (Ionic) и desktop. Построил GitLab CI/CD с нуля с гейтом на 90% покрытия. Внедрил AI-assisted разработку с кастомными скиллами Claude Code, включая авто-код-ревью для огромных MR.</target>
114+
<source>Building and architecting large-scale Angular applicationsmodern reactive architecture (NgRx, Signals, zoneless, OnPush), a strong testing culture and CI/CD. Focused on performance, code quality and developer experience.</source>
115+
<target>Проектирую и разрабатываю крупные Angular-приложениясовременная реактивная архитектура (NgRx, Signals, zoneless, OnPush), культура тестирования и CI/CD. Фокус на производительности, качестве кода и developer experience.</target>
116116
</trans-unit>
117117
<trans-unit id="exp.fifthkind.role" datatype="html">
118118
<source>Tech Lead / Senior Frontend</source>

0 commit comments

Comments
 (0)