resume/
lib.rs

1// #![no_std]
2#![feature(freeze)]
3#![allow(internal_features)]
4#![feature(doc_cfg)]
5#![feature(freeze_impls)]
6#![feature(negative_impls)]
7#![feature(associated_const_equality)]
8#![allow(deprecated)]
9#![allow(unused)]
10#![doc(html_logo_url = "https://avatars.githubusercontent.com/u/414425?v=4")]
11#![doc = include_str!("../README.md")]
12
13use conferences::{
14    roles::ProgramDirector, DevConf2016, MoscowPythonMeetup2016, MoscowPythonPodcast2020,
15    MoscowRustMeetup2021, PyCon2021, RamblerDevOps2021, RamblerPython2021, RustCon2021,
16    RustCon2022, RustForPythonDevelopers,
17};
18use opensource::{
19    ActixWebValidator, AioHTTP, AioRiak, Author, BashoDocs, ChromebookKernel, Conflow, Contributor,
20    DataFusionPostgres, FlaskHmacAuth, FlaskRestful, Hitbox, Hitboxd, Poetry, PyJasperClient,
21    Shortland, SlogStdlog, Swayboard, SwayipcRs, BB8,
22};
23#[doc(hidden)]
24pub use resume_macro::CleanupDocs;
25
26/// [@singulared](https://t.me/singulared)
27pub const TELEGRAM: &str = "@singulared";
28
29/// [https://github.com/singulared](https://github.com/singulared)
30pub const GITHUB: &str = "https://github.com/singulared";
31
32/// [https://www.linkedin.com/in/singulared/](https://www.linkedin.com/in/singulared/)
33pub const LINKEDIN: &str = "https://www.linkedin.com/in/singulared/";
34
35/// [work@singulared.space](mailto:work@singulared.space)
36pub const EMAIL: &str = "work@singulared.space";
37
38/// [+79190007134](tel:+79190007134)
39pub const PHONE: u64 = 79190007134;
40
41/// 28.12.1988
42pub const BIRTHDATE: &str = "28-12-1988";
43
44/// [Source code](https://github.com/singulared/resume/) of this resume
45pub const SOURCES: &str = "https://github.com/singulared/resume/";
46
47/// [Boring version](https://docs.google.com/document/d/1O2OFZn_dK-gHszWc85DdHQtlAM3IX7Vf4_72tqOLD6I/edit?usp=sharing) of this resume
48pub const RESUME: &str = "https://docs.google.com/document/d/1O2OFZn_dK-gHszWc85DdHQtlAM3IX7Vf4_72tqOLD6I/edit?usp=sharing";
49
50use hobbies::{Biking, EmbeddedSystems, Music, Piano, Tennis, CTF};
51use technologies::{
52    languages::Rust, tools::Linux, Cryptography, DistributedSystems, Hobbies, TechnicalInterests,
53    CRDT,
54};
55#[doc(inline)]
56pub use work::WorkHistory;
57
58/// Information about me and my personal interests.
59#[derive(CleanupDocs)]
60pub struct Me;
61/// My technical interests
62impl TechnicalInterests for Me {}
63/// Started getting interested in Rust in 2018.
64///
65/// From small cli tools and playground experiments to big opensource projects like
66/// [Hitbox](https://github.com/hit-box/hitbox/) and
67/// production applications like [News](crate::work::Rambler::News) and [MediaUp](crate::work::Rambler::MediaUp).
68impl Rust for Me {}
69/// Started to use Linux as main system since 2006.
70///
71/// Debian one Love (:
72impl Linux for Me {}
73/// In 2015 with Riak I opened the distributed systems world for myself. I continue exploring it nowadays, of course.
74impl DistributedSystems for Me {}
75/// CRDT, as I think, is one of the most interesting technologies of recent years.
76impl CRDT for Me {}
77/// One of my hobbies is microcontrollers and embedded development.
78///
79/// I started from porting Python3 and building kernel for Motorola a1200.
80/// Porting linux on Toshiba ac100 arm smartbook.
81/// Samsung ARM chromeebook hacks and development.
82/// And now I develop for some PINE64 devices such as PinePhone, PinePhone PRO, PineTime and other
83/// SBC platforms like NVidia Jetson Nano.
84impl EmbeddedSystems for Me {}
85/// I was really interested in Cryptography as a Ph.D student and wrote Ph.D dissertation about SMT
86/// algorithms.
87impl Cryptography for Me {}
88
89/// My hobbies
90impl Hobbies for Me {}
91
92/// I really like cross-country biking.
93impl Biking for Me {}
94/// I am a musician.
95impl Music for Me {}
96/// I am a piano player.
97impl Piano for Me {}
98/// I am a tennis player since 2004.
99impl Tennis for Me {}
100/// Participant of Honeypot team in:
101/// * RuCTF/RuCTFe
102/// * iCTF
103/// * Defcon
104///
105/// And other information security competitions.
106impl CTF for Me {}
107
108/// Education history
109#[derive(CleanupDocs)]
110pub enum EducationHistory {
111    /// *2011 - 2014* Ph.D. Student (System analysis, management, and information processing)  
112    /// Vladimir State University named after Alexander and Nikolay Stoletovs
113    PhDStudent,
114    /// *2006 - 2011* Information Security Specialist (Complex security of information objects)  
115    /// Vladimir State University named after Alexander and Nikolay Stoletovs
116    Specialist,
117}
118
119/// Opensource projects
120#[derive(CleanupDocs)]
121pub enum OpenSource {
122    /// Hitbox caching framework
123    Hitbox(Hitbox<Author>),
124    /// Hitboxd caching reverse proxy
125    Hitboxd(Hitboxd<Author>),
126    /// Actix-web validator library
127    ActixWebValidator(ActixWebValidator<Author>),
128    /// AioRiak async client
129    AioRiak(AioRiak<Author>),
130    /// AioHTTP framework contribution
131    AioHTTP(AioHTTP<Contributor>),
132    /// Conflow configuration manager
133    Conflow(Conflow<Author>),
134    /// Shortland URL shortener
135    Shortland(Shortland<Author>),
136    /// Swayboard layout manager
137    Swayboard(Swayboard<Author>),
138    /// Chromebook kernel fork
139    ChromebookKernel(ChromebookKernel<Author>),
140    /// DataFusion-Postgres contribution
141    DataFusionPostgres(DataFusionPostgres<Contributor>),
142    /// Swayipc-rs contribution
143    SwayipcRs(SwayipcRs<Contributor>),
144    /// Poetry contribution
145    Poetry(Poetry<Contributor>),
146    /// Slog-stdlog contribution
147    SlogStdlog(SlogStdlog<Contributor>),
148    /// Basho docs contribution
149    BashoDocs(BashoDocs<Contributor>),
150    /// BB8 connection pool contribution
151    BB8(BB8<Contributor>),
152    /// Flask-RESTful contribution
153    FlaskRestful(FlaskRestful<Contributor>),
154    /// PyJasperClient contribution
155    PyJasperClient(PyJasperClient<Contributor>),
156    /// Flask-HMACAuth contribution
157    FlaskHmacAuth(FlaskHmacAuth<Contributor>),
158}
159
160/// Conferences & meet-up
161#[derive(CleanupDocs)]
162pub enum ConferencesHistory {
163    /// *2021, 2022*: Biggest [Rust conference](https://rustcon.ru/) in Russia.
164    RustCon(RustCon2021, RustCon2022),
165    /// *2021*: Biggest [Python conference](https://pycon.ru/) in Russia.
166    PyCon(PyCon2021),
167    /// *2021*: Local [Moscow Rust community](https://www.meetup.com/Rust-%D0%B2-%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5/events/279291922/).
168    MoscowRustMeetup(MoscowRustMeetup2021),
169    /// *2021, 2022, 2023*: Rust lecturer in Yandex School of Data Analysis.
170    SHAD,
171    /// *2016*: [Conference](https://devconf.ru) of professional web developers.
172    DevConf(DevConf2016),
173    /// *2016*: Local [Moscow python community](https://moscowpython.ru).
174    MoscowPythonMeetup(MoscowPythonMeetup2016),
175    /// *2015 - 2022*: Rambler company meetups.
176    RamblerMeetup(
177        RamblerDevOps2021,
178        RamblerPython2021,
179        RustForPythonDevelopers,
180    ),
181    /// *2020*: Podcast from founders of the biggest Russian python community [MoscowPython](https://www.facebook.com/groups/MoscowDjango/)
182    MoscowPythonPodcast(MoscowPythonPodcast2020),
183}
184
185pub mod conferences;
186pub mod hobbies;
187pub mod opensource;
188pub mod publications;
189pub mod roles;
190pub mod technologies;
191pub mod work;