📜 ⬆️ ⬇️

How IT professionals work. Savva Mikhalevsky, front-end architect Grabr

We continue to ask specialists about the mode of work and rest, professional habits, the tools they use, and much more. It will be interesting to find out what unites them, in what they contradict each other. Perhaps their answers will help to identify some general patterns, useful tips that will help many of us.

Today our guest is Savva Mikhalevsky from Grabr :

By the time I graduated from the 9th grade, I had difficulty calculating the discriminant. Complex systems, quadratic equations, trigonometry and, all the more, physics were alien to me, unfamiliar and terrible. In my childhood I studied in depth foreign languages. Everything changed after the 9th grade: during the holidays my father presented me with a “Delphi 5. Programmer’s self-instruction manual”. It was at this moment that “bombed”, and I began to code with my school friend. By the time of entering the university, there was not even a speech about any humanitarian specialty. Only physics and mathematics - only hardcore.

In 2008, I graduated from the St. Petersburg Polytechnic University with a degree in Experimental Physics, passed the scientific work with an unpronounceable topic name, received a bachelor's degree and made the first conclusions — I definitely did not want to study physics.

The fundamental science in Russia is the mothball corridors of the scientific research institute, stretched sweaters, worn sweatpants and meager wages of scientists.
')
From the first course I worked as a tester, and by the time I graduated from undergraduate I knew SQL and Java quite well. Before entering the magistracy, I went to work at a small telecommunications company Astra Software. In 2010 he graduated from the magistracy at the Faculty of Cybernetics and defended by graph models. My scientific work was recommended by professors from the Academy of Sciences for admission to graduate school in Moscow. After that I spent 4 years studying multidimensional time series with fuzzy logic.

All the time in Moscow I worked in banks: first in the “Troika Dialog”, then in Sberbank and afterwards on the Moscow Stock Exchange. There I created a very cool project built on big data. I was my own boss and was actually responsible for the whole UI.

Only one thing hurt, and that is what distinguishes all my previous experience from working at Grabr. In large companies it is easy to get lost, too many people, and you are too far from the client, you don’t see the result and you don’t understand how your code changes the life of users.

What do you do in the company?

Grabr is a peer-to-peer platform where users make purchases abroad and deliver them with the help of travelers. The service exists in the form of an online platform (grabr.io) and a mobile application for iOS. On the one hand, our users have the opportunity to buy any things abroad, on the other - to earn money while traveling, delivering purchases.

My mission in these processes is to create and maintain the entire front-end. The site, the application for the iPhone and the upcoming launch version on Android. Right now we are preparing the entire technological base for this. Almost the entire front-end Grabr is built on one technological stack. Which facilitates the search for new programmers in the team, and reduces the number of errors. Here is a very large code-sharing.

One word that best describes how you work?

One phrase is “attention to detail”. The success of the whole system is based on this.

How many hours a day do you spend on work?

I work for 12-13 hours. Directly in the office, I spend from 9 to 11 hours, depending on the number of cases and my desire to do everything.

How many hours do you sleep?

Hours 7 on weekdays and about 10 on weekends.

How do you have breakfast?

Oatmeal with milk. For so many years the only way.

What are you doing on the way to / from work?

I get to and from work by taxi - it’s a great time saver, allowing you to concentrate and prepare for the working day in relative silence. On the road, I watch Business Insider and Medium technology blogs from time to time. But most of the time I read websites that Google offered me in response to some of my queries - I constantly have ideas in my head about how to implement this or that functionality, and I look for answers to questions arising during a mental experiment.

What kind of todo-manager do you use personally?

I use "tudushkami" on the iPhone. I really like how they sync with Mac. I have five categories of tasks: home, work, intermediate, and so on. I try to drive all my tasks right into this todo-list.

What applications and services can't you do without?

I can not do without Gmail and GitHub. In the latter in general, it seems, my whole life is collected. Very dependent on this service.

What kind of task manager / issue tracker / repository do you use in the company?

We use the same GitHub as a repository and there is a great issue tracker. The team also tried using Trello, but it turned out to be too random for developers.

Someone will argue, but each team chooses a tool for themselves. Someone likes JIRA, someone like Trello. It seems that Einstein said: “Everything should be simple, but not simpler than necessary.” Here for me GitHub is a reflection of this particular story.

What other tools and software do you use at work?

I use technology Apple. A long time ago, I abandoned a large, powerful computer on Windows in favor of the compact Mac.

I use Terminal, Sublime, Sketch, IDE in my work. Sketch discovered only with the arrival in Grabr. Our designer draws everything in this program. And now, it seems, this is the most convenient tool for layout.

In general, I am a supporter of paying for software. It seems to me, when you pay for the software, you say thanks to its developers for their time spent. The same Sublime costs nothing, only invites you to deposit any amount in support of the project. And I don’t feel sorry for the same $ 30 a year using a cool tool.

If we talk about the front-end in Grabr, then we are here at the front technological edge - we have React as a renderer, Redux as a model, Flowtype for type inference. Next is Facebook, which creates all this. We use atomic layout and managed to create our own solution for this. And now this solution is available in open source. You can already start working with him.

What annoys you most when you work?

I do not like noise.

What professional literature would you recommend?

The book "JavaScript: The Good Parts" by Douglas Crockford. A very small book on the basics of the JS language, and you don’t need to know more.

What do you prefer: electronic reading rooms or paper books?

In this regard, I'm a retrograde - I prefer paper media.

What technique and why do you prefer at work and at home?

For about 8 years I worked in a large enterprise, and there Microsoft is in charge of the ball, so, willy-nilly, I had to work every day on the Windows stack. The last 5 years, my personal computer was a Mac, and I developed my projects on it. When I joined Grabr, I completely switched to this platform, started using a Mac for work.

After buying a computer on Windows, you start by reinstalling the system in order to get rid of endless antiviruses, registry optimizers and all advertising tinsel that manufacturers have written there. Technology Apple, their software and services impressed me, because they allow you not to think about them - they just work out of the box.

I like how everything is synchronized via iCloud. For example, after buying a new computer, it is enough to log in to return all your applications and the latest settings to them. In addition, all the elements of the ecosystem are perfectly matched to each other and I do not remember when I was last forced to tune something.

They say that under Mac there is no full-fledged software for programmers - this is not so. There are many development tools available, from Sublime and Coda to combines such as IntelliJ IDEA. And, importantly, they are all very beautiful and pleasant to use.



What do you listen when you work?

Best of all, I work in complete silence. But generally I love rock - Pink Floyd, Deep Purple and electronics, for example Depeche Mode.

Which life hack allows you to be more efficient?

For me, writing code is creativity, creating something tangible through the ordering of characters on the screen. From this relationship perfectionism is born, which, as you know, has destroyed many good projects, recall at least Duke Nukem. Therefore, I derived for myself the concept of the half-life of a code — this is the length of time for which my code ceases to please me. If this period is too short, then I obviously did not pay enough attention to the code. If the period is too long, then most likely, I unreasonably long brought the code to perfection and the time has come to recall the Pareto principle. But maintaining average values ​​seems to me the most effective.

Efficiency, in my understanding, is not measured by lines of code per unit of time or the number of completed tasks per sprint, it is determined by the ability to gain experience and learn from their mistakes.

What kind of professional advice for the future can you give yourself?

Do not become one-sided professional. Many revolutionary discoveries and technologies were created by people with a fresh outlook, unclouded by tradition and dogma.

What would you recommend to a person trying to go the same way?

Recently, many courses have appeared that promise a quick start in learning programming languages, and now it is fashionable to be a programmer. But, as practice shows, in order to become a good programmer, you need significantly more than a dozen classes, and you need to study not only and not so much languages, as logic and abstract thinking. A programming language is only a tool for expressing thoughts; it is worth choosing to match the task. Do not tune the piano with a sledgehammer, and hammer the pile with a hammer to tune the piano.

If we talk about technical aspects, I am impressed by a more solid, fundamental approach, so I recommend starting programming with strongly typed imperative languages, such as Java or C #. Understanding the basic principles of development, knowledge of patterns - both design and integration - will form a conscious approach to creating systems.

Source: https://habr.com/ru/post/329436/


All Articles