“We train specialists of all levels”: EPAM about Java development and conferences
EPAM name is known to almost everyone. But not everyone knows that the company, among other things, is engaged in bioinformatics, that it appreciates the full-stack of developers, and its internal system of training / retraining is designed not only for juniors, and architects sometimes act as mentors.
In the run-up to the Joker conference, at which EPAM will be actively present, we asked the company staff questions about Java development and everything around it. Our interlocutors are: ')
Marianna Okrugina , Director of the St. Petersburg office
Alexey Zinoviev , Java / Big Data Trainer (Speaker Joker 2016 and not only)
Vyacheslav Lapin , senior developer (Speaker Joker 2015 and not only)
Polina Panyukova , Marketing Specialist
Marianna Okrugina
- What gives you participation in a Java conference?
- For us as an IT company with many customers in different countries, as well as for our employees, participating in such a conference is primarily an opportunity to show the professional community which projects we are implementing, which problems we solve and how, and also exchange experience and hear new ideas.
- Tell then here: what interesting projects are you implementing now?
- There are a lot of projects. For example, in the field of solutions for processing large data, we have projects for processing the human genome, for research in the field of pharmaceuticals and analyzing clinical data, creating information platforms based on semantic networks, for managing investment portfolios and analyzing the functioning of cable and Internet delivery networks -providers.
In addition, one of our divisions specializing in biomedical research (Life Science), in addition to developing solutions for customers, is actively involved in the development and maintenance of various open source projects in the field of chemical and bioinformatics. For example, we are involved in the development and optimization of a number of important bioinformatics programs / utilities with open source.
Our contribution allows us to use the know-how and experience as the basis for specialized solutions to specific customer production tasks. This includes porting and adapting research results and specialized tools (for example, from Perl and Python and even from C / C ++ to Java), optimizing performance, finding the best solutions both in terms of algorithms and working with code.
Finally, a total rework of legacy code to adapt to high performance computing based on parallelism, including the same Apache Spark, Apache Ignite, and others. All this is a consequence of the need to move in the field of biomedical research from scientific advances to building high-performance production pipelines (pipelines) for mass processing of clinical data rather than research.
- What is the role of Java as a whole in the company, and why is it preferred in these cases?
- Extremely important, more than 75% of projects are carried out on this technology. EPAM develops applications in the areas of finance, communications and media, biomedical research and healthcare, solutions for online commerce and entertainment - and Java is in demand in all these areas without exception.
The choice of Java is largely determined by the technical requirements for the resources needed to solve the problems of our customers. Of course, the maturity of the platform, the large number of available solutions and libraries, as well as the ease of learning and the availability of specialists on the market are essential.
- What technology do you use in the case of Java?
- In the area of big data processing solutions, we use the following technologies, fully implemented in Java or providing Java API: Hadoop, Spark, Ignite, Flink.
Alexey Zinoviev
- What will you talk about on Joker?
- I have already formed a regular audience, waiting for the “next series” about Big Data. I started with a story about how to do Data Science on Java in 2014, then we went deep into NoSQL and Hadoop . Spark is next in line, which is logical, but Spark is not simple, but real-time.
In the summer, a hot and interesting Spark 2 came out. At the moment, I have a certain amount of combat experience with him and his “endless DataSet”, a special layout of objects in memory and the problems of this revolutionary, but not finished release. We will also look at the junctions of the data processing engine itself and its friends (Kafka / Samza / MLlib), this data is supplied in groups or individually.
If you have never worked with Spark / Hadoop, then on Joker you can first listen to the Spark API in the report of Zhenya Borisov, this will be a good prologue to mine.
- Not everyone needs Big Data.How much is she demanded specifically in EPAM - are there many projects related to her?
- In EPAM there are several growth points of expertise in Big Data, and one of them is in St. Petersburg (it seems to me that the most powerful, but there are different opinions on this matter), there are a lot of projects, experts are very bearded, spinning in the first Hadoop assembled without any holy images, like HDP.
Since the sphere itself and the number of tools are large, there are already some specialties: someone is engaged in graphs, someone with special file storage formats, someone with analytics and ETL, someone with neural networks and other machine learning. There are things to do at different levels - from DevOps to negotiations with the customer.
- You are in EPAM "Java / Big Data Trainer" - what exactly is behind this?
- In EPAM, we have a very powerful system of training / retraining for specialists of all levels, not only the youngest: from juniors to seniors. There are serious mentoring programs where a program participant gnaws at the granite of science and practice under the guidance of a leading programmer or even an architect.
In particular, I supervise two programs, at the same time reading trainings in them: one program helps self-confident Regular Developers to close gaps in knowledge of Java Memory Management, Spring, Concurrency, etc. to move to the next level of professionalism, and another program forms the skill of working with the Big Data stack technologies (Hadoop, Hive, Spark, Kafka, Cassandra) among mature Java programmers.
Work in a team, deployment, coding, solving non-trivial tasks in front of everyone, communication in all of this is no end. Adrenaline and new challenges - every day.
Vyacheslav Lapin
- In EPAM you are a senior developer - and what exactly are you working on?
- My official status as Senior Developer (D3, as we say) is currently changing, and I plan to do it this winter.
Formally, I am half the trainer, half the team lead of one bioinformatics project. But I try to position myself in the company primarily as an implementer of technological innovations. Any innovations have a chance only if they are owned by such a critical mass of employees that they cease to be indispensable, and this results in my coaching activity. In other words, I am creating an environment in which I could rather simply offer advanced technological solutions on projects that place increased demands on the technical competence of developers, since I can easily find people who own these technologies at a fairly professional level - at least from among their students.
- And what exactly are you implementing now?
For example, the idea of creating a small Scala-group of students was adopted not so long ago - mainly due to the fact that in many of our projects we use Spark, which provides a more advanced API for Scala than for Java. On a large number of projects instead of Maven already use Gradle. In some we use Lombok.
Now I’m finishing intensive training for the frontendder group: in addition to the JavaScript tricks ES2015, they taught TypeScript 2.0, gave a small introduction to Vue, they will also be given React and Angular (including Angular 2, which was released only in September). Perhaps the next group will tell more about Riot. I tell the guys that I teach basic Java what will happen in Java SE 9, Java EE 8, for the older group I am preparing materials with the Spring 5 review.
My efforts are mainly focused on attracting the attention of EPAM developers to Java 8, on the one hand, to broaden the scope of its application as much as possible, and on the other hand, to prevent the profanation of such a transition. Prevent a situation where, using Java backward compatibility, the project simply replaces anonymous classes with lambdas and iterates collections using the for loop and replaces them with a call to the forEach method - and that’s the end of the transition.
Viktor Polishchuk from Infopulse read a wonderful legacy report on Joker past, showing that if you let people use the latest fashion technologies that have no application experience yet, then programmers will very quickly make a project out of this with a lot of pain. Yes, in general, this is probably true, and by inertia many experienced developers, PMs and customers are skeptical about these new products - they say, they are pushing another raw new thing, persuading them to become free beta testers ... But applying to new features of Java 8 is not the case: in fact, Java simply became functional (or “functionally similar”, as Sergei Kuksenko put it), like many languages before it. So my point is that, without examining the issue, of course, you do not need to “make a fuss”, “inventing a bicycle”, but you just need to look at other functional languages and learn from using all these tools from there.
- Is your interest in languages like Clojure and Groovy also somehow realized in EPAM, or is it “for the soul”?
“Interest does not lead to the transition of projects from Java to these languages, but I would not say that this is just“ for the soul ”: I primarily perceive these languages as an experiment. Every language, every technology enriches you with new coding techniques. And if the main language in which you write is sufficiently developed, then, as a rule, practically any good technique that has already been tested in another language can be tolerably implemented.
For example, Lombok in combination with lambdas of Java 8 is, of course, somewhat inferior in the elegance of Groovy, but in a real project it is much easier to start using Lombok and Java 8, and most of the real problems that arise also solve this problem. And so with many others. When I see some feature in some language, I immediately ask myself the question: is it so good? Do those who write in this language use it, and what kind of pitfalls does it have? If it is widely used and the problems that it solves are relevant for Java projects, then I have the following question: can this be solved in a similar way in Java? And as a rule, a way, though not so elegant, is located!
- You speak at both Java and JavaScript conferences.How much is EPAM characterized by such “multi-leveling”, is there full stack developers, or do you find yourself an exception?
- Full-stack developers in EPAM are and, as far as I can tell, we are very fond of projects. The fact is that quite often there are some “swings”: first, on the project, the tasks are dominated by the frontend, then by the backend. Because of this, a highly specialized developer finds himself in a situation where his tasks are “empty or thick”, and the full-stack developer of the task will always have it. However, it is rather difficult to “keep a finger on the pulse”, tracking and studying new technologies in a timely manner in two so different worlds.
- One of your reports is called “Low Level Programming in the Browser,” but how interesting is the low level in general, and do you have to deal with it when working in EPAM?
- Basically, the issue of lowering to a lower level arises when tuning performance. And tuning is usually done at a rather late stage of the project, when it is already in production and just the increased loads show that the code base does not work well enough. But it is on the back end. In the context of the browser in that report, I talked about WebAssembly, a technology that will bring the performance of the SPA to a level that will finally erase the difference in the performance of window interfaces (GUI) and Web interfaces. As for my interest, I’m interested in solving the problem of balancing between clear code and high performance, pushing a fork as far as possible, where you have to choose between these two qualities. I try to consider each new technology primarily through this prism.
Polina Panyukova
- In order to declare yourself, you use different channels.What are the advantages of a conference, how important is the opportunity to "look in the eye"?
- The conference is, first of all, an opportunity to meet and communicate with real employees of the company, with those who can answer all your questions. Usually at the stand you can meet our experts who can share their experience. We ourselves prefer to do offline conferences, so that there are more opportunities to "look in the eyes."
- Since Joker is taking place in St. Petersburg, I want to know: what role does your office play in this city?
- Petersburg is a priority and strategic point. The St. Petersburg office is growing very actively, over the year we have almost doubled. Now we are 1500. This dynamic, of course, means that more and more projects are coming to our office. Here we have completely different projects in all domain areas, from bioinformatics to banking projects and e-commerce. Moreover, we are now trying to actively join the urban IT community, we are doing external events: ITsubbotnik, Global Day of Coderetreat.
- And if at the conference someone is interested in the opportunity to work in EPAM, he is usually interested in an office in the same city, or in others?
- In fact, more often they ask in general about working at EPAM. Of course, we talk about our relocation opportunities for employees, we have the program “Career without borders”, within which you can get a job at any EPAM office. Now we are actively looking for those who are ready to go to Poland, Belarus and the USA.
- Do they say you "wanted to work for you because of the report of your speaker", or can the impact of a specific report be measured only indirectly?
Yes, it happens. I talked to colleagues from the team of recruiters, they say that the candidates talk about what they saw speakers from EPAM at conferences. But it is difficult to assess the impact of a particular report, the guys come up every time with new topics, rather it is a cumulative effect.
- In EPAM there are educational programs for students - can you tell us more?
- For students of PM-PU SPbU, ITMO, Polytech and LETI there is an opportunity to get free training at the EPAM Training Center in the following areas: Java Basics, Development on the .NET platform, Test Automation, Basics of FrontEnd-development. Also in 2014, EPAM opened a joint IT training laboratory at LETI, the main areas of study are Java and C # programming languages.
- Thank!We’ll be waiting for a new report on Joker from Alexei Zinoviev, but for now let's recall some of the previous Java reports from EPAM speakers: