A way for Java / Scala developers to advance their careers as data engineers.

Job change, the royal road to career advancement

I think that one of the royal roads to career development that improves job satisfaction and treatment is job change. In RPGs such as Dragon Quest, warriors can change to magic warriors and earn more experience points and gold. The following is not a spectacular story like Ryu (job change to), but a light story that is an example of a realistic job change especially for Java shops in the SIer area (including prime contractors and subcontractors).

My 10 years (poem)

Ten years ago, I wrote and ate Java, Scala, and Perl / Ruby for customers in the SIer industry. I'm still writing Java, Scala, and Python, but during that time I experienced a job change from a programmer (freelance engineer) to a data engineer (DE) (a common misconception, not a data scientist). During that time, as an engineer, I became an old man for 10 years, and the speed of writing code dropped, but the number of people taking care of me increased by 1.8 times in terms of hourly rate. Perhaps it will be a good deal for the next 10 years. Well, I don't know the future (the take-home has increased by about 5% in the last six months). In summary, it seems that I wrote only the code, but since the period when I did not write the code is quite long, let's look back a little.

Ten years ago, when Java SE 6 was now. I wasn't a young young man, but an old man now, and I tried to catch up with Java 6 / Scala 2.7 and did my job in those languages. That is, an object-oriented Java (+ sometimes better Java) combo. At that time, after the Lehman shock, which shook the SIer area (as far as I can see). Until then, I was writing stinking code because I was on time for delivery * (Code smells!) *, I had free time and had children. Then, the Great East Japan Earthquake struck on the delivery date of a certain project the following year, and the town I knew and the people I knew were burned down (due to the fire after the tsunami). It was more shocking than the disappearance of Yuki Nagato. For the time being, I canceled the next project, and I imitated rubble cleaning in front of the rubble along the coast that continued endlessly before reaching the Kesen-Numa Line, and for the next three years I did not write code (IT to connect food) I had a tentative relationship with the industry). When I noticed, I saw "A Certain Scientific Railgun S" on my smartphone and wanted my sisters Misaka to use a railgun to blow away the tsunami that came from the outer rise earthquake (old man). It was the arrival of the Android Java project era. Speaking of Android Java, Java 6. That is, it is time for my coder to return. With Java 6, you can manage the complicated state of Android. But it's spicy. The deliveries to our customers are in the neighborhood of SIer, who is an Excel supreme principle, but sometimes Kotlin moves me. At that time, I get to know the buzzword (?) Called GAFA. Well, companies that are accumulating data on the server side globally are strong. Speaking of data, data science, I decided to choose a Python project, although I am weak in statistics. Although Python is a scripting language, it is an object-oriented language, so it can be managed. "Is it wrong to ask for an encounter in a dungeon?" While the first term was flowing, I worked hard while studying statistics, thinking that it might be wrong to be here. After that, perhaps Global Web Trends also has a server as Scala's web share has tripled in three years. Return to the Scala engineer on the side. So, there was a way to continue working hard as an old man Scala engineer, but suddenly Java / Scala + data usage = quite the strongest, isn't it? I changed my job last year and continue to this day. This year, without the outer rise earthquake that was a concern in Sendai Bay, there was a corona turmoil, and I was the first to go down due to viral pneumonia for several months due to poor physical condition (Health Center top). In a certain prefecture where I worked hard, my PCR test was blocked at the water's edge), and thanks to 100% remote work OK, I was able to continue my work just by spending about two days on my vacation.

So what is the skill set required for a data engineer?

Not a big skill.

I was in the SIer industry (plus the free engineer industry, which is in a "project gacha" state), and I have the power to do my best to match the air in the field (within a month). In other words, RDBMS can be used regardless of whether it is MySQL or Oracle, and whether it is a major WAF (Spring / Play etc.) or a mysterious WAF, it is (basically) a little inconvenient. it can. Well, with this skill that is normal as an engineer, you can live as a data engineer. Where is the so-called (big) data stored? It is also an RDB normally. On the other hand, redis is used for cache, and the index is set in ElasticSearch. In addition, the main data storage destination may be NoSQL / SaaS such as Hive / Hadoop, Mongo, Snowflake, etc. But if you're using Java / Scala, who's been learning object-oriented design in the past and domain-driven design in recent years, there's no problem, of course. Peripheral stories of the kind of data storage are outside the onion.

As an engineer, you should pursue proper skills.

For a while, I was in the domestic "project gacha" industry (free engineer area), and I am wondering. The job category of data engineer (DE), which is often seen in global job offers, is rarely found in Japanese projects. I'm not wrong. As mentioned above, an engineer who has reached a certain level can naturally handle the job of a data engineer (DE). But how does it compare to the general fact that the unit price of a data engineer (DE) is significantly different (quite good) from the unit price of a programmer (PG) in terms of hourly rate? Of course, for example, it can be seen that the unit price of an architect who designs (domain-driven) in the upper layer is higher than the unit price of a programmer (PG). A good design eliminates much of the overtime that programmers spend under bad design. However, the layers handled by data engineers (DE) and programmers (PG) are almost the same (in my opinion). However, in the job change market / SES market, I feel that the former hourly rate is 1.2 to 1.8 times higher (personal feeling). Hmmm.

Mindset required for data engineers (DE)

Below, what is a data engineer, if you are interested, please take a look at the following. https://qiita.com/e-a-st/items/42c03c61e4003c3b3ee5

Practitioner (user) << Data, a workplace

I think that there is a value of "practitioner (user) << accumulated data" in the workplace where the occupation of data engineer (DE) can receive appropriate treatment. Whether the annual sales are 1 billion yen or 1 trillion yen, it is the workplace that is said to support the accumulated data. Here, no matter who the practitioner (person in charge) changes, it is of utmost value that master data and transaction data are properly managed. This is a typical workplace where a data engineer (DE) works.

Medium- to long-term perspective and agile mindset

① Data accumulation over the medium to long term as a barrier to entry

In an industry where customers want to pay for the accumulated data, the accumulation of data processed for the customer itself is a barrier to entry. As you can tell, it is quite difficult to keep accumulating data (collecting and processing data). There are high hurdles for new entrants to enter as data providers in an industry where the field needs to write approval documents and management makes decisions by comparing 5 years ago, 10 years ago and now. Data engineers (DEs) are in that industry. Therefore, once you enter such an industry, you will be engaged in the business of stably accumulating data over the medium to long term. Those who hire such data engineers (DEs) will be offered reasonable treatment to avoid the risk of data storage know-how.

② Agile for data accumulation as a barrier to entry

On the other hand, the source of data for sale to customers is often from other companies / public institutions. The format and ID system of these data sources may change due to the convenience of other companies / public institutions. Businesses that provide data to their customers, of course, must absorb such upstream changes internally as much as possible. As a result, data engineers (DEs) belong to a team that can respond timely and promptly to external situations where it is unknown when they will occur. A Scrum (or Large Scale Scrum) team is a typical example. The management of such organizations is required to maintain a team that can respond quickly to changes in the data situation. From an engineer's point of view, when "Nagi" does not happen suddenly, there is time to return on time and try to improve skills. When I do something after the scheduled time, I often get guidance that you will not be involved in work outside the scheduled time. Of course, if something happens, I'll do something about it.

③ In other words, royalties on the data.

As long as the data is properly accumulated, the organization will last. The organization I am in has been accumulating data for more than half a century. Obviously, the code for that is becoming obsolete (many of the codes I see are 50 to 10 years old). Do not stop accumulating data while gradually migrating the code to the now one. This is the responsibility of the data engineer (DE). No matter what the field staff (who haven't taken over from the staff more than 10 years ago) say, the integrity of the accumulated data takes precedence over everything. In order to maintain this loyalty, it is the data engineer (DE) who has the royalties that make full use of all engineer skills, I say that the career classified as a data engineer (DE) is about 3 years. did.

Is it wrong to ask for a career advancement when changing jobs to a data engineer?

Only engineer experience is over 20 years long I can say: it may or may not be wrong. However, I think that changing jobs or changing jobs to a date engineer (DE) is one of the real solutions. Both database design ability and domain-driven design ability are usually required and useful. Especially for those who have lost their way due to some kind of harassment due to something uproar in the corona. Even though I could only get up for about five hours a day, as a result I had little need to spend my paid holidays. Thank you. With that feeling, the data engineer industry is an old man who wants to live a corporate two-story pension life in the future, I say, "A Certain Scientific Railgun T" is over and it is a little twilight. Tokiwadai junior high school students will wear the same uniform for "A Certain Scientific Railgun U (?)" Nearly 10 years from now. Around that time, Predictive Dream says I'm probably also an old man data engineer. Of course, there may be a different world life (second term) where job changes for another career advancement start from scratch.

I'm not going to talk about the rudimentary code reviews and refactorings I'm doing in the Large Scale Scrum Team, which I belong to (because it's embarrassing). If you want to hear about it secretly and want to get proper (or better) treatment according to your engineering ability, please get involved with me on Twitter etc. After all, there is still a shortage of manpower in this industry.

I'm pulling out my gray hair every day trying to become a bald person writing a light novel after reaching retirement age about 20 years later. Shut up, write a light novel, this bald (dead language).

Recommended Posts

A way for Java / Scala developers to advance their careers as data engineers.
I'm looking for a way to return Yes / No of Dialog as boolean ...
I want you to use Scala as Better Java for the time being
An introduction to Groovy for tedious Java engineers
A note for when someone who was Java Java until yesterday came to touch Scala
How to create a data URI (base64) in Java
What Java engineers need to prepare for the Java 11 release
How to create a lightweight container image for Java apps
Read WAV data as a byte array in Android Java
A memorandum to reach the itchy place for Java Gold