たばりばりスタイル

たばりばりスタイル

バリバリバリ⚡︎

独立してから健康や身体に気を遣ってる話

僕は独立してから健康や身体に気を遣うようになりました。

現在、業務委託契約で働いているので、月に決まった時間稼働しなければいけません。よくある 160h を基準にした 140~180h のレンジで働く形態です。

1日に稼働した時間に影響は受けますが、月に大体18~22日は稼働しなければいけない形です。

軽い風邪程度で数日休むくらいなら問題なさそうですが、体調を拗らせて1週間休むとかは簡単にはいきません。なので身体を崩さないように、健康について意識するようになりました。

会社員時代はハードワークで残業も多かったため、食事や睡眠もかなり不規則になっていました。学生時代と比べて体重も増加し、健康診断も再検査(主に脂肪肝)が当たり前のような状況でした。

独立した今は守ってくれる企業という存在がなくなったため、気を遣うようになった感じです。

僕のエンジニアキャリアのバイブルにしている「SOFT SKILLS」でも健康面について触れられていました。

本記事では、実際に実践していることについてまとめてみます。

🍙 食事面

食事面では、糖質や脂質を多く取りすぎていたので、それらを抑えてタンパク質も取るようになりました。

PFC(タンパク質・脂質・糖質)バランスを意識しつつ、摂取カロリーが消費カロリーを超えないように意識してます。

食品で言うと、ファーストフードやカップラーメンやお菓子を控えつつ、ホエイプロテインや卵、鶏胸肉、魚介類を食べるようにしています。

自炊も行うようになり、コンビニへいく回数を減らしました。 よく作るのは、卵料理や鶏ハム、牛脂スープ、サラダなどです。

不要な脂肪の減少や、病気になりにくい身体が作られることを期待してます。

🏃‍♂️ 運動面

運動面では、有酸素・無酸素の運動を生活に取り入れるようになりました。

休日に1時間ほどのウォーキング、三日おきにダンベルを使った筋トレをしています。ストレス解消や内臓脂肪の燃焼、消費カロリーの増加を期待しています。

筋トレの内容は下記です。

筋トレは自宅トレですが、今後負荷を増やしていくのが難しく、ジムへ通うことも考えています。

💊 栄養面

栄養面では、不足している栄養素をサプリメントで摂取するようにしています。

現在摂取してるのは下記です。

身体の炎症を抑えることや、エネルギー消費を助けることを期待しています。

結果

特に身体への変化を実感することはありませんが、体重も減り、健康診断の結果も良くなり、身体年齢測定アプリでも実年齢より低く測定されるようになりました。

今後

健康や身体のことについて色々読み漁っていると、発信者によって情報が変わるため、自分の身体の変化を見つつ適宜実践内容を変更していくつもりです。

まだ20代ですが、これからもフリーランスとして働き続けるために健康について勉強していきたいと思います。

独立から一年半でこれまで受けた商談の結果

独立してからもう少しで一年半になります。
この機会に独立してたからこれまでに受けた商談の結果をを忘れないように残しておきたいと思います。

以下、僕のこれまでの商談結果です。
※ 商談まで進まなかったものは省いてます。

案件概要 主な技術スタック オファー 案件探し
遠隔医療向けカルテサービスの開発 Rails/React/AWS × エージェント経由
おやつ宅配サブスクサービスの開発 Rails/AWS エージェント経由
ビジネス解決力を評価するサービスの開発 Rails/React/GCP エージェント経由
製造業者向けマッチングサービスの開発 Rails/Vue/AWS エージェント経由
宅配業者向け業務サービス開発 Rails/Scala/AWS × エージェント経由
ブロックチェーンを金融サービスのインフラ構築 AWS/GCP/k8s × エージェント経由
オンラインストア開設アプリのツール開発 Rails/AWS/Shopify エージェント経由
オンライン診療サービスの新規開発 Rails/React/AWS エージェント経由
ゲーマー向けのSNSサービスの開発 Rails/Unity/AWS エージェント経由
オンライン服管理サービスの開発 Go/React/AWS × Wantedly
転職支援サービスの開発 Go/Next.js/AWS Wantedly
遠隔診断支援サービスの開発 Go/React/GCP/k8s Wantedly
仮想通貨マイニング環境インフラ構築 AWS Wantedly
アルバイトマッチングサービスの開発 Go/Rails/AWS × Wantedly
車両の移動データ収集、解析サービスの開発 Go/AWS/k8s Wantedly
事業主向け人事労務支援サービスの開発 Rails/React/AWS/k8s Wantedly

「フリーランスエンジニアが客先常駐で1000万稼ぐ方法」を読んだ

気になるタイトルだったので、Kindle Unlimited で読んでみました。薄い本なのでサクッと読めます。

内容としては、業務委託スタイルで働くフリーランスエンジニアのリアルな話が色々書かれている感じでした。
イメージとしては「フリーランスを完全に理解できる本」に近い印象を持ちました。

booth.pm

特に単価の部分など意識しないと見えてこない部分も書かれているので参考になります。

同じ業務委託のフリーランスエンジニアとして共感できる部分もあり、読み物として面白かったです。

これからフリーランスを検討している方にもお勧めできると思います。

以上です。

フリーランス(個人事業主)の毎月の事務作業ルーティン

最近、学生時代の友達、前職の同僚、Twitter のフォロワー、ブログを読んだ方から、フリーランスエンジニアになりたいと相談を受けます。まだ経験の浅い僕に聞いて大丈夫か?と思いながらも、単価などセンシティブな情報も含めて惜しみなく共有し、相談にのっています。*1

相談の中でよく聞かれるのは、単価や技術のキャッチアップの仕方、正社員との比較、毎月の事務作業、確定申告についてです。

今回は、僕が毎月行う事務作業のルーティンをまとめてみます。

毎月のルーティン

■ エージェント経由の契約の場合

エージェント経由の場合、エージェントが契約周りの手続きや作業をほとんどやってくれるので、かなり楽です。*2

月半ば~月末
  • エージェント経由でクライアントに翌更新の確認 ※ 契約終了前月
月末日
  • エージェントに用意された FMT で勤務表記入・提出

■ 直契約の場合

直契約の場合はエージェント経由と比べると毎月の手続き・作業が少し面倒です。契約時の手続きと比べるとだいぶ楽ですが...。

月半ば
  • 更新確認・見積書提出 ※ 契約終了前月
    1. クライアントに次回更新の確認
    2. クライアントの発注依頼を待つ (メールや書面)
    3. 受注の返事 (メール)
    4. 見積書を作成・提出
月末日
  • 請求書・勤務表を作成・提出 (僕はオリジナル FMT を用意)

■ 共通

支払日
  • クライアントorエージェントからの振込を確認
月末
  • 月の売上・経費を入力 (会計 freee) *3

まとめ

書きだしてみると必要な作業はそこまで多くないですね。慣れてしまえばそこまで面倒な作業はないので、特に恐る必要はないと思います。

*1:タダで共有するのもアレなので独立後良い案件があったらバイネームで紹介してほしいと伝えてますw

*2:エージェントによって変わったらすみません...

*3:確定申告前に一括でやろうとするとかなり時間取られるので毎月やって方が良さげ

Ruby経験をもとにGo案件に参画した方法と感想

僕は今年の 1 月から Go を使う案件に参画しています。

それまでは 2 年ほど Ruby on Rails を使った開発に携わっていましたが、去年あたりから静的型付け言語を経験したいと思い、Go をメインで扱う案件に参画することに決めました。

Go を選んだ理由は、他静的型付け言語に比べて下記の点で良さそうだと思ったためです。

  • 流行っている *1
  • Java/ScalaC# などの他言語と比べ、覚えることが少なそう
  • フリーランス案件で Go の案件は高単価が多い *2

Ruby の経験

SIer 時代はスクリプト作成や Chef/Itamae などの DSL で簡易的に使うレベル感で 1 年半ほど。Web 系に転職してからは、Ruby on Rails を使った Web サービスの開発を 2 年ほど経験しています。

Go 案件に参画した方法

「Go 未経験でも他サーバーサイド言語の経験・理解があれば歓迎する」という案件を中心に商談を行いました。

数年前より Go 経験 x 年以上 ~ みたいな求人も増えてきた感じがしますが、他言語の経験者を歓迎する求人も探せばまだ見受けられます。まだ流行り始めてから浅いため、今がチャンスかもしれません。数年後は厳しくなるかもと予想しています。

他言語から移る場合は、商談ではなぜ Go をやりたいかを聞かれることが多いと思うので、回答は考えておいた方がいいと思います。

僕の回答例は、下記のような感じです。

  • 静的型付け言語を業務で使ってみたいと考えた
    • コードを読む際に、型が見える方が読みやすいから
    • コードを書く際に、意図しない値を渡さないようにチェックできるから
  • キャッチアップが好きで、新しくて流行りな Go を業務で覚えたいと考えた
  • Go の開発ではクリーンアーキテクチャが採用されることが多い印象なのでその辺の知見にも興味があった

また、商談では、新規開発やスクラム開発、自動テストコード作成、インフラやフロントエンドなどの経験など、どの言語でも共通して使える経験があればアピールしておいた方がいいと思います。

Ruby on Rails と Go の開発を比べて

僕はいまでも Ruby / Rails を使った開発が好きです。コーディング試験があれば Ruby を使うと思いますし、正直 ActiveRecordRSpec がないサーバサイド開発にはやりにくさも感じてしまいます。

ただ Go にもすごく魅力を感じているので、しばらくは Go 案件で手に馴染ませたいと考えています。 もし今後 Ruby 案件に戻る選択をしたとしても、Go での経験が活きることもあるだろうし、もう少し Go を触る環境にいるつもりです。

開発面で比較すると、Rails を使った開発は用意された様々な便利 API を覚えて、効率よく使うことが求められる感じがします。一方 Go での開発は必要最低限の薄い Web フレームワークを使うことが多いため、必要な処理を自分で実装することが求められる感じがします。

個人的には、天下の ActiveRecord から離れたことでいかに多くのことを Rails に助けられていたかを感じています。SQL なんてほぼほぼコードで書いた記憶もありませんでしたが、Go で有名な ORM (GORM) ではがっつり SQL を書きます。JOIN 句とかほぼ SQL を丸々書きます。まだ慣れません。。

Rails のテスト環境や RSpec がないこともすごく寂しいです。これらは考慮する点を減らして、テストコードを書く時間に集中できる、凄く良い環境を用意してくれていたんだなと感じました。

ただ、Go での開発では interface(抽象)や goroutine、クリーンアーキテクチャなどこれまで経験してこなかった技術を学べるので、この辺は刺激があって楽しいです。Go と仲良くなれるまでは頑張ります!

まとめ

Ruby 経験者が Go 案件に参画するには、他言語経験者を歓迎する Go 案件にコンタクト取ってみるのが良いと思います。

また、Rails と Go の開発を比較すると、求められる事が少し違う感じがしました。これは他の人の意見も聞いてみたい…。

以上です。

*1:有名なメガベンチャーを始め、多くの企業で採用されてる

*2:以前利用していたエージェントから聞いた

「トラブル知らずのシステム設計エラー制御・排他制御編」の排他制御編を読んだ

ここ最近、参画先でバッチ作成タスクにアサインされました。ここで作成するバッチはサービス稼働中に実行する必要があり、データの整合性を考慮する必要がありました。
このタスクを通して、データの整合性を考慮する際の知識が不足していると感じたため、「トラブル知らずのシステム設計エラー制御・排他制御編」とういう本を買って読んでみました。こちらエラー制御・排他制御編でふたつのテーマがあるのですが、今回は排他制御編のみ読んでいます。

感想

実際にありそうな様々な事例に対して、新人エンジニアが立ち向かうストーリー方式で、図をガンガン使って排他制御の設計について解説してくれます。

排他制御って誰から習うの、どうやって学習できるの?って思ってる方には入門として良い書籍だと思いました。

特に後半のオンライン処理とバッチ処理での考慮点などは、今回アサインされたタスクの考慮点とすごく近くて参考にしました。

雑なメモ

排他制御とは、共有資源に対して複数トランザクションから操作がある場合、同時アクセスによって起こる不整合を防ぐため、あるトランザクションがアクセスしている場合、他トランザクションからはアクセスできないように、並列に処理させる制御のこと

楽観ロック
  • 他者による更新はめったに起きない前提のロック
  • 業務トランザクション終了時(更新時)にロックを検知させる
  • SELECT FOR UPDATE を使い、ロックキーを比較、問題なれば UPDATE。別トランザクションは UPDATE 完了まで Wait になるので、上書きし合うことはない
  • 同一業務を複数人で実施しない、更新の競合発生してもやり直しが容易な場合におすすめ

ロックキー: データ更新されたか否かを判断するために利用する情報。よく利用されるのは、バージョン、タイムスタンプ、全列データの比較。
ここではバージョンをおすすめ。特徴は確実性が高い、新たなカラムが必要、バージョン更新を忘れないようにしなければいけない

悲観ロック
  • 他者による更新が頻繁に起きうる前提
  • 業務トランザクション開始時(取得時)にロックを検知させる
  • SELECT FOR UPDATE でロック状態を確認し、非ロック状態なら自身の情報でロック状態に変更。業務トランザクションを行う。ロック状態なら排他エラー。別トランザクションはロック状態 UPDATE 完了まで Wait になるので、上書きし合うことはない
  • 同一業務を複数人で実施する、更新の競合発生するとやり直しが難しい場合におすすめ

最後

データの整合性について考える際には、再度読み直したくなる本でした。買ってすごく満足です。

確定申告完了!フリーランスエンジニア1年生を雑に振り返る

2020/04 からフリーランスエンジニアとして働き始め、約 1 年が経過したので振り返ってみたいと思います。

ここでのフリーランスエンジニアとは

企業には正社員として所属せず、個人事業主として企業と準委任契約を結び、エンジニアとしての時間給で働くエンジニアを指しています。
基本はリモート中心でオフィスへの出勤はしないものの、営業時間に合わせた稼働時間に縛れるので、働き方は正社員とほとんど変わりません。

この 1 年どうやって仕事を取っていたか

下記の 2 つの方法で仕事を取っていました。

エンジニアの人手は不足しているとよく言われていますが、フリーランスも同じような状況です。
参画した現場では準委任契約で良いから参画してくれそうなエンジニアを知らないか?と聞かれることは少なくありません。 ※ ただ個人的には、スクール等の影響もあって未経験エンジニアが大量に業界に流れて来ているのを感じるため、数年後に供給が追いつくのではと考えています。

確定申告完了!確定申告の感想

独立前はこれが存在するだけで独立しない理由になるくらい面倒なものだと思ってました。ただ終えてみると、意外にあっさりしてました。 Freee を使えばググりながらイケます。もし事前に帳簿付けが終わっていれば数時間程度では納税まで完了できそうです。

独立前に事業用クレカ、口座を作っていたのは凄くよかったと思います。生活用クレカや口座まとめていると明細の振り分けに時間がかかりそう...

e-taxマイナンバーカードを利用するので、ぎりぎりで焦りたくない人は先に作っておいた方が良いと思いました。

フリーランスに向いていると思う人の特徴

1 年やってみて、フリーランスに向いているなと思った人の特徴です。

経理作業をしっかりできる人

正社員で勤めていた頃と比べ、確定申告や納税、契約関連書類の送付、など、独立後は期限がある作業がいくつか発生してきます。困った時はとりあえず経理部に相談すれば OK だった正社員時代とは違い、自分でしっかりと経理作業ができる人でないと辛いかもしれません。技術が大好きで、技術だけに時間を費やしたいんだって人には向かないのかなと個人的には思いました。ある程度外注はできるとしても、最終的な責任は自分に来ると思いますので。。。

楽観的な人、または実力に自信のある人

フリーランス、特に準委任契約で参画する場合は決まった期間で稼働し、必要とされれば契約更新していく流れになると思います。僕のような悲観的なタイプだと、更新してもらえるか不安になったりすることがあります。

更新されるか不安=貢献度に自信がない だと思うので、ある程度実力がある方は感じない悩みかもしれません。

もし更新されない場合は、次の参画先を探す必要もあり、エネルギー使うので、更新月になると力が入ってしまいます。

※ ただ、これまでの現場でスキル面で切られたことは一度も無かったため、僕が気にしすぎているだけの話かもしれません。

力試ししたい人

必要なら契約・更新、不要ならお断り・終了、とわかりやすいのがフリーランスの良いところだと思います。正社員と違って、簡単に切ってもらえるのがフリーランスです。実力が伴っていなくて切られた方も知っていますし、案件がなかなか決まらない方が居ることもよく聞きました。

現状のスキルでどれだけ参画できる企業が存在するのか、どれくらい市場にマッチしたスキルを持っているのか、力試ししたい人にフリーランスの働き方は良い選択だと思いました。

今後やりたいこと

節税対策

確定申告や納税を経験してから、税金や優遇制度について考える時間が増えました。確定申告後の 1 か月は、技術のキャッチアップそっちのけで、ファイナンスの書籍をあさっていました。

その中で節税をしっかり行いたいと思い、今後のためにマイクロ法人の設立を考えています。 事業税や消費税またその免除条件、厚生年金や退職金制度などメリット・デメリットをある程度理解できたタイミングで進めようと思っています。

フリーランスの繋がりを増やす

エンジニアとして働いていると、良い人いない?と聞かれることが多いと思います。その際に紹介できる知人、または逆に僕を紹介してくれる知人を増やしたいなと思っています。 フリーランスを続ける上で、僕がもっとも恐れているのは加齢やスキルの陳腐化で、参画先がなくなることです。そこをカバーするのに、繋がりを利用できたら良いなと思っています。 なので参画した企業にいるフリーランスの方とはチャンスを見つけて連絡先を交換するようにしています。

まとめ

フリーランスエンジニア 1 年生が終わるので、雑に振り返ってみました。まだ 1 年しか経っていないので今後考えは変わっていきそうです。