[JAVA] About two months of working from home for an engineer diagnosed with viral pneumonia.

Foreword: I read a memorandum of Mr. Watanabe.

The real name was released on April 1st, "[Do you call this" mild "? I read "Notes by Kazumasa Watanabe" (https://forbesjapan.com/articles/detail/33415/1/1/1) while I was hospitalized for the new corona infection. Of course, I don't know, but he seems to work in Roppongi. It seems to be spicy in various ways. .. The urgent declaration will have a lot of impact on people in the IT industry. So, as a reference, I was diagnosed with viral pneumonia by a CT scan I received at my own expense three weeks after being paid in advance at the health center while fainting in my room in late February. I decided to write a poem that looks back on this February of me (middle-aged ♂). It's embarrassing though. .. As for the situation, I did various things at home in the first January when my condition was bad. In less than a month after the recovery, I think I was able to recover some. As for attendance, I am allowed to work for two months (thanks to an understanding workplace).

(Appendix) CT diagnosis and blood test

I had a CT scan (at the 4th hospital) because my breath sounds were strange even one month after I had a fever (even though I received a separate medication after a positive reaction in other tests). , Viral pneumonia is diagnosed because pneumonia remains in the area where the virus settles (it seems to be the following) (explained while looking at some cross-sectional views below). => I'm going to have a full-scan version of the immune system, so I'm told that I'm going to pay, and blood is collected.

Image.jpeg => Thank you for the advice I received from the doctor. ... As a result, the money has decreased, but now it seems to be completely cured.

For those who are feeling sick now.

... Now that the urgent declaration has been issued, even if you are in a suspicious condition, bring equipment (PC / related books, etc.) that allows you to continue your work when you go to the corona inspection. We recommend that you go to a hospital or health center. Once I entered the line that might lead to the inspection, I wondered if it would be difficult to leave halfway.

Start

As a middle-aged data engineer, I had a slight fever in mid-February. After that, I decided to spend a few days at home. Mostly wrapped in a futon and continued to work. After sleeping well every day, my symptoms got worse on the weekend when I was trying to catch up. I think this is bad on Sunday, so I search for "corona" from the futon and call the area, but I find out that I can't get a PCR test for corona unless there is a good reason. The phone itself has not been connected since the beginning of the week. ... I will explain in detail below, but after being able to move, I will continue to suffer from hypothermia, which is the opposite of a slight fever (in short, it is usually cold while I am awake). Also, because I don't have a cough, I can't reach the national standards.

Some things I did before the release at the end of the year, and a reflection.

① Release delay due to degreasing

Physical condition aside, the release schedule is approaching. With a head that works only about 3 hours a day, while doing the remaining tasks, I will fix bugs and points that came out in the unit test ... It will be released in less than half a month after my physical condition recovers. When creating a demo in the host environment, I notice degreasing around validation. .. .. Since it was already the last minute, I apologize and ask to postpone the release time until the beginning of the week. When I calmed down, I was doing it.

The cause is my long-standing habit. Since the days when Java was used in the old days, when input was complicatedly validated and an error report was issued, the error that came out was put into the collection entirely. In other words, if the return value of the validation function is written in sequence (Seq) as pseudo code of scala,

ret = Seq ("Error reason 1", "Error reason 2" ...)

If Seq is empty, there will be no error. Yes, I had a habit of checking with ret.length == 0 (of course, on the validation function side, ret isn't null).

The next morning after apologizing, when I looked at the fucking long code around validation, I found that one part of the code that should have been ret.length == 0 is ret == 0. .. .. .. In scala, this judgment does not result in a compilation error and is always false. ... it's degreasing. ... my colleague's coder isn't Japanese, so the degreasing report isn't a degradation, but a regression that somehow brings regret to my mind. It's embarrassing to write the details, so I decided to report it as silly regression. Later, lately, the code that wrote xxx.lentgh == 0 for the collection was replaced with xxx.is Empty. => There are various descriptions around this on qiita. If you are interested, let's google around `java list is empty".

Lesson 1

When sick, various abilities decline. Don't cut corners and get into the habit of safe-shaking coding so that you can manage when that happens. It's good to keep waving code safely in your daily writing, rather than reading some articles about type safety or null safety.

(2) Useless implementation because it is not possible to hear.

I belong to the Large Scale Scrum (LSS) team. Since security is important, we don't know exactly where the data center is. However, the server is managed in standard time in the eastern part of the United States. As the delivery date approached, the data was saved with UTC time stamps according to the rules, but at what time zone did you check the log for users ...? Since the stakeholders of my team are Japanese, I make inquiries, but there is no answer. Apparently, he had the flu. I didn't have much time, and I thought I should be able to output the output in either UTC or JST ... but there is no conversion to JST in the provided library. .. .. Hmmm, for the time being, I'm going to add conversion logic to JST ... but the libraries enforced by the convention are not allowed to be inherited (sorry, there are only Tehepero-like comments). I hurriedly contacted the eastern part of the United States, but the answer did not come back (Ah, I have a headache but English is hard) and the development server stopped responding and was left unattended (reported in Corona in the United States) It was a weekend around ...). Hmmm, this is bad, I have to do something, I created it just in case the creation logic to JST in the environment where the setting on the server side is different. I ran it locally, then in a test environment, but it didn't work as intended. ... the code is embarrassing, so I won't write it. ... I was quite impatient, but I was contacted by a stakeholder and learned that conversion to JST was not necessary in the first place. ... As a result, I wasted time and physical strength, and I could not make it in time for the degreasing correction of ①.

Lesson 2

The more impatient you are, the more normal you are. I want you to be able to ask a third party if your implementation is really needed. Before rushing your hands.

③ (Private life) Continue risky investment while being feverish ...

I will omit it because it is embarrassing, but for about 10 days when I returned to normal heat, I changed my mind without having the motivation to write code, I made a short-term investment, failed with a ** very high probability **, and lost 3 digits of 10,000 yen Has been generated. .. .. My heart hurts more than my lungs. ..

Lesson 3

Don't rush just because you can't write code. I'm impatient and the melted money won't come back, but my impatience will more than double and come back. ..

Salvation

Since I am a perfect attendance award at home for two months, I am able to live because I am getting a salary that exceeds the loss.

What I did after I recovered.

① Return to work

Of course, all you have to do is deploy and release. It was late for 3 days (+ weekend). .. ..

② Care for impatient heart

Whatever the illness, after sleeping for quite some time and recovering, there is probably a good chance that there will be nights when you can't sleep. Because the body has been sleeping too much for a long time. After realizing that, I decided to study for future career advancement after the scheduled time. ... you don't have to worry about career advancement, but during the recovery period, you should think about what you should do to regain your normal spirit. I'm a former application engineer (temporarily a web engineer) and recently a data engineer who mainly uses sparks. I'm already a good age, but of course people around me are telling me to DevOps. ... but unfortunately (Jenkins in special circumstances) and ansible and terraform (and other Hashicorp stacks) were not good at it. On a sleepless night, though, I've been eating these for a decent amount of money, so looking back, what can I do to become a MlOps engineer who can handle everything from edge nodes on the web to machine learning behind the scenes? Think about whether you need it, and try to reduce your weaknesses by creating your own pros-cons. ... mainly to make up for weaknesses (cons).

--A little tool behind the scenes: I think it would be nice to make a single binary with Go ... I don't want to write golang unless it's forced ... Would you like to write it in vlang for a change? --Do you want to make something later: (front end) + (edge node) + graphql + (back end)? ――Front end: I don't like to learn a lot, so I'd like to swing to Svelte, which can be done with pureJS, but I reconfirmed that it was elm when I scaled. --Edge node: It's the SSR era, so let's get acquainted with the nodejs neighborhood. Is there a nest with a high degree of abstraction if it is typescript ... If you leave authentication around to firebase --Backend: neo4j looks like I've seen it a little inside. However, if it is combined with graphql, it is safe to bite the dead RDBMS in between ... Then graphql with Postgres, this is ...

After all, I feel that learning is not progressing around MLOps, but I don't really care (=> present progressive tense, I will write something). It is important to consciously regain everyday life.

On nights when I can't sleep.

It's probably not good to leave your current workplace or what you've done, and on the other hand (for those who don't have a solid religious spirit) to cling to something mysterious, so your professional ethics and standing position I think it's good to look back. If you are an IT engineer, of course, this is an opportunity to reconsider your future as an engineer.

For the future.

I strayed like this, but like a development team that lasts 24 hours in each time zone, I was grateful that I could develop and deploy no matter where I was in the company. Even if you're asleep during the day, you can deploy your code late at night or early in the morning.

A little addition.

As a result, I was saved by the team, but I missed the fact that there were no Japanese engineers on the team. With that said, I'd be happy if you could get involved in the twitter area, such as when you're having difficulty working from home because of this. Also, if you are an engineer who has done SES projects in Japan and you are familiar with Scala / Java skills, would you like to join our team? It's a foreign company, but even if you can't speak English very well, if you can read the code, you can do something about it. I was asked by the team to gather people, and I was also talking to a human resources agent, but with Scala ∩ English, Japanese engineers did not hit so far. ... Qiita-san is a technical media that has become well established among Japanese engineers, so I wondered if he could do something about this engineer human resources problem as a business. Oh, I wondered if I should make a service myself.

Recommended Posts

About two months of working from home for an engineer diagnosed with viral pneumonia.
What an inexperienced self-taught engineer felt after working part-time for two months at a web-based in-house development company
About the usefulness of monads from an object-oriented perspective