年収1000万を全収入込みで達成したい
今年からは副業として案件受注や動画制作を行うつもりです。
周囲から見るとまだ年齢は若い部類に入ると思いますが、だからこそ「自立して稼げる力」を確立したいなと思います。
会社員だとしてもフリーランスだとしても、「時間の確保」も念頭に置きたいです。もちろんそれなりのエンジニアとしての技術力は必要かと思いますが、そこは情報発信やひたすら動くことで解決したいと思っています。
(現在参画中)
・某工場システムで、アラートやログなどの情報を適宜監視ならびに出力
・MSTRで記載されたとても重たいSQLを自作のSQLへリプレイス
・全体的に画面の体裁を刷新
・お客様の要件に合うように画面を実装
・セレクトボックスが可変になることが多いため、ajax
とjQuery
を駆使して自動的に入力されている状態を担保
・DBの結合時に内部結合あるいは外部結合のどちらがよいかを見極め、実装。場合によってはUNION句も使い、実行速度を計測しながらよりよいほうを選択。
→私自身で分からない範囲は適宜アラートやヒヤリングを行い、文化が担保されつつ綺麗で速度が出る実装を選択。
・DBはGUI操作でA5M2
を使用。
→A5M2
でクエリをたたいてから、FuelPHP
のモデルに落とし込んでいたが、コーディング記法にやや癖があったため、ExcelVBA
を使用して自動化。また前述ツールをチーム内にて共有。
→業務効率化の実現
メンバーとして参画/プロジェクト要員5名・チームメンバー2名
・社内向けの見積もり書作成ツールを社外へも拡張
→某見積書の発行を行うWebAPIを駆使したシステムをDjango
を用いて再現
・AWS Lambda
で帳票出力メソッドに投げるための、Jsonデータの作成
・エクセル及びPDFの帳票出力に対応したクラスをゼロベースから構築
→ログ掃き出しに対応
→マジックナンバーの使用を控え、定数化
・Vue.js
などのjsライブラリを使うのが初めてだったため、有識者にヒヤリングを行いながら実装。チームメンバーとは綿密に意見や実装手法の意見を出し合いながら、後任者が担当しても苦痛がないように機能追加を行った。
メンバーとして参画/プロジェクト要員5名・チームメンバー2名
・工場から登録されるデータを表示およびファイル出力する機能を開発
・バックエンドとフロントエンドに分かれて開発、私自身はバックエンド主にを担当
・AWS EC2
上にてFuelPHP
が動く環境を構築
・TeraTerm
における自動ログインマクロの生成で業務効率化
・フロント側から指示された型、名前でモデルやコントローラから返る連想配列を生成
・ある情報の全件出力時にはフロント側も担当
→SQLの内部結合と外部結合の違いを把握しながらCSV機能を実装
→実行速度を計測しつつ、遅ければ改善し、予測される事態についてはPLと積極的にヒヤリング
・バリデーションの実装、共通関数の作成
・バリデーションにおける閾値チェックや日付型の整合性をチェック
・URL直打ち時に特定画面に遷移し、エラーを表示するように
メンバーとして参画/プロジェクト要員4名・チームメンバー4名
・某アプリの削除画面と削除結果画面の2種類を製造
・バックエンドではtry-with-resources
を活用して実装
・クライアントが納得いく体裁になるまで、html
,css
で画面の体裁を整えた
・開発期間が短かったため、駆け足で仕様書やDBの構築、開発環境の組み立てを行った
・バリデーション発生時に元の画面に戻りつつ、対応したエラーメッセージが出力されるか確認
・トランザクションが機能するか調査
メンバーとして参画/プロジェクト要員1名・チームメンバー1名
・ローカル閲覧用のWebページの制作
・現行処理のリプレイス案件
・すでにほかのメンバーが作成した基本設計仕様書の確認がメイン作業
・ブラッシュアップも担当
・同期処理の有無やバリデーションの有無などをヒヤリングしつつ、設計書を記述
・置換前のWebページを視認しつつ、設計書との差分がないかの確認
・検索系画面における、非同期処理の実装
・mybatis generatorを使用して、業務の効率化を行った。
→各種結合や複雑なSQLに関しては、詳細設計をお手本にしながら開発
・どのAPIも基本的に非疎結合であり、ネストが深いプログラムになっていたため、少しでも読みやすいコードへと改変
メンバーとして参画/プロジェクト要員10名・チームメンバー9名
・管理、店舗、ユーザの3種別に分けられ、私が担当したのは"店舗"
・仕事内容をアプリおよびパソコンのページに表示し、ユーザ側はその掲載を見てよさそうなものがあれば店舗側に応募する
・各種一覧画面の作成
・js
を使ってユーザの挙動に応じた画面作成
・時給から報酬金額を捻出したり、深夜労働時間などの複雑ロジックの実装
・各種バリデーションの実装
・APIのレスポンスに応じて画面の挙動を変更
・テスト仕様書をひな型に沿って作成
・労働時間における賃金の差などは閾値を用いたうえで、正しい動作となっているか確認
メンバーとして参画/プロジェクト要員20名・チームメンバー5名
・管理側が各種体制(会社、ユーザ個人など)に応じたチケットを発行、管理するシステムの製作
・ユーザがチケットを使用できるアプリの作成
・現行処理に機能の追加
・現行のシステムを参考にしながら同期・非同期の採択
・バリデーションの有無、見直しや変更などを行った
・メールの送受信のシステム
・SQLにおける部分検索
・非同期処理の実装
・チケット消費側(ユーザ)のDBの更新処理とバリデーション処理
メンバーとして参画/プロジェクト要員5名・チームメンバー2名
・既存システムを拡張するため、新規追加となる画面設計などを担当
・ボタン押下時の遷移先などを選定
・画面に出力するDBのテーブルやカラム情報などを記載
・バリデーション時に表示するエラー文言を選定
・管理者ページ及びユーザ情報の出力用csvの整備
・ダウンロードした際の文字エンコードをShift-JISへ
・外部サイトへのリダイレクト
・画面単体が主
→フロントエンドで定義した文言が基本設計書と同一である確認
・画面遷移が詳細設計書に記載されている通りであるかを確認
・DBのトランザクションが正常に動作されているかの確認
・try-catchの特に例外発出時のログ掃き出し文言が設計書通りに行われているか確認
→画面遷移時のエラー文言については、詳細設計書との整合性を確認
・選定ブラウザ(IE
, Edge
, Chrome
)の挙動を確認
→特にIE
はjsの挙動が他のブラウザと異なることがあるため、重点的に挙動の確認を行った。
メンバーとして参画/プロジェクト要員2名・チームメンバー2名
・勤怠管理システム開発
・各画面にどのような機能を盛り込むかを検討
・ER図の作成を担当
・バリデーション発生時に元の画面に戻りつつ、対応したエラーメッセージが出力されるか確認
・画面単位で自身の実装が動くがどうかを単体レベルでテスト
・バリデーション発生時に元の画面に戻りつつ、対応したエラーメッセージが出力されるか確認
・WDM(光ファイバ接続機器)のネットワーク構成を支援するソフトウェアの開発を製造工程から参画
・既存で実装されたコードにおけるテストの実施及びその不具合の修正
・条件分岐や繰り返し文などの簡易的な実装を担当
・モジュール間機能の要件を満たすように結合テストを実施
・既存のコードや自分で実装したコードの単体テストを実施
サブリーダーとして、1年前にメンバー4人ほどのタスク管理や進捗状況の確認などを行った。
全体規模は20名以上のシステム開発だったため、PLとのヒヤリングは綿密に行いながら仕事の割り振りを行った。
SESとしての参画でメンバーのうち二人が首都圏からのリモートワークだったため、特にアラートや実装漏れがないかを確認していた。
内気なエンジニア、逆に社交的なエンジニアと4人チームでも個性が強すぎたのでざっくばらんに話せるように月曜日の9:00~9:30と金曜日の13:00~13:30で進捗状況の整理を含めたアイスブレイクを行った。
性善説を念頭に置き、来なかった人のことは特には考えなかった。
現に初期のほうはみんなが集まってくれてはいたが、慣れてくると遅れてくることも増えた。
仕事にしても趣味にしても、自分の嫌いなことからは遠ざけたいと思うのが人間の心理ではあると思う。
だから、限られた30分の空間を生真面目に進捗管理などの堅い話ではなく、「週末に何があったのか」、「今週末は何をする予定なのか」、「趣味は何なのか」など人に寄り添う形の会議にした。結果として、形式的で堅苦しい会議にせずにエンジニア自身に何か問題が生じていたとしても発信が行いやすい状態が担保され、良好な状態でプロジェクトを閉じることができた。
フロントエンドでjsのライブラリのうち、React
あるいはVue
のニーズが高くなっていることからその言語知識や活用を学ばなければいけないなと思っている。
DOM構造などに詳しい方と一緒にお仕事がしたい。js
やjQuery
も基本的な部分は書けると思うが、やはり苦手意識はある。
MVCモデルでフレームワーク選定やプロジェクトを進めていくのであれば、SQLの知識が必要不可欠だと思っている。
基本的な構文は理解しているが、集約関数や各種SQLに存在する関数などの使い方が自信をもって使えるとは言えない。
SQLのレベルが上がれば処理の高速化にもつながると思っている。クエリの発行をシンプルかつスマートに実装していきたい。
バックエンド:PHP(Laravel)
フロントエンド:js,jQuery
SQL:PostgreSQL
・リモートワーク
・博識なエンジニア
・私自身がかなり質問をするため、それを良しとしてくれる環境