怠慢プログラマーの備忘録

怠慢でナマケモノなプログラマーの備忘録です。

個人事業1年経過&本業退職します(無職予備軍になります)

2020年4月1日でめでたく個人事業主として開業してから1年が経過しました。

また、2017年より勤めていた本業の新潟の株式会社クーネルワークと言う会社を5月末で退職することになりました。

個人事業なにやってたの?

最初は個人開発した御朱印アプリが収益化して確定申告が必要になった為、「どうせなら開業届を出して青色申告をしてしまおう」と言うのが発端でした。

enoque.bio

収益化自体はアプリ内課金と物販販売でいい時で月の売上が¥150,000程になり、最初は携帯代金とかその辺の細かい固定費を払っていければ十分くらいの気持ちでしたが、いつの間にか年間課税所得が¥200,000を超過したため仕方なく開業していた形でした。

ただこのアプリをそれなりに運用や広告を出していたところ、首都圏を中心としたいくつかの会社さんからアプリ開発やPM・技術顧問的などの依頼がSNS経由でご連絡いただけるようになり、そのうちのいくつかの会社さんのお手伝いをするようになりました。

本業以外の会社やPJの雰囲気を感じることができたのと、(恐縮ですが)単純に自分のやりたい業務内容・プロダクトを選択することができるようになったので1年間でかなり自由度が増しました。

本業との兼ね合い大丈夫だったか?

基本的に個人事業経由でお手伝いする場合、完全なフリーランスではなく本業として在籍している会社があると言うことは事前に必ず伝えていましたし、それを踏まえて契約してくれる会社さんが多かったので、特に影響はありませんでした。

可処分時間のうち、趣味としてプログラムを書いていた時間が、それに置き換わったぐらいの認識です。 (ただ話の発端になった個人アプリはほったらかしになった...)

何がよかったか

大きかったのは他社の雰囲気や文化、ルールに触れることが多くなったのでその知見が公平に蓄積され、それをもとに本業も専念することができました。

巷でよく転職の理由となる「1つの企業に長年いると悪い意味で慣れが生じて旧態依然が心地よくなる」みたいなことはこれによって解消されていたかと思いますし、本業の既存体質に影響されることなく業務はできていたかと思います。

他社のいい所・悪い所を見ていたこともあり、個人的に本業の会社のフラストレーションとなる事象に関しても「それぞれの組織上の制約って本当それぞれだから仕方ないよね」と言う解釈が生まれフラストレーション自体も軽減され精神衛生的に安定するようになりました。(別に特段フラストレーションとなる事象が多かった、と言うことではなくてみんなどこの会社・組織にいても少なからずはあるよね、と言う一般論です)

総合的には「個人的にやりたいことが仮に組織の制約上できなかったとしても他ですることはできるし、プログラマーとして本業で求められているポジションに気持ちよく専念することができた」といった感じでした。

と言うことで退職します

ここまで「本業と個人事業の掛け持ちが順風満帆です」みたいなこと言ってアレなんですが、5月末をもって本業の会社を退職することとなりました。

「なんで辞めるの?」とか「次どうするの?」と言う話はもう少し時期が近くなってから退職エントリーとして書こうかと思います。

ひとまず退職に関しては確定し、公表できる状態になったので来月からいわゆる「引継ぎ」に入るのですが、実は社内で引き継ぎ先が見つからない、そもそも引き継ぐぐらいなら潰してしまった方が、もしくはきりのいい所までやり切るみたいな選択になりそうなものがほとんどなので、引継ぎに必要な他社員とのコストがあまり発生しません。

よって4月よりほぼフルリモートでひたすら開発を進める形を取らせてもらうことになりました。

と言うことで、出退勤に必要な移動時間0分・話し相手がいないと言う隠居生活を退職まで送ることになりましたので、めでたく無職予備軍に昇格します🎉

【Android】RecyclerViewでHorizontalScrollを実現する[備忘録]

掲題の通りRecyclerViewでHorizontalScrollを実現します。

RecyclerViewHolder.kt

import android.view.View
import androidx.recyclerview.widget.RecyclerView

class RecyclerViewHolder(view: View): RecyclerView.ViewHolder(view) {
    // layoutファイルのUIコンポーネント
}
続きを読む

Firestoreの特定のCollectionをCloudFunctionsで監視してPushNotificationを送信する[備忘録]

チャットアプリなどでFirestoreの特定のCollectionが変更された際に対象ユーザーにPushNotificationを送信するといったシーンの実装方法の備忘録です。

Firebase

CloudMessagingがPushNotificationを送信する際に必要になるfcmTokenはFirestoreに保存しておきます。 アプリ側でfcmTokenを取得する際のコードは下記になります。

続きを読む

【Swift】FirestoreのSnapshotListenerをObservableにした場合のListenerのDetach

firebase.google.com

上記の公式ドキュメントを参考にクエリによる条件一致に該当するスナップショットのリスナーをObservableにした場合、以下のような実装になります。

続きを読む

新潟モバイルアプリカンファレンスの裏側の人の裏側

こんにちは。ABEChanです。あ、これから先私の呼称はABEChan/アベチャンでお願いします。

違う呼称で呼んだ方にはもしかしたら、私のことをよく知ってもらえてないのかな?と言う理由で焼肉をごちそうしてもらうかもです。←冗談です。

ついこの間新潟でモバイルアプリに関するカンファレンス・イベントを開催しました。

続きを読む

【Python】AWSLambda上でSelenium+ChromeDriver+headless-chromeを使ってクローリングする

yutaabe200.hatenablog.com

この記事の通り、Golang+Agouti+ChromeDriver+headless-chromeを使ってAWSLambda上で動かすことに失敗してしまったので、諦めてPythonを使用することにしました。

なお、こちらの方法はGolangで行う際より参考記事が豊富ですが、私自身Python自体も未経験でしたので、Pythonの使用手順から備忘録を兼ねて記載します。

続きを読む

【Golang】AWSLambda上でchromedriver+headless-chromeでクローリングできない[未解決]

最近とあるサイトのユーザーアクションを定期的に自動化したい事項がありました。

続きを読む

個人事業主初日

2019年4月1日から開業して個人事業主とめでたく(?)なったわけですが、色々雑に書いていきます。

屋号名について

特に意味はありません。好きなワインの名前からとりました。

あ、僕に送りつけてくれても良いです。

www.amazon.jp

事業計画・内容に関して

一応届出上は「システム・ソフトウェア開発」ですが特にないです。 開業して独立したいわけではないので。

なんでなったの?

1番の理由は経費を差し引いても雑収入が年間20万円を超えてしまい、確定申告を余儀なくされたのが理由です。 そして雑収入と言っても開業届けを出してしまえば事業所得として扱えそうなものもあったので都合が良かったのです。 それで青色申告をすれば何かと還付金が受けれるかもとか節税対策ぐらいの気持ちです。 元々簿記に関しては2級ならありましたし、FPの資格取った時もこの辺の知見はあったのと、割とお金周りの計算は好きでした。お金が好きなので。

あとは、後々フリーランスは視野に入れていて近々やってみたいとも思っているので、その準備と言うか、、、いざやるとなった時の為に手続きを出来るだけ今のうちにしておいたって感じです。

手続き自体は会計freeeなどにお世話になってすんなりできたのですが、それ以外の事業用カード作ったり通帳作ったり、どうせだから今の収入源をもう少し事業ぽくしてみたりとその辺が割と煩わしい作業が多い感じですがなんとかやり終えました。

で、何が言いたいの?

www.amazon.jp

...これ「屋号名」なのでプレゼントお待ちしてます。

【Golang】AWSLambdaからS3にアップロードする

yutaabe200.hatenablog.com

こちらで、Goのコード上からAWS S3にアップロードする方法を紹介しましたが、これをLambda関数化して同様に実行するとBodyHashErrorが起こります。

続きを読む

AWS Lambda の関数をAWS APIGatewayで発行したエンドポイントで実行させる

f:id:ka0in:20190311131435p:plain AWS Lambdaにgolang製の関数を設定し、トリガーにAWS APIGateway設定しエンドポイントを発行、そのエンドポイントのコールで関数を実行するまでの手順です。

続きを読む