When I was seven, dad bought our first Arduino and we made a toy for cats. The laser pointer was suspended on two servomotors and fired a beam – and the animals rushed after the red dot around the room. I began to dig into the program that my father wrote, trying to understand how everything works … and so I tried C ++.
I quickly realized that the “pluses” for a first-grader were somehow not very good, but I was interested in programming, I sat down at Scratch – my dad advised him to teach it. When he outgrew it, his father showed a couple of tricks in Python. Then there was the classic way: I wanted to make a web page, I sat down for jQuery, JS frameworks and Node.js. And here I am)
How I learned English by reading the documentation
It all started with Arduino. I did not have normal documentation in Russian – but on the official website everything was in English. Of course, at school they gave us a basic foreign language, but a language teacher would hardly help much with technical texts. And the computer science teacher showed us how to draw in paint.
Then I armed myself with a Google translator, climbed on arduino.cc and learned to understand something, translating individual words.
The real breakthrough came when I mastered Scratch. To participate in the life of the community, you really need to know English, because everyone communicates on it. People may accidentally stumble upon your project, give feedback or write: “Can I take this for myself?” Such is the open source on the minimum. Thanks to the community, I stopped feeling embarrassed to answer questions and comment on something. In short, he broke the language barrier and began to use English for real, as a tool.
When I started experimenting with Python and JS, it was very useful: the ability to read and speak foreign can lead you very far)
My pet projects
There were over 50 of them, but I will talk about five.
Made in Python. And this is gif.
The first game. She became the first commit on the github – November 1, 2015. No plot: you control a ship (it simulates a triangle) and burst bubbles that are depicted as circles. Everything is drawn on the go.
Three hotkeys on the border of the search line: click, this is also a GIF.
The first web page. First I made a homepage for my browser: there wasn’t even CSS there, but the first attempt was successful, and I began to actively watch what else I could – I took different cookies and experimented with them.
Somehow I raised the server using the Telnet protocol and began to make requests to Google web search through the terminal.
Then I accidentally collected the Telnet’s hanipot. Now telnet is mainly used for routers, and all sorts of cunning bots quickly climbed up to me. My server did not accept their commands, but simply logged everything. And it was very funny to look at this: a bot comes across a server, thinks it is a router, sends all kinds of commands in an attempt to reconfigure it – and the server just gives the results from Google.
Web version of Que – a democratic way to create a collective playlist.
The first time I got featured on Product Hunt. In the summer of 2018, I was flipping through the Apple documentation and saw that they have a web API for music. At school, we often had a problem – when we have some kind of holiday or party, everyone cuts hard for the right to turn on their music. I decided to make a service that solves the problem: you open it on a computer or phone, those who want to scan the QR code, add their songs to the general playlist and vote for the one that will play next.
426 votes and third place according to the results of the day on the service. Now the project is closed, because Apple changed the API, and Facebook released its application – it’s silly to butt it)
When I decided to post it on Product Hunt, it took 10 minutes: I sent an application, the dude wrote on the other side: “We feature you, but please rewrite the description. It is so-so. ” I said, “OK.”
And this is Docket – a “tinder for making a shopping list”. Another project that went to Product Hunt. The idea was this: here you are standing in front of an empty refrigerator, going to the store and trying to figure out what else to buy. At this point, you can not break your brain, but start the application, look at the product cards and swipe them – the shopping list will be compiled automatically.
I picked up the idea and description in English website with project ideas.
To find the data for the application, I went to the fifth page of Google: only data sets with branded products came across above. And there, in the depths of the issue, I waited link to github: someone posted a data set, where each line is a check in English with a list of products without brands (“milk”, “cucumbers”, etc.). Based on it, I compiled my excel: a list of products and their popularity rating – that is, not some olives were shown first, but milk. Because it is needed more often.
The funniest thing happened when Product Hunt posted a link to this product on their social networks. Traffic went and someone wrote: “Listen, everything is great, but swap the swap, in Tinder it is the other way around.” And I’m 13 years old, I don’t use this, how do I know which way the swipe is there ?! Parents neighing.
How did I get an internship
My level of English was already higher than they could at school, and there was a desire to grow in this regard. My parents enrolled me in language courses: I went there until it became a pity to waste time on the road. Then I started practicing in Skyeng. I was not only an active student, but I also actively sent feedback on the platform. At one point, the company’s products created a chat in a telegram and added people like me there.
I started using chat to send bug reports – not quite critical, but interesting. For example, when soft scrolling didn’t work on my iPad in Vimbox, our browser training platform, I wrote: “It seems that if this piece of CSS is corrected, it will work.” That is, I did not just complain, but put forward my own hypotheses about why this might be, I threw logs and details. At some point, Vlada, the product manager for children and adolescents, wrote to me and offered to try her hand at an internship with their team.
The same message from Vlada with an offer to intern. By the way, they took me as a result without a test one, although all adult developers pass it: they say it takes about an hour and a half.
I wrote: “Thank you, I’ll think about it.” I just didn’t know how to react. And immediately went to his father: “Dad, what should I do?” After the story with Product Hunt, he already stopped wondering and said that, in principle, this is a good offer: remote, free schedule and great experience. Then there was a call – and they took me as an intern.
Dad, of course, still had to collect documents: in Russia you can officially work from the age of 14, but for registration you need to stock up on time, undergo a medical examination and get approval from the district department of social protection.
Although the guys are known for being remote, there is an office in Moscow. I drove there a couple of times.
I was assigned to the department of simple tasks: a dedicated team that offloads the core development. The department was heavily loaded with landing requests, and many orders for creating bots for Slack piled up. Probably, then the guys sat down and thought: “We have a developer who can write in JS, but does not know PHP. “You can write bots on JS, maybe we can give them to him?” So I became one of the two people in Skyeng who write bots to automate the life of development and other departments.
For me, this was a good start: I could not take and put something important, and if something suddenly happened, the losses were minimal. Such moments, of course, were: somehow I mixed up two SQL keywords – on a small test base, both worked in the same time, but in reality one required a lot more processor. And the base of the real Skaeng dictionary is huge. And when I sent a request to this database, he decently loaded it for a couple of minutes until the request was nailed)
At first, my mentor was Lesha deusdeorum Kataev, the then team leader of one of the key teams. When I was added to Slack, he wrote: “Hello, I want to automate our development processes,” and threw two ideas for bots.
When there are a lot of correspondence, often tagging a person is not enough – mentioning does not guarantee that he will read the message: it can be lost in a minute among others like that. I wrote a decision in a week)
The first was the bot, which guaranteed the reading of important messages. We called him Yellbot. Used for critical cases: you select accounts or a group of accounts through Yellbot, and he begins to “chase” people with a specific message – updates the notification every minute until you click “I read” under the text.
Then I made a bot named Jake – it automates the techview. Previously, a team leader collected tickets, categorized them, put them on the team’s channel, asked the guys to vote for the tasks — all this took about an hour, it was expensive and dreary. The bot collects a list of tasks upon request, launches a vote on the channel, and issues a voting result. Now, when the technical review is being rolled out into many teams, it saves leads for whole man days.
And these are my cats = ^ ·. · ^ =
Since then, I have made dozens of bots: some were as stupid as possible (for example, one simply welcomed a newcomer to the channel and asked to read the rules), some served as a search interface in knowledge bases or helped automate analytics.
This is very cool. Previously, when I laid out the solution on the same Product Hunt, it was in demand for two days, and then only a couple of people found it necessary. Now, when I create something, I know that I am doing something useful that months and even years may use.
How to combine work with school
Now I am in the eighth grade of the 57th school. This year a special class in computer science opened here: several hundred children showed up, even from other schools and cities – the competition was open. I was very worried whether I would pass. To increase my chances, I asked Sasha Laryanovsky, managing partner of Skyeng, to write me a recommendation.
I think the internship is one of the reasons why I was taken to a special class. The letter of recommendation worked perfectly.
We have a lot of computer science: on Monday – two hours, on Thursday – two more, on Saturday – six. And this is precisely an advanced course: we master the algorithms, write in C ++, we also have mathematical analysis (“I love” it with all my heart).
And they also take us on excursions to various IT companies) From the class, not only am I seriously interested in development – another of the guys writes good games.
And the school is seven to eight lessons on weekdays and nine on Saturday, so I do not work every day. And according to the law, a teenager’s work time is limited until he turns 16 years old. So usually everything happens like this: I came home, ate, procrastinated, and there, when I have time and I want to hang out, I take work tasks, and then I do the lessons.
I use three monitors: on one – Slack, on the second – documentation, and on the third – VS Code.
When a new challenge comes to our team, I am called in to chat with the customer with a request to evaluate the timing. Usually I evaluate them by analogy with past projects and immediately warn: “Look, this is so many man-hours, but this work can take me a week or two”. Then the customer decides for himself – to give the task to one of the guys at full time for urgent development, or to entrust it to me.
At first, tasks came to me in PM in Slack – a great time) Now everything is recorded in Jira, like everyone else.
Once every two weeks I have a sync with the project, so that she understands what I’m doing now. There is a code review from the guys. Also, like everyone else, I am asked to log time in Jira: I just upload the data from Toggl, there they are more accurate.
What I spend earned on. Part of the money goes to all sorts of subscriptions and software for personal projects:
- Hetzner – hosting my personal server,
- ZEIT – as a host for Node.js projects,
- 2Tb iCloud – because backups need to be done,
- 1Password – because how to live without it,
- Notion – I keep notes in it and use it instead of Jira for personal projects,
- Setapp – 140+ apps for macOS for $ 5 / month (with student discount)
- Fantastical is a very cool replacement for the native calendar on iOS and macOS,
- Yandex.Plus – I took it only because of the discount on Yandex.Food and the Shop (with the amount of food that I and my friends order at school and home, this subscription pays off!),
- Nintendo Switch Online is a must-have for Switches owners,
- Netflix, Apple Music and other streaming services
How it changed my life
Now my plan for 2020 is to survive) A big plus of my new position – they started to let me go at the conference. Dad works at Mail.ru, a lot of interesting things are going on there: before, I had to ask him to write me a guest pass so that I could pass by the hare. And now I’m just applying: “Guys, I’m a developer from Skyeng.” They are: “Application approved.” Mostly I go to events about the front and mobile development.
On CDS in the office of Mail.ru, November 2019.
Last summer, when there was more time, I tried to apply for a Yandex internship on the front. And they almost took me. I wrote a test assignment online and received an invitation to an interview. I come and say, “Hello.” They are: “Oh.” Officially (and it was in the rules) it was possible to participate only from 18, but after contacting the wonderful Grigory bobuk Bakunov, as an exception, I was allowed to participate in face-to-face interviews, where I lasted three rounds. However, the offer will have to wait at least until adulthood)
“Here is what I like”
And I finally decided that I want to work in IT. I’ll finish eleven classes, and there – either in a strong university such as HSE, or try to enter foreign universities.