みんからきりまで

きりみんです。

2018年は人生を感じる1年だった

平成最後の2018年ももう終わりですね。
こんにちは、きりみんです。

毎年恒例の1年振り返りエントリです。

去年のエントリはこちらです。

kirimin.hatenablog.com

今年もなかなかに色々ある年でした。
厄年と言っても差し支えないほどに受難の年であった一方、新しい出会いや新しい活動など、始まりと人生の転機を感じる年でもありました。

順番に振り返っていきたいと思います。

バーチャルYoutuberにドハマリする

厳密には去年の後半からですが、今年に入ってから本格的にVTuberにドハマリしました。
VTuber界隈の盛り上がりに合わせて自分が好きなVTuberもどんどん増えていく、YouTubeを見る時間がどんどん増えていきました。
今年はVTuberばかり追いかけていた年だったと言っても過言ではないです。
つらい時期も、VTuberの配信を見て励まされたりしていました。

DroidKaigiで登壇した

2月には、DroidKaigiという日本最大規模の技術カンファレンスで登壇することができました。

kirimin.hatenablog.com

登壇をきっかけにAndroid界隈の友達がたくさん増えたり、たくさんの人に自分のことを知ってもらったりと、世界が広がりました。
最高に楽しかったし、本当に参加してよかったなぁと思います。

バーチャルYoutuberデビューする

VTuberにドハマリした結果、自分もVTuberデビューしました。
元々はLT大会でのネタ用にバーチャルLTというのをやったのが始まりでした。

kirimin.hatenablog.com

半分ネタみたいな感じで始めたのですが、その後どんどん楽しくなり、本格的にVTuberとして活動するようになりました。
VTuberを始めたことをきっかけに、たくさん交流の幅が広がりました。
今まであまり知り合うことのなかった自分よりも若い世代の人やエンジニア以外の人などともたくさん知り合い、刺激を受けました。

退職する

6月で1年ほど所属した会社を退職しました。
詳細は以前書いたので省きます。

kirimin.hatenablog.com

体調(メンタル)を崩す

夏頃に体調を崩しかなり辛い状態になりました。
仕事が出来なくなりしばらく寝たきり状態でした。

micro-kirimin.hatenablog.com

今までも紆余曲折ある人生でしたが、メンタル面でここまで悪い状態になったのは始めての事だったので、とても苦しみました。

技術書典にサークル参加する

技術書典にLive2Dネタでサークル参加しました。
正直体調がかなり厳しい時期だったので、内容はあまり満足出来るものではなく、心残りがあります。
次の機会にはもっとちゃんとした本を作りたいなぁと思っています...。

体調が安定し再び働き始める

冬になってようやく体調が安定し、再び働き始めました。

kirimin.hatenablog.com

現在は週4日勤務の業務委託としてメルペイという会社でAndroidアプリの開発をしています。
優しいチームメンバーや寛容な社風などに支えられ、徐々にエンジニアとして社会復帰してきています。
チーム内のSlackやGitHubでのコミュニケーションが英語のため、英語の勉強になってとても有り難い環境です。

たくさん絵を描いた

体調を崩し仕事を休んでいたことや、VTuberとして活動し始めたことにより、今年はたくさん絵を描いた1年でした。
今年も少しだけ上達した気がします。
来年はもっと上達出来ればいいなと思います。

https://i.gyazo.com/6b267e5c6b3414aed44e7b11716f83ea.png

kirimin.hatenablog.com

まとめ

最初にも書きましたが、とても辛い1年だった一方で、新しいことに色々と出会った年でもありました。
また、自分のスキルや今後のキャリア、人生などについてたくさん考えました。
散々考えた結果、よく分からないという事くらいしか分からなかったのですが、少しだけ吹っ切れたような気もします。

毎年どんどん環境が変わっていく安定しない人生を歩んでいるので、来年がどんな年になるのかは予想が出来ませんが、なりたい自分になるためにアクティブに行動し続けていこうと思います。

来年もよろしくおねがいします。

メンタルを崩して鬱っぽい症状になってからの半年間を振り返る

年末なのでいろいろ振り返ります。

今回は夏頃にメンタル面の体調を崩して鬱っぽくなってからの半年間を振り返りたい。
「鬱っぽい症状」と書くのは、実際には明確にうつ病であるという診断を受けたわけではなく、自己診断として鬱に近い症状であると考えているだけだからです。

事の始まり

今年の6月末で会社を辞めた。
理由などについては以下のエントリに書かれているが、今あえて付け加えるとしたら、辞めた当時からpaymoの開発が凍結されることは知らされていて、もともとプロダクトへの愛着から入社した身としては残る理由があまりなくなってしまったというのがあった。

kirimin.hatenablog.com

7月は休暇を取っていた。
この期間はちょっとしたWebサービス開発の勉強をしたりイラストを描いたり、上海へ旅行したりして過ごしていた。
この頃から実は若干体調があまりよくない状態は始まっていた。

kirimin.hatenablog.com

上のエントリで書いたように、ぼくは不安症状のために心療内科に通っていて、投薬を受けてから症状が改善していたのだけれど、この頃から徐々に薬が効きにくくなったと感じていて、薬の量を増やしてもらったりしていた。

micro-kirimin.hatenablog.com

この頃から、上のエントリのように「自分は本当はあまり能力がないエンジニアなのではないか」というような事をよく考えるようになっていた。

しかし、休暇中というのは時間があるので余計なことを考えすぎてしまったり、仕事による承認が得られなくなったりするので、そのタイミングでメンタルが下降気味になる事に対してはそれほど危機感を持っておらず、「また働き始めたら良くなるだろう」と考えていた。

体調を崩し仕事が出来なくなる

8月になり新しい会社で働き始めた。
やる気はあったものの、慣れない環境で緊張していたのもあり、やはり若干体調がよくない状態が続いていた。
しばらく働いていると、ちょうど現場のタイミング的にあまり自分のタスクがない状態になり、比較的手持ち無沙汰な状態が続くようになった。
「はやく成果を出して職場で居場所を見つけたい」という気持ちと、無理やりタスクを探して毎日時間を潰すような日々が続き、仕事が次第に辛くなってしまった。

また、そのような状態でビジネスについて深く考え語る同僚たちを見て、「今の自分はこれだけの事が考えられる状態ではない。頭が働かない。自分の意見を求められたらどうしよう」と不安になり、とうとう「自分はここで働いていけるだけの人間ではない」と思ってしまうようになった。

今考えると、当時はすでに頭があまり働かない症状が出ており、自分の考えや意見を持って積極的に動けるような状態ではなかったのだと思う。

仕事を休みがちになり、とにかく現実から逃げ出したいという気持ちしかなくなり、最終的に入社から1ヶ月ほどで体調不良を理由に退職を申し出た。
休職という選択も勧められたが、当時の自分は仕事に復帰する時のことまでは考えられなかったし、一度様々なプレッシャーから開放されたいという気持ちがあったので、退職させていただくことにした。

micro-kirimin.hatenablog.com

上のエントリは会社を辞めた直後に書いたものです。

何も出来ない日々が始まる

会社を辞める前から頻繁に相談をしていた母親からは、仕事を辞めれば楽になり体調も回復するだろうと言われていたが、実際にはそうはならなかった。

正社員として堂々と転職したにも関わらず1ヶ月で退職してしまったという「やってしまった」感、自分はやはり仕事が出来ない無能な人間なのだという絶望感、そして偶然にも様々な事情により現金の貯蓄があまり無い状態で収入が途切れてしまったことにより、このままでは数ヶ月も経たずに生活が出来なくなってしまうという恐怖により、更に苦しい状態に陥ってしまう。

この頃、仕事を辞める前後から、自室にいても身動きが出来ないという状態になっていた。
インターネットを見る気力もなく、アニメを見る気力も本を読む気力も音楽を聴く気力もなく、ひたすらに睡眠と空想の間を彷徨うような日々を送っていた。

特に朝から昼にかけてが一番体調が悪く、夕方になると少し意識が回復してきて、絵を描いたりアニメを見たりする日もあった。

この頃に「うつ病九段」という本を読んだ。突然うつになったプロ棋士の闘病エッセイだ。

この本に共感すると共にとても励まされた。
自分の今の症状が一体どれだけ続くのか全く分からない中で、「もしかしたら数カ月後には回復しているかもしれない」という希望と、「このまま何年も休養することも考えなければならないかもしれない」という恐怖の間で揺れ動いていた。

正直、この時は本気でエンジニアという仕事を辞めて実家での引きこもりに戻るという選択肢も考えていた。

この頃、知り合いから業務委託での仕事の話をもらい、とても有り難かった。
まだ自分に声をかけてくれるという事自体がうれしかったし、直近の生活への絶望感が和らいだ事で少し心に余裕が生まれた。
10月から週3日の契約で働くことになった。

9月の半ば頃になると少しずつ落ち込んだ気持ちも落ち着いてきて、気晴らしに絵の練習をしたり、実家に帰り美味しいご飯を食べさせてもらったりして、少しずつ良くなってきているのかもしれないと感じるようになった。
Twitterでは様々な人に応援してもらったり、尊敬するエンジニアの方から温かいメッセージを貰ったりして励まされた。

しかし、9月の終わりが近づくと、また症状が悪化してきて、またもや一日中寝たきりの状態に戻ってしまった。
こんな状態で働くことが出来るのかと不安だったが、経済的な問題もありとりあえず働いてみるしかなかった。

週3で働き始める

体調のせいで頭が全く働かなくて仕事が出来なかったらどうしようかと不安でいっぱいだったが、働き始めるとなんとか仕事に集中する事が出来て少し安心した。
仕事内容はかなり難しく8時間フルに頭を回転させなければ進まないようなものだったが、かえって余計な事を考える暇がなくて楽という側面もあった。
しかしやはり仕事は疲れるので、週3日でも体力の限界という感じがあり、休日になると寝込んで動けなくなってしまう。

8月から9月は、自分への自信のなさやエンジニア生活への疲れなど感情からくる体調不良という感じだったが、10月頃は気持ちの上では「もっとバリバリ働きたい」「早く体調を治して以前のように学習やアウトプットをしたい」と思うようになってきているのに、体調や気力がまったくついてこず一日中ベッドから動けないというような状態で、むしろ症状は悪化しているのではという気もしていた。
食欲もあまりなく、お酒も飲めなくなり、生きてるだけで精一杯というような感じだった。
これらの症状は、この体調不良が単なる一時的な疲れや気分の落ち込みから発生した単純なものではなく、病気なのだと痛感させられた。

その後も体調が少し良くなったりまた大きく落ち込んだりを繰り返していて、落ち込む時はまだ「とても回復するとは思えない。やはり仕事を辞めて実家に帰るしかないのかもしれない」と考えていた。

最初は11月からは週4にという話だったが、まだ体調が安定しないのでという理由で12月からに伸ばしてもらった。

週4勤務になる。そして転機

12月の始め、ちょうど週4勤務が始まるタイミング、大きな体調不良の波が来て落ち込んだ次の週、ハッキリと感じる変化があった。
それまでは体調が良いといっても、どちらかというと安定しているというだけで、体調を崩す以前と比べたら明らかに様々な事に対する意欲や興味が減衰し体力も大きく低下した状態が続いていた。

しかし、その週は体調を崩す以前に近いレベルで前向きな気持ちになれた。
職場での口数も増え、今まではわりと自分の業務を行うので精一杯だったのが、職場の様々な状況が見えるようになった。
急にアウトプットがしたくなり、Qiitaのエントリを書いたりアプリを作り始めたりした。
それまでは人が多いところは厳しかったので控えていたが、久しぶりに参加した勉強会では友人たちと気さくに会話することが出来た。

そして不思議なことに体調が良くなると同時に、早朝に何度も目が覚めてしまうという症状が現れるようになった。
まるでスイッチを切り替えて体質が変わったかのようだった。
一体なにが功を奏したのかは分からないが、それ以来、今に至るまで体調がよい状態が続いている。

今に至る

そんなわけで、最近は体調がだいぶ回復した状態にある。
結局の所、何が病気の原因になったのかも、何が回復の原因だったのかもよく分からない。
交通事故にあったようなものだと考えている。

鬱状態の時に心がけていた事は、とにかく自分を褒めて「えらい!」を口癖にするという事だった。
また、体調が大きく回復する直前に考えいたことは、「今までの自分は、もっとたくさん勉強してもっとたくさんアウトプットしなければという気持ちに追い詰められており、少しワーカーホリック状態だったかもしれない。もう少し日々の生活を余裕をもって文化的に暮らすことを意識してみよう」という事だった。

もちろんこんなふうに考えるだけですぐに病気が治ったら苦労しないが、どうやら自分を肯定するという行為は治療として有用らしいということは聞いた。

また症状が悪化しないとは誰にも言い切れないが、とりあえずはまだエンジニアとしてやっていけそうである。
心配してくれた知り合いの皆さん、ありがとうございました。

エンジニアとして就職してフリーランスになった7年間の収入を公開するよ

このエントリはフリーランスAdvent Calendarの20日目です。

adventar.org

さて、エンジニアとして働き始めてもう少しで7年目になります。 紆余曲折ありましたが、今日もなんとかフリーランスAndroidエンジニアとして仕事をしています。

それにしても最近感じるのは、エンジニアの収入というのは本当にピンからキリまで幅が広いということです。
本人のスキルだけではなく、所属する会社や転職回数、タイミングなどの様々な運ゲー的要素によって大きく異なるようです。
にもかかわらず、やはり収入の話というのはあまり公に話されるものではなく、一体どの程度の金額が適正価格なのかよくわからないという人がほとんどなのではないでしょうか。

そしてそれはサラリーマンの年収だけではなく、フリーランスの単価でも同じことです。
自分のスキルに対して一体どの程度の値付けをするのが適切なのかは、何年フリーランスをやっていても全然分からないし、自分の単価を話すと、人によって「安すぎる」と言う人もいれば「高すぎる」と言う人もいるようです。

そこで、試しに自分の今までの収入の推移を振り返り公開してみようと思います。
これによって、若くてスキルがあるのに適切な収入を得ていないエンジニアの励みになったり、フリーランスのエンジニアの単価交渉の一つの参考値にして貰えればいいかなと思っています。

前提

前提として自分の経歴をまず書いておきます。
通信制高校中退
高卒認定試験取得
・二年生情報系専門学校卒業
・主としてAndroidアプリの開発を行う

振り返り

1年目 2012

1年目は新卒としてSESなどを行う小さなソフトウェア開発会社でAndroidエンジニアとして働いていました。
月給は額面で18万、年収でいうとだいたい230万くらいでしょうか。

2年目 2013

新卒の会社での昇給は1.5万ほどでした。辞めました。
2社目は額面で25万(残業代なし)でした。この会社は色々あって短期間で退職してしまいました。

なお、この年の年末頃にフリーランスとして開業しています。

3年目 2014

フリーランスとして働き始め、エージェント経由で大手サービス開発会社に参画、初期単価はエージェントのマージンを抜いて月額40万でした。

半年ほど働いた頃にエージェント経由で単価交渉をしてもらい、45万にあがっています。

4年目 2015

この頃、同僚のエンジニアに比べどうやら単価が安すぎるという事に気が付き、現場のリーダーに相談したところ、リーダーが偉い人に直談判してくれて、単価が一気に60万に上がりました。

5年目 2016

この年の半ば頃に上記の会社を離任し、知り合いの事業主の紹介で小さなソフトウェア開発会社に参画します。単価は斡旋マージンを抜いて65万だったと思います。

6年目 2017

エージェント経由に戻り、ベンチャー企業に参画します。単価はマージンを抜いて63万。
その後、この会社に正社員として入社しました。年収は650万でした。

7年目 2018

今年です。
上記の会社を夏に退職し、別のベンチャー企業に入社しました。年収は700万でした。
しかし、体調を大きく崩してしまい1ヶ月あまりで退職することになってしまいました。

その後、秋から再びフリーランスとして大きめのベンチャー企業に参画しています。
単価は90万です。

その後100万→117万くらいになりました。

まとめ

これを読んだ人はそれぞれ様々な感想があることでしょう。
しかし一つわかることは、エンジニアの収入は本当に変動率が高いということです。
フリーランスの単価に至っては、言ったもの勝ちと言えるほど差があります。

おそらく新卒で入った会社で今も働き続けていたとしたら現在の年収は300万程度だったでしょう。
もし現在300万以下の水準で働いている若いエンジニアの方がいたら、ぜひスキルアップや技術的アウトプットなどをがんばって収入の高い仕事を手に入れてほしいと思います。

あと、みなさんの単価もぜひ教えてくださいね。

本日は以上になります。
ご清聴ありがとうございました。

きりみんちゃんカメラをつくりました。

こんにちは。きりみんちゃんです。

このエントリはVTuber Tech#1 アドベントカレンダー4日目の代打です。 VTuberの配信システムに関するネタじゃなくてすみません。 でも代打なので許してください。

qiita.com

VTuberの写真が取れるアプリをつくりました

さて、きりみんちゃんカメラというAndroidアプリをつくりました。 ひさしぶりの趣味アプリです。

play.google.com

きりみんちゃん((バーチャル幼女プログラマー(VTuber)))のお写真が撮れます。

https://i.gyazo.com/bcd27483f5164cba4254e62e4f36414b.gif

こんな感じの写真を生成することができます。

https://i.gyazo.com/327a5439a67fbcae10e8f575856ecd9d.jpg

https://i.gyazo.com/1e894cd85a41793d62f1577515a04e2e.jpg

https://i.gyazo.com/bf1d7d21c2adadc18c64cb4a4ef5f4d7.jpg

実装について

小さいアプリを愚直に作ったのでそれほど実装について語ることはありませんが、画像処理を久しぶりにやってちょっとがんばりました。

実装方法としては、取得した写真の画像ときりみんちゃん(フレーム)の画像をそれぞれUI上ではImageViewで表示し、保存時にImageViewからBitmap化し、Canvasを使い2つのBitmapを合成しています。

ImageViewから取得した素のBitmapをそのまま合成してもサイズがレイアウト上での表示サイズと異なるため正しく合成できません。 そこでレイアウト上での表示サイズを計算しリサイズしてあげることで、ユーザーが見た通りの画像を出力することができます。

だいたいこんな感じの処理です。

        val baseBitmap = Bitmap.createBitmap(photoImageView.width, photoImageView.height, Bitmap.Config.ARGB_8888)
        val canvas = Canvas(baseBitmap)

        val photoBitmap = (photoImageView.drawable as BitmapDrawable).bitmap
        val photoSize = computeBitmapSizeFromDynamicImageLayer(photoImageView)
        val scaledPhotoBitmap = Bitmap.createScaledBitmap(photoBitmap, photoSize.x, photoSize.y, true)
        canvas.drawBitmap(
            scaledPhotoBitmap,
            computeCenter(baseBitmap.width, scaledPhotoBitmap.width),
            computeCenter(baseBitmap.height, scaledPhotoBitmap.height),
            null
        )

        if (frameImageVIew.drawable != null) {
            val frameBitmap = (frameImageVIew.drawable as BitmapDrawable).bitmap
            val frameSize = computeBitmapSizeFromDynamicImageLayer(frameImageVIew)
            val scaledFrameBitmap = Bitmap.createScaledBitmap(frameBitmap, frameSize.x, frameSize.y, true)
            scaledFrameBitmap.density = photoBitmap.density
            canvas.drawBitmap(scaledFrameBitmap, frameImageVIew.left.toFloat(), frameImageVIew.top.toFloat(), null)
        }

いろいろとハマりどころがあったのですが、その知見はまたQiitaなどに書こうかなと思います。

ViewやCanvasの座標計算はむずかしいですがやりはじめると結構たのしいです。

リンクなど

このアプリはGitHubソースコードを公開しているので、Androidプロジェクトの構成が多少読める人(リソースの位置など)であれば、フォークして自分のオリジナルカメラアプリを作ることが出来ると思います。きりみんちゃんは権利を主張しませんが、きりみんちゃんに言及してくれたらうれしいです。 github.com

きりみんちゃんはVTuberとして技術系の動画や雑談配信、ゲーム配信などを行っています。興味がありましたらぜひ見てみてください。

www.youtube.com

twitter.com

簡単と聞いたbuild.gradleのkts化でハマって一日溶かした

Qiitaに書くほどちゃんとした知見に出来なかったのでこっちに書く。

仕事でやってるプロジェクトがgradle.kts化されてて、もうプロダクションレディなのかーと思って手元でも試してみようとしたらやたらハマった。

build.gradle.ktsへの書き換えとハマリポイント part 1 - Qiita

こちらのエントリなどを見ると以前はsettings.gradleにpluginManagementを書いたりする必要があったみたいだけど、最近の情報を見ると単純にbuild.gradleファイルをktsにリプレースするだけで完了するっぽい事が書かれていた。

Migrating Android App to Gradle Kotlin DSL 1.0 – ProAndroidDev

Multi-flavoured Kotlin DSL build script for Android App

そこで実際に手元のプロジェクトで試してみたら、どうもうまくいかなかった。
app/build.gradle.ktsでpluginsが読み込まれずにandroid {}配下などがすべてエラーになったり、プロジェクトを読み込み直したらそもそもgradleプロジェクトとして読み込まれなくなったり...。

いろいろ試行錯誤して原因を探ったけど分からなかったので、とりあえずGitHubからgradle/kotlin-dslをcloneしてきてその中にあるhello-androidという最小サンプルっぽいものをAndroid Studioで開いてみたら、これもgradleプロジェクトとして認識されなくてエラーになってしまった。

kotlin-dsl/samples/hello-android at master · gradle/kotlin-dsl · GitHub

これは手元の環境になにか問題があるに違いないと思い色々試行錯誤した結果、マシンに古いバージョンのGradleがインストールされていることに気が付き、これがgradlewの代わりに読み込まれるなどの悪さをしているかもしれないと思い、アンインストールしてみた。

そして.gradleと.ideaを削除しプロジェクトを開き直すと、上記のサンプルプロジェクトは無事に読み込みに成功しビルドすることが出来るようになった。

これで一件落着!かと思い、手元の自分のプロジェクトも読み込もうとしたら、やはりgradleプロジェクトとして認識されずエラーが出てしまった。

https://i.gyazo.com/dbcea73bcdd40d421df5fb6c63c25ecb.png

そして原因が全然分からないまま何度も何度も.ideaや.gradleを削除してプロジェクトを開き直したりしていたら、突如読み込みに成功し、ビルドできるようになった。

結局のところ何が原因だったのかはよく分からず、これといった知見を残すことも出来ずに大量の時間を溶かして終わったのだった...。

という話を悔しいので書きなぐった次第です。
何かの参考になるかもしれないので、リプレースした時のコミットログを置いておきますね。

replace gradle files to kts · kirimin/WhoOnGitHub@e3e7154 · GitHub