From student to interns and developers: my internship experience



    In our company there is an internship program, thanks to which students can not only gain experience in working on serious projects, but also immediately find a job within an IT area of ​​interest. As an example, I want to give my story, as I’m by the age of 21, before I’ve even finished university and the Technopark training program, I’ve already become a full-time developer in the Mail.Ru Mail project and delivered a report in the main hall at RIT ++. But first things first.

    The beginning of my career was freelancing site development, I have been doing this since the 11th grade. He interacted with various performers and customers. He did something himself, gave something to an outsourcing. Created from scratch: design, development, layout, programming, CMS setup, then SEO setup, and so on. In the second year of university I heard about Technopark , I was interested in it, I decided to enter. Generally, it was a spontaneous decision, not prepared at all, submitted an application one day before the end of the selection. Passed online selection, but fell on the face-to-face interview. The funny thing is that it was Artyom Mezin , who interviewed me and did not take me to the Technopark, and later took me to work at the Post Office.

    Six months later, in the next set, I again decided to try my luck. Prepared in advance, I understood where and why I was going. As a result, he successfully entered the two-year program of study in the specialty “system architect”. At that moment I was in my second year at university.

    The first semester was very interesting, I finished it perfectly. Taught algorithms and data structures , this is the basis of the foundation of all programming. Then there was an interesting basic course on web programming. And the third is programming in C ++ .

    I also completed the second semester almost perfectly well, at that time I was already in parallel training and studying at MSTU. Bauman. Actually, I am still a student both at the university and at the Technopark.

    I began my internship at the Technopark laboratory, which deals with educational projects (project training platform and championship development) Mail.Ru Group. I saw a vacancy on the internal site, I came for an interview and in two days I completed a test task - I did the usual to-do-list, with a backend and front-end, with a neat design. After that they took me for an internship.

    In the laboratory, I was engaged in front-end development sites. And after three months I was invited to work at Mail.Ru Mail. That was a little over a year ago. Now I work as a front-end developer in Mail.Ru Mail. We have three teams in our business unit: Alpha, Bravo and Charlie. All teams are engaged in absolutely all tasks, there is no difference that someone is engaged in infrastructure or the development of features. Almost half of the developers in our business division are graduates and trainees of Technopark.

    Today, about 80% of new developers come to us from the intern program.

    I work in the Alpha team. My tasks include the development of new functionality based on microservices, for example, money transfers, generation of one-time codes, two-factor authentication.







    It was especially difficult to develop improvements in two-factor authentication, had to solve many technical difficulties, very actively interact with several teams of backend-development. Constantly had to negotiate, to solve controversial issues. This project took three months. Remittances also turned out to be a very difficult and interesting project, we did it for several months. The main difficulty was to interact with an external business unit within the company.





    I am also responsible for the development and support of the UI component library for Mail: all sorts of buttons, panels, drop-down menus. It is very difficult to do this, because people want to develop as simply as possible, and this library has a very complex infrastructure. Each component state is screened - when you click, with hover, about focus. It is necessary to completely cover the code with autotests, this also takes a lot of time. I try to optimize the processes so that the code generation of tests works; so that people can develop their components using the library as quickly as possible.

    Many believe that front-end developers only make up forms. It is not true. The front-end developer of one month of work takes one day, the main work is writing code, business logic of different features. We also customize some basic things for ourselves, change the configs in nginx so that admins just roll them out. We solve various infrastructure tasks, like log parsing.

    That is, front-end developers work with a large number of technological layers of the project. At least in Mail.Ru Group. Some of us start writing our services on Go, because the task requires it. So if you come to us to deal with the frontend, you will get a huge range of technical knowledge, but you will definitely not be engaged in one layout.

    It is extremely important to build interactions between numerous teams of different departments. When I arrived at the Post Office, they did not use React here. He said that I want to use it, agreed to try. As a result, many teams now use React. And it is also worth noting that in most projects that I am developing, Webview on iOS / Android is used. That is, you have to take into account the specifics of mobile devices.

    A little more than a year of work, I was offered to speak at RIT ++. I agreed without hesitation, because it seemed like an incredibly cool experience. A lot of time was spent on preparation. I rewrote the text of the report entirely five times, it took six sheets. It was always possible to do even better, but for the first performance it turned out really very well. I talked about the architecture of the Mail, how we build it on the basis of microservices, how we take everything out of the monolith [This will be a separate publication. - approx. Ed.].



    Future plans: to develop as a developer, maintain and develop the library of UI components of Mail, I hope it will be used in other divisions of the Mail.Ru Group. Take yourself an intern. Also in a couple of years I plan to enroll in the MIT master degree (Massachusetts Institute of Technology).

    The Mail.Ru Group has many possibilities: if you want to work hard and make a career, there will always be tasks; if you want to study, you can work quietly 20 hours a week. And if you do not like the front-end, you can easily change the direction: backend, ML, mobile development, we always have a lot of vacancies. The main thing is to work and develop. So if you want to get us on an internship, and then in the state, then I will tell you more about our program.

    The program has been operating for six years. We do not have a winter or summer format; interns are full-fledged employees who work on combat missions. The only difference from the rest of the staff: interns can work 20 hours a week.

    Of course, with this format, it is necessary to provide a very high quality and high level of training so that the student, having come to the company, can immediately start working and know all the technologies that are used in the projects. Therefore, six years ago we launched our training programs.

    Our educational projects


    The first was the Technopark on the basis of MSTU. Bauman with two training formats: a two-year program and semester courses. According to the two-year program, system architects are trained, every semester, students study 3-4 subjects, and receive full-fledged knowledge of all directions in IT development for release. This is very important because when he comes to work in the company, the graduate works with other employees, with other departments and must ensure a high level of communication.

    The semester course is a specialization format that allows students to gain knowledge in a particular direction.

    Today Mail.Ru Group has already led six educational projects. In all of them, the program is built on the Technopark principle, but there is a different specialization everywhere. In Technopark(MGTU im. Bauman) teach frontend and iOS development, programming in C ++, Java, Cuda, Perl, Go. In the Technosphere (MSU) are taught to work with big data. In the Technotrack (MIPT) prepare Android-developers. In Technoatom (MEPI) they study C ++, Java, Python, Perl and testing, and in Technopolis (SPbPU) they study Java. Also recently, a new project was launched at the Voronezh Federal University. In total, we teach almost 70 disciplines, and each semester we launch about 7 new ones.

    The key feature of our educational projects is that only our employees, about 200 people, teach in them. They convey the knowledge that they themselves directly use in their work.

    Everywhere the emphasis is on practice, there are almost no purely lecture classes. The training is intensive, and about 30% of the students are enrolled.

    In the course of training, students work on educational projects in teams. Thus, they not only master the technologies and tools, but also gain the skills of teamwork, creating a single product in collaboration with colleagues.

    At the end of the biennial program, students are doing graduation projects in which they can solve a problem for one of our business units. Or they can implement their own idea: there are graduation projects that turn into startups. They live independently, children develop them, and some become commercially successful.

    About the internship program


    After completing the training, the best graduates of Technoprojects can go to us for an internship in teams that work in the field of interest. Upon admission to the internship, students who have a biennial program have priority because they are better prepared.

    Every year about 100 interns come to us. They are full-fledged employees with a decent wage and all the attendant benefits - a voluntary medical insurance policy, the opportunity to participate in company conferences, access to sports and entertainment infrastructure, etc. According to the results of the internship, the strongest guys can remain working in a team already as full-time developers. Today, about 80% of new developers come to us from the intern program.

    Recruitment for an internship is so. We publish vacancies on the internal portal, to which any student can respond and come in for an interview. But at the same time, we always give preference to the recommendations of teachers, because they see how much a person is really immersed in the topic, they can advise more powerful students.

    Each intern has a mentor who can be contacted with any questions. That is, it is not the boss, but a person who helps to learn more about the development and work in a large company. The mentor will answer the widest range of questions, from issuing a pass and arranging the workplace to everything related to professional activity and career growth. After all, at the end of the internship yesterday students can apply for a job in our company.

    Internship as a career start


    After an internship, a person becomes a specialist in working on high-loaded projects. For example, Mail.Ru Mail is a highly loaded project, about 3 million people use its web interface at the same second and about the same on mobile platforms. There are more than 100 million active mailboxes in total.

    In addition, it is a technologically extremely complex project, it includes hundreds of different components. Therefore, when you implement some kind of new feature for users, you need to be able to connect many components together and provide a bunch of failure scenarios so that the service runs smoothly, 24/7, on holidays and weekends. Other options do not suit us. This also requires certain programming skills and system design.

    Our interns will learn how to serve a large number of users on a single server. When you program under a personal computer, you have a dedicated resource, practically all your memory, the entire processor and disk. And when tens of thousands of people "live" on the same server at the same time, this requires certain and rather deep knowledge, ranging from the insides and operating system features to the hardware and network.

    Having received such experience, our former trainees can apply for a full-fledged position in the company in the direction of interest. Yes, you need to invest much more knowledge and strength in an intern than in a ready-made specialist. But from our point of view, it is strategically more advantageous to choose promising people from students, because after two or three years, strong specialists grow from them, which are very difficult to find in the labor market.

    In six years of the internship program, there have been plenty of examples when former interns have grown to tmlids and today they are recruiting talented students and graduates for internship, and some have already managed to grow the next generation of specialists. And my story fully confirms the success of our internship program.

    Also popular now: