眠いしお腹すいたし(´・ω・`)

C#関連を主に書きます。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

約10年勤めたソフトウェア会社を退職いたしました。

先ほど9年11ヵ月という長い間勤めました会社を退職することとなりました。

これまで本当にありがとうございました。

在職中には本当に沢山のご迷惑をおかけしてしまい申し訳ございませんでした。

この先もこれまでの経験をベースに頑張ってエンジニア人生を進めていきたいと思います。

10年間どんな仕事をして何を考え何を得たか

私がブログを書き始めて1年もたっていません。

Xamarin族な人というイメージはあるかなと思うのですが私がどんなキャリアを歩いているのかちょっと書いてみたいと思います。技術ブログなので技術の側面をメインに書きます。

どんな分野の仕事だったか

私は10年間、二つのジャンルの市場に向けたシステムの製造を行ってきました。

これらのシステムは大きく基幹システムとネットシステム、リアルタイムシステムの3つに分かれ、私は6割リアルタイムシステム3割ネットシステム1割基幹システムくらいの仕事を行ってきました。

どんなキャリアだったか

1年目~3年目

主に試験と現地納品でした。

印刷すると厚さ40センチ以上にもなる試験仕様書を2~3人でこなし試験が完了するとお客様に納品し使用方法の説明などを行う。

システムの切り替え時は正月、ゴールデンウィーク、お盆などですので1年目の元旦に新幹線でお客様先に移動することになったのは結構驚きました。

これらの仕事でシステムの弱点の探し方、サーバ構成、ネットワーク、ロードバランス、などの知識を得ることができました。

特にシステムの弱点の探し方を覚えたことが大きくて

色々なシステムのテストをした事によって、「こういうシステムはこういう風にできているから、こういうところにバグが生まれやすい」というような事を考える力を身に着けることができました。

メインの仕事ではないですがASP.NETWebForms、PL/SQL、ストアド、C++MFC、ColdFusionなどのプログラムを多少触っていました。

サーバセットアップなどの仕事も少しずつはじめて、主にWindowsサーバですがクラスタを組んだりミラーリングを組んだりロードバランスを組んだり、そういうインフラ面での基本的な知識を身に着けることができました。

4~5年目

4年目のプロジェクトで

WPFを使用したアプリケーションの開発を任されました。

WPFを使用する事も私自身が考えて、一つのアプリケーションを自分で考えて自分で作るということを初めて行いました。

これまでに上司からGoFデザインパターンを勉強するといいよって言われて勉強していたのですが、WPFで開発するにあたってそれらのデザインパターンを適用する事とMVVMというデザインパターンを勉強して開発に取り入れました。

この頃からプログラムをデザインするという事がすごく楽しく感じるようになりました。

きれいに構成できた時の楽しさに惹かれていました。

またネットワーク、サーバ室、サーバラック設計、設置、配線などプログラム以外にも色々な事に挑戦して勉強することができました。

ダウンタイム少なく冗長化でするにはどうしたらよいのか、機器故障をどうやって検出するか、などインフラに関して色々と勉強できました。

またWebSocketを使用したプロジェクトにかかわりDraft76の頃からC++C#でWebSocketサーバを書いたりブラウザのパフォーマンス検証をしたりしていました。

RFCドキュメントをちゃんと読んだのはその時が初めてだったと思います。

5年目には

ASP.NET MVCを使用してECシステムを1から作成しました。

一部にはKnockout.jsを取り入れてSPAな構成を試したりある意味挑戦的なプロジェクトでした。

このプロジェクトは非常に苦しくて炎上してしまい半年の残業時間が酷いことになってしまいました。

ASP.NET MVCを使ったから、Knockout.jsを使ったから炎上したわけではなかったのですが、とにかく色々な面が苦しかったです。

その後Mono For Android(現Xamarin.Android)を使用したアプリの開発などを行いました。

一人でサーバもクライアントも開発しなければならなかったので出来る限り楽をしたくてサーバサイドをWCFで作っていたんですが、それならクライアントもC#で作った方が良いと上司を説得して1年10万円もする開発ライセンスを買ってもらいました。

6~7年目

これまで収めたシステムの改修であったりサブPLとしてプロジェクトの技術面のサポートをするような感じでの仕事をしてました。

この時期はプログラミングやアーキテクチャの側面よりもプロジェクトをどのように運用するべきか、ドキュメントの意味、協力会社さんとの連携の仕方、お客様との仕事の進め方など、そういうマネージメントの側面の方を考える事の方が多かったです。

8年目

以前に作成したWPFアプリのモバイル版の作成案件ができたためXamarinおよびモバイルサービスを提供するためのシステム作成に挑戦しました。

Xamarin.FormsにるフロントエンドだけでなくWebAPIやプッシュ通知などモバイル用のシステム全体を設計して作成しました。オンプレミスな環境なのでMBAASなどを利用する事はできない点で、逆に色々な事を細部まで知ることが出来ました。

このころは、何のためのデザインパターンなのか、何のためのUnitテストなのか、色々と理由を意識しながらアーキテクチャを考えていました。

9年目

転職を本格的に考えたのは9年目のはじめあたりです。

今年は・・・特に何もしていない年になってしまいました。

体調の事情があり3か月程の休職したこと、また所属部署の組織変更が大きくあり思うように仕事ができなくなってじまいました。

ただJXUGに参加したりブログを色々とかいたり仕事以外が充実した年でもあったと思います。

上司のお話

色々な事を教えていただいた二人の上司の方達には大変感謝しています。

2年目くらいに試験アプリを作るためにC++MFCを触っていて「お前はメモリ管理というか、そもそもプログラムを何もわかってない」って怒られたり、問題解決に対する調査方法とかアプローチの方法とか色々と教わったり、デザインパターンの基本を教えてもらったり、数多くのことを教えてもらえましすごく素敵なお二人で今でも大変尊敬しているエンジニアの方々です。

おかねのはなし

残業込みで450万円くらいが平均だったかと思います。残業代なしだと400万円をきるくらいです。2016年は休職していた事もあり350万円くらいでした。

退職理由

色々な理由が積み重なった結果、として退職・・・というか転職することにしたのですが

前向きな理由、後ろ向きな理由もあわせて、大きかった点をあげてみたいと思います。

クラウドネイティブな開発がしたくなっていた

キャリアのところに一切クラウドな用語が出てきません。

今の部署の仕事はオンプレミスの仕事のみであり、クラウドの利用、クラウドネイティブな開発とは程遠いです。

ですがこの先のシステムのバックエンドはどう考えてもクラウドが主流だと考えています。(現時点でそうなのかも・・・)

ですのでクラウドネイティブでの開発を行える環境、色々と学習できる環境に移りたかったのです。

もちろん個人の範囲で色々と触ったり勉強したりすることはできるのですけど仕事で使うことの重要さもあると思っています。

Xamarin記事が多いので意外と思われる方もいるかと思いますが、私自身はフロントエンド・バッグエンド等の場所的なこだわりはなく必要なシステムを良い形で作れる人になりたいという目指すものがあり、その為に必要な技術知識を取得できる環境で仕事がしたいと思っています。

そんな中で「今の私に必要なものはクラウドネイティブな開発技術だなぁ」と思っていたタイミングで良いお話をいただく事ができて転職を決意しました。

関東で暮らしたくなった

勉強会とか関東が多いんですよね。

土日とかなら出られるんですけど平日はちょっと無理です。また往復でお金が結構かかります。(新幹線を使うと往復8000円以上)

できればこの先は勉強会などに参加しやすい地域で暮らしたくなりました。

職場の雰囲気に合わなくなってしまった

私の所属している部署の方たちは皆さん真面目です。8時という早い始業時間に遅刻する人はほとんどいないですし休む人も少ないです。

何事にも完璧を求めバグゼロを目指して常に活動しています。バグを出すことに対して厳しく何とか不具合ゼロを目指そうと頑張られています。

私が入社した当時と同じ技術同じコードを今でも大切に守っています。開発環境も入社当時から殆どかわっていません。世の中がどんなに変わろうと貫き通す芯の強さがあります。

本当に私から見たら凄い方たちなのです。私にはとても真似ができません。

それに比べて私はあまりにも怠惰で不真面目です。

無駄だと思った事はとにかくしたくない。常に楽をしたい。

楽できる仕組みやツールが世の中にあるのであれば積極的に取り入れて試したい。

朝の早起きは苦手。

問題を運用で解決する事は私には難しくて運用ルールを覚えられない。

運用ルールよりもシステム、仕組みで解決したい。

バグはどうやったって出るもの、バグを責任問題だって取り締まって嫌な空気になるよりバグがでにくい開発プロセスや試験方法を考えて萎縮せずに開発できる環境を作ることを頑張りたい。

常に変化し続けたい。

そんな性根の腐っている不真面目な私が真面目な人達の中で仕事をする事がつらくなってしまい仕事が楽しめなくなってしまいました。

やはり楽しくないと感じる事を続ける事は私のような人間にはとてもつらくて長期間モチベーションが低い状態で仕事を続けても質の高いアウトプットも出来ませんしパフォーマンスも下がってしまいます。こんなグダグダ状態の私がいても他の社員さん達に迷惑をかけてしまうだけだと思い、この先のことを考えても転職するしかないと決断する大きな理由となりました。

これから

3月から蛎殻町某企業にお世話になる予定です。

物凄い方たちが沢山いてよい機会だしチャンスだと思って色々な勉強ができればと思っています。

入社後にしばらくしましたらエントリなども書いてみたいと思います。凄い人たちの中に入ったらどう感じるかなど書けると思います。

2月は引っ越しに休息にちょっとの旅行。そんな感じで過ごしたいと思います。

引っ越し先が運よくネコOKな物件だったので小さい頃から夢だった黒猫と暮らせる生活がおくれそうです。

この先もXamarinは当然使っていきますしAzureを中心としてクラウドも使っていきます。

JXUGやJAZUG、C#界隈、Webフロントエンド界隈などの勉強会等参加することもあるかと思いますがよろしくお願いいたします。

去年は勉強会等で名刺などを受け取るばかりでご挨拶もちゃんとできていませんでしたが3月以降は名刺もちゃんとお渡しできるかと思います。

私はこれまで、Microsoft MVPの方々を含めて多数の凄い方々のブログや著書などをたくさん見て勉強させていただいてきました。

これからも沢山勉強させていただくと思います。

そんな方々には遠く及びはしませんが、こんな私の知識や考えた事では役に立たないかもしれませんが、好きな技術の発展に少しでも貢献できればと思いますのでブログを中心として公開を続けていきたいと思っております。

今後ともよろしくお願いいたします。