GameDev

Development at a state-owned company: how it differs from commercial work, benefits, and salaries

Development at a state-owned company: how it differs from commercial work, benefits, and salaries

Learn: Profession PHP developer from scratch to PRO

Find out more

Maksim Epikhin is an expert in his field, with considerable experience and knowledge. He is actively involved in various projects aimed at the development and implementation of modern technologies. Maxim exhibits a high level of professionalism, which allows him to effectively solve problems and achieve his goals. His work is marked by a number of successful cases in which he demonstrates his ability to analyze and make informed decisions. Maxim Epikhin also actively shares his knowledge with colleagues and newcomers, which contributes to the overall level of competence within the team.

An expert in his field, his extensive knowledge and experience allow him to effectively solve problems and provide high-quality solutions. His professional skills include a deep understanding of key aspects and trends, making him a valuable resource for clients and colleagues. Through continuous learning and adaptation to changes in the industry, he remains at the forefront of innovation and best practices. He actively shares his knowledge through publications, seminars, and consultations, contributing to the development and professional development of other specialists. This approach allows him to strengthen his reputation and draw attention to important issues in his field.

Maxim Epikhin is an experienced PHP developer who draws inspiration from nature and rural recreation. He enjoys horror series and game development, which helps him stay creative and open to new ideas. Maxim runs his own YouTube channel and blog at maximepihin.ru, where he shares his knowledge and experience in programming and technology. Links are an important element of web content, as they provide navigation between pages and resources on the internet. Proper use of links can significantly improve user experience and increase a site's visibility in search engines. It's important to optimize links by using keywords in the anchor text, which helps search engines understand the content of the page they link to. Make sure your links lead to relevant and high-quality resources, as this impacts user trust and your site's ranking. Also, avoid using too many links on a single page to avoid cluttering the content and distracting visitors. By optimizing links, you not only improve your site's SEO but also create a more user-friendly navigation experience. From an early age, I disliked the rules of games, as I found them boring and predictable. I've always wanted to create my own rules. When I first encountered computer games, I had a desire to develop my own unique game.

How I Got into Web Programming Through Games

At school, I developed a 2D Mario-like game about a giraffe looking for a home in Construct Classic. I went on to create two more games, but it was more of a hobby than serious development. I shared my projects with friends, discussed them, and exchanged ideas, which contributed to the development of my interest in game design.

One of my friends became interested in game development and told me about the popular Unity 3D game engine. I started creating 3D games with diverse landscapes and decided to develop a website for one of them. That's when I first dived into the world of web development.

Maxim's game website Loneliness after. Chapter 1. Updated version of 2018. Screenshot: courtesy of Maxim Epikhin

I started by learning HTML and CSS layout, then moved on to PHP and JavaScript programming. The website I created impressed my classmates, and they asked me to develop something similar. That's how I started creating websites for computer science labs and earning my first money in web development. At the university, I launched the service "Shablondger", which allowed students to create and host their own websites.

The main page of "Shablondger". Screenshot: provided by Maxim Epikhin

My passion for web development led me to choose a professional path in this field. I found my calling in backend development and focused on learning PHP. The learning process was not easy: I was often distracted by game development, but eventually I realized that web development offers excellent earning opportunities. This realization prompted me to actively look for a job in this field.

How I got a job at the A.V. Starovoytov Federal State Budgetary Institution CITIS

In November 2018, when I was returning home after another interview, I received a call from the A.V. Starovoytov Federal State Budgetary Institution CITIS with an offer to come in for an interview. I was only a 20-minute walk away and immediately expressed my willingness to attend.

The interview went very quickly, unlike previous experiences where I had to interact with HR, undergo a soft skills interview, and ultimately meet with tech leads. CITIS also employs many smart and experienced developers, but their approach to communication is more friendly. We gathered around a large table and had a general discussion with HR, lead programmers, and a tech lead. During the conversation, I was asked questions about my skills, education, diplomas, and certifications. Next, I tested my knowledge of PHP and databases, and discussed my portfolio.

This interview format allows me to better understand the candidate and their experience, creating a more comfortable atmosphere for communication. This is important because in IT, not only technical skills but also the ability to collaborate in a team play a key role.

Immediately after the interview, I was offered a job, but I asked for a couple of weeks to think about it, as I also had an offer from Roistat. I wanted to carefully consider my choice. Ultimately, I settled on CITIS because I liked the interview atmosphere. Despite my strong skills, I was initially offered a position with a minimum salary to assess my ability to handle the tasks.

My department develops web systems for government contracts. At first, I was intimidated by the scale of the projects, their complexity, and the presence of legacy code, and after just three days, I was considering quitting. However, as the saying goes, only the weak give up, and I decided not to give in. I began actively communicating with management and colleagues, which helped me gradually understand the project, and soon I assumed responsibility. It took two months to adapt to the processes, after which the work became much easier.

Classical education vs. real work: what knowledge came in handy

I completed my bachelor's and master's degrees at the Plekhanov Russian University of Economics, after which I entered graduate school in the only state-funded place. Although the knowledge I gained at the university did not prove useful in my work as a programmer, it significantly helped me in my roles as a manager, analyst, and in everyday life. The training contributed to the development of structural and logical thinking, which is an important skill in any profession.

We study information systems management and IT consulting. We are currently taking a course in systems analysis, as well as data management and processing. Full-fledged development, unfortunately, is not provided for in the curriculum. However, in the "Mathematical Support" course, students are actively involved in programming. It's worth noting that admission to this course was more competitive.

I enrolled in both my Master's and PhD programs to earn the necessary degrees on time and avoid military service. I didn't have high hopes, and I knew I was unlikely to gain any new knowledge. In seminars, we focused on creating BPMN and ERD diagrams, while I was mastering all the skills I needed for work on my own.

Mastering development is impossible without a sincere desire to learn. Try taking on a challenging project that exceeds your current knowledge and skills. This will force you to learn new technologies and libraries. This is how I deepened my knowledge of PHP, mastered object-oriented programming, and learned basic design patterns. This approach not only accelerates the learning process but also helps develop critical thinking and problem-solving skills, which are essential for a successful career in development.

I decided to build a blog system from scratch. To do this, I studied materials on the WebForMySelf YouTube channel and Dmitry Eliseev's tutorials, as well as used tips and resources from open sources. Gradually, I developed a holistic understanding of web development. Yes, this approach requires multiple iterations of the project, but each iteration improves its quality. This can be a labor-intensive process, but if you strive for perfection, it's worth it.

You can find work even with a basic tech stack. Many employers value not only experience but also a desire to learn and grow. Basic skills such as HTML, CSS, and JavaScript can provide a good foundation for starting a career in web development. It's also important to have an understanding of database principles and the basics of server-side development. Familiarity with development methodologies and version control systems such as Git is also a significant advantage. Developing your skills and building a portfolio can significantly increase your chances of finding a successful job. Don't forget about the importance of networking and participating in professional communities, which can open up additional opportunities for career advancement.

  • HTML is a markup language used to create the structure of web pages;
  • CSS — Cascading Style Sheets;
  • JavaScript is a front-end development language, I recommend learning it from javascript.ru;
  • PHP is a scripting language for the backend. You can learn it from the official documentation, which is quite detailed.

Learn key programming concepts, such as operators, loops, and the basics of object-oriented programming (OOP), in the context of JavaScript. It is also important to have a basic understanding of working with HTTP requests: being able to send and receive them. You can master other tools and technologies through practical work.

Learning trending technologies will definitely be beneficial in your professional work, allowing you to apply new knowledge in practice. When I came to CITS, we used our own framework and pure PHP. However, we soon decided to move to more modern and efficient solutions. We chose Yii2 because most of our programmers already had experience with it and it met our requirements. Incidentally, I studied Yii2 in my free time, which was an additional advantage when implementing this technology in my work.

What tools do I use in my work?

Despite working for a government company, I have a standard set of web development tools, which includes all the necessary resources to complete my tasks effectively. These tools help me create and maintain high-quality web applications, ensuring stability and functionality. Modern programming languages, frameworks, and code editors play a key role in this process, allowing me to optimize my workflows and improve my results. My experience using these technologies allows me to achieve high standards in web application development, which, in turn, contributes to the successful implementation of projects within a government agency.

  • PhpStorm is the main IDE for editing and writing code.
  • DataGrip or the free DBeaver for databases. They allow you to correctly manage the database, create queries, have a visual representation of the data and work with it.
  • Postman - to test HTTP requests and see how the database handles them.
  • Standard Linux utilities for system administration, Apache, PostgreSQL, MySQL and others.

In the near future, I am going to learn the Go programming language. Almost every PHP developer sooner or later turns to Go or at least tries it. In addition, I intend to work with MariaDB and MongoDB databases. These technologies will help me expand my skills and increase my development efficiency.

I am also studying Slim - a framework for API development. This tool is attractive for its simplicity and effectiveness. However, achieving high-quality solutions requires delving into a variety of related technologies, which has become part of my training. When questions arise, I turn to PHP Standards Recommendations and Stack Overflow, which helps me find solutions and improve my skills.

How development is structured in a state company

We process restricted information, so our team regularly works in the office. As part of the joint development of a large project, employees' tasks often overlap, which requires active communication and mutual assistance. In this regard, we pay special attention to the development of soft skills. It is important to be able to work effectively in a team, accept criticism constructively, and respect subordination. Such skills contribute to the successful completion of projects and improve collaboration within the team.

At the beginning of my career, I was solving simple problems and actively writing code. Over time, my work evolved into a more strategic role—as the tasks became more complex, I began to devote more time to analysis and decision-making. After being promoted to team leader, I assumed responsibilities for mentoring new hires, managing the team, and conducting interviews. In addition, I now solve complex architectural problems, interact with clients, and conduct systems analysis. My experience allows me to effectively approach project development and optimization, ensuring their successful implementation.

After completing my main tasks, I devote time to helping colleagues or pursuing self-education. Our company encourages and funds employee training. Thanks to this, I took courses in secure software development from Echelon and learned how to develop for Astra Linux. This allows me to improve my professional skills and make a more significant contribution to the team.

The Pros and Cons of Working for the Government

Let's start with the disadvantages. I highlight only two main points:

The salary in our organization is lower than in private companies. However, we offer opportunities for promotion and bonuses. In addition, we have a more loyal management compared to commercial structures, as well as a truly friendly team, which makes working in our company comfortable and enjoyable.

Implementing new technologies requires time and effort. We are developing a modern product, but we face difficulties in integrating current technologies and programming language updates. In a country where security is in high demand, compliance with GOST standards is mandatory, limiting the ability to use the latest technology. GOST standards certify only certain versions, which often leads to the use of outdated solutions.

Despite the initial difficulties, this is not as serious a problem as it may seem. It is always possible to negotiate with higher authorities to approve an updated version of the technology. It is only important to clearly explain why this version is necessary and what benefits it will bring.

Now let's look at the benefits.

Stability is a key factor that provides confidence in the future. I can confidently say that I will not face layoffs tomorrow, and the company's financial position remains strong. We have had no layoffs due to the pandemic or quarantine, and, conversely, many employees have received promotions during this difficult period. This level of stability creates a favorable work environment and promotes the development of both employees and the company itself.

Contact with management. Our organization is free of excessive bureaucracy, which allows for free communication with managers at all levels. You can ask questions, discuss ideas, or get recommendations. Our managers are ready to listen to you, understand your situation, and offer support.

Our team is a close-knit and professional team with a positive atmosphere. We do not have toxic relationships, and every employee can count on the support and assistance of colleagues. We create a comfortable working environment where everyone feels at home. One of our former colleagues left for a private company with a higher salary and now regrets the loss of the friendly atmosphere and unity that reigns within our team. We value mutual assistance and trust, which makes our team unique and attractive to new specialists.

Summary

If your main goal is high income and you are ready to put up with uncertain conditions, choose commercial development. However, if you're looking for a stable average income, security for the future, and the ability to plan for the long term, working in the public sector is the best choice for you. Personally, I also want to earn more, but I prefer the second option. It is important for me to be able to work on personal projects in my free time and combine my main job with freelancing, which provides me with additional income and variety in my professional life.

Check out additional information:

  • Why working in top Russian IT companies is evil
  • Does a programmer need English?
  • What can't be done without JavaScript

PHP Developer from Scratch to Pro

You'll learn to program websites and web applications in PHP from scratch, master the Laravel framework, build cloud storage, and develop a hotel booking service. You can apply for a Junior Developer position.

Find out more