-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
194 lines (185 loc) · 9.15 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<!DOCTYPE html>
<html lang="en">
<head>
<title>Albert Safiullin</title>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Rubik:300,500,700" rel="stylesheet">
<link rel="stylesheet" href="css/styles.css?v=10">
<script async defer src="https://buttons.github.io/buttons.js"></script>
<meta name="date.updated" content="2023-10-08; 2024-04-21"/>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Z3WE7D8L57"></script>
<meta name="google-adsense-account" content="ca-pub-9147007155868784">
</head>
<body>
<script type="application/javascript">
let more = () => document.querySelector('.more-life');
function toggleMore () {
let m = more();
if (m.style.display === 'none') {
m.style.display = 'block'
} else {
m.style.display = 'none'
}
}
</script>
<div class="body">
<p>
My name is <b>Albert Safiullin</b><br>
<br>
I am a software developer, since <b>2009</b>.
<br>
2009 - Paskal, Deplhi IDE... <span class="more" onclick="toggleMore()">show more</span>
</p>
<p class="more-life" style="display: none">
2010 - Web development, php, js, html5, joomla CMS
<br>
2014 - Web development, php, js, html5, Yii framework, jQuery, golang, java, kotlin, android
<br>
2018 - Fullstack web development, only js, nodejs, react, redux, JS, TS, rest api, microservices, agile
<br>
2020 - Frontend developer, big tech, js, nodejs, react, JS, TS, agile
<br>
2023 - Sr Frontend developer, big tech, js, nodejs, react, JS, TS, agile, webpack, module federation, mentoring,
dream team
<br>
2024 - Moved to Bangkok =)
</p>
<p>
<br>My work is open source and publicly available <br>on
<a href="https://github.com/albertincx" target="_blank" rel="nofollow">GitHub</a>
<span class="gh-btn">
<a class="github-button" href="https://github.com/albertincx" data-show-count="true"
aria-label="Follow @albertincx on GitHub" rel="nofollow">Follow @albertincx</a>
</span>
</p>
<p>
<b>Projects</b>
<br/>
<b>1</b>. <a href="https://t.me/Corsabot" rel="nofollow">InstantView Bot</a> - comfortable reading any web
articles in
telegram. <br/>40 000+ users use this bot <b><a
href="https://safiullin.com/blog/instantviewbot-usage-statistics-open.html">Statistics now is Open!</a></b>
<span class="gh-btn">
<a rel="nofollow" class="github-button" href="https://github.com/albertincx/formatbot1"
data-show-count="true"
aria-label="Star albertincx/formatbot1 on GitHub">Star</a>
</span>
<br/>
<br/>
<b>2</b>. <a href="https://learnlanguages.app/">learnlanguages.app</a> - learn any languages by subtitles,
improve your pronunciation with AI Speech
<span class="gh-btn">
<a rel="nofollow" class="github-button" href="https://github.com/albertincx/lang" data-show-count="true"
aria-label="Star albertincx/lang on GitHub">Star</a>
</span>
<br/>
<br/>
<a href="https://play.google.com/store/apps/details?id=io.safiullin.lang" class="gpl-link" rel="nofollow"></a>
<br/>
<b>3</b>. <a rel="nofollow" href="https://t.me/RouteCabBot">RouteCab Bot</a> - organize your regular routes with
neighbors in
telegram, <br/>
ride together web client (<a href="https://web.route.cab" target="_blank">web.route.cab</a> in development) <a
rel="nofollow" href="https://route.cab" target="_blank">route.cab</a>
<span class="gh-btn">
<a rel="nofollow" class="github-button" href="https://github.com/albertincx/routebot" data-show-count="true"
aria-label="Star albertincx/routebot on GitHub">Star</a>
</span>
<br/>
<br/>
<b>4</b>. <a rel="nofollow" href="https://t.me/InstantChatBot">InstantChat Bot</a> - create free support chat
for your website,
or p2p in telegram <a href="https://cafechat.app" target="_blank">cafechat.app</a>
<br/>
<br/>
<b>5</b>. <a rel="nofollow" href="https://github.com/albertincx/browser-extension-makeMobileView">browser-extension-makeMobileView</a>
- make any website to mobile view, works only in mobile mode
<a rel="nofollow"
href="https://chromewebstore.google.com/detail/make-mobile-view/ohfappdhdoofhbiajcdakoicdpfpkggn"
target="_blank">WebStore Extension Url</a>
<span class="gh-btn">
<a class="github-button" rel="nofollow"
href="https://github.com/albertincx/browser-extension-makeMobileView"
data-show-count="true"
aria-label="Star albertincx/browser-extension-makeMobileView on GitHub">Star</a>
</span>
<br/>
<br/>
<b>6</b>. <a rel="nofollow" href="https://github.com/albertincx/percentize">percentize</a> - percentize your
numbers =) <a
rel="nofollow" href="https://www.npmjs.com/package/percentize" target="_blank">npm package</a>
<span class="gh-btn">
<a class="github-button" rel="nofollow" href="https://github.com/albertincx/percentize"
data-show-count="true"
aria-label="Star github.com/albertincx/percentize on GitHub">Star</a>
</span>
<br/>
<br/>
<b>7</b>. <a href="https://timer.safiullin.io">Offline Timer</a> - Timer, works offline with countdown <br>
Github repo <a rel="nofollow" href="https://github.com/albertincx/react-pwa-apps" target="_blank">here</a>
<span class="gh-btn">
<a class="github-button" rel="nofollow" href="https://github.com/albertincx/react-pwa-apps"
data-show-count="true"
aria-label="Star https://github.com/albertincx/react-pwa-apps on GitHub">Star</a>
</span>
<br/>
<br/>
<b>8</b>. <a href="https://github.com/albertincx/zeppos-my-timers">Zepp OS My Timers</a> - An app helps to create timers. Countdown soon... <br>
Github repo <a rel="nofollow" href="https://github.com/albertincx/zeppos-my-timers" target="_blank">here</a>
<span class="gh-btn">
<a class="github-button" rel="nofollow" href="https://github.com/albertincx/zeppos-my-timers"
data-show-count="true"
aria-label="Star https://github.com/albertincx/zeppos-my-timers on GitHub">Star</a>
</span>
<br/>
<br/>
<p>
<a href="https://safiullin.io" target="_blank">My personal blog</a>
</p>
<p>
<a href="https://safiullin.com/blog/my-put-programmista.html" lang="ru">Блог: Мой путь программиста</a>
</p>
<p>
<a href="https://safiullin.com/blog/10-let-react-js.html" lang="ru">Блог: React 10 лет спустя</a>
</p>
<p>
<a href="https://safiullin.com/blog/maya-dive-into-software-engineer.html">Blog: maya's dive into software
engineer</a>
</p>
<div class="flex1">
<br/>
<a rel="nofollow" href="https://linkedin.com/in/albertincx" target="_blank">LinkedIn</a>
<br/>
<br/>
<a class="clear" itemprop="sameAs" href="https://t.me/safiullin" target="_blank"
rel="nofollow noopener noreferrer">
<span class="contacts__icon">
<i style="width:32px;height:32px;overflow:hidden;display:block">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none"><path fill="currentColor"
fill-rule="evenodd"
clip-rule="evenodd"
d="M0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0C10.7452 0 0 10.7452 0 24ZM19.6 35L20.0083 28.8823L20.008 28.882L31.1369 18.839C31.6253 18.4055 31.0303 18.1941 30.3819 18.5873L16.6473 27.2523L10.7147 25.4007C9.4335 25.0084 9.4243 24.128 11.0023 23.4951L34.1203 14.5809C35.1762 14.1015 36.1953 14.8345 35.7922 16.4505L31.8552 35.0031C31.5803 36.3215 30.7837 36.6368 29.68 36.0278L23.6827 31.5969L20.8 34.4C20.7909 34.4088 20.7819 34.4176 20.7729 34.4264C20.4505 34.7403 20.1837 35 19.6 35Z"></path></svg>
</i>
</span>
</a>
<br/>
<a href="https://career.habr.com/albertincx" target="_blank" rel="nofollow">Mentor
https://career.habr.com/albertincx</a>
</div>
</div>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-Z3WE7D8L57');
</script>
</body>
</html>