HIROYUKIENTRYこんにちは。私たちは「”働く”を考えよう」をテーマに、InternViewを通して、企業の”働く”を大学生に発信しています。InternViewのエンジニアの業務について、私が行ったことなどをもとに簡単に紹介したいと思います。意思決定から開発までを自分達で出来るやりがい私がインターンを通して主に関わったことは、InternViewのシステムの一新です。以前のサイトは、とにかくInternViewを動かすために急ピッチでこしらえたものでした。記事を読むことはできるのですが、ユーザーにとっても、私達にとっても納得のいかないサイトになっていました。エンジニアにとっては、もう言うのも恥ずかしいぐらい裏側のシステムが時代遅れで......(笑)。読者や企業の方の興味を引くことができて使いやすく、運営側にとってもサービスの成長を加速させつつ機能の拡張とかがしやすいクールなサイトにしたいと思い、一新することになりました。私は、その開発の中心メンバーの一人として、活動しました。今のInternViewはエンジニアが私含めて2名なので、二人で相談しながらやりました。設計なのですが、最初にサイトをリニューアルする際にやりたいことや、やらなければならないことをリストアップして、必要な要件を洗い出しました。このサイトにあるような、キーワードで記事を探すことが出来る機能とかですね。洗いだした機能や改善点を基に、サービス全体のアーキテクチャの決定やシステムを構築する際に用いる技術の選定を行い、その後開発に取り掛かりました。フロントエンドの部分ではJavaScript(ES6)、webpackとBabelを使いました。私自身はwebpackとかはインターンに参加するまでは使ったことなかったんですけど、エンジニアのメンバーと話し合って導入しました。使ったことのない技術を使うと、学習のコストや運用面での手間などの面でリスクがあるのですが、InternViewでは積極的に新しい技術を採用します。これには様々な理由がありますが、インターンという観点だけで言うと、私達は自分たちの技術力を高めたいと思ってインターンをしているので、積極的に学びのある技術を採用していきたいという気持ちから積極的に導入しています。私は様々なインターンに参加していますが、インターン生が使いたい技術を導入できるというのは、とても珍しいと思います。そのように挑戦できる環境があるのはInternViewの強みだと思います。バックエンドではPythonを使い、フレームワークとしてはFlaskを使っています。PythonでWebサービスを作るときはDjangoを使用することが多いと思いますが、今回はメンバーとも相談して、Flaskを用いました。あとはデータベースとしてはMySQL、インフラとしてはnginxとDockerを用いています。いう実サービスに対する技術選定を自分でやるというのは初めてだったので、勉強になりました。以上の技術を用いていくつかのマイクロサービスを作り、InternViewのサービスが動いています。実装は、フロントエンドとインフラの部分を主に私が担当して、もう一人のエンジニアがバックエンドを主に担当しました。開発は、Bitbucketを用いてissueなどでタスク管理して、開発をしていきました。連絡とかも、ChatツールはSlack、話合いが必要な場合はappear-inを使っていました。気になることがあればお互いにこういうツールを用いてやり取りをしていました。リモートでのミーティングの様子。InternViewでは、エンジニアとデザイナーは、Meetingをリモートで行っています。私はInternViewのリモートワークの制度を利用しているので、全体ミーティング以外はほとんどオフィスに行きませんが、オンラインでやり取りするツールを使えばリモートで対応できる部分が大きいので、ツールを使いながらほとんどリモートでやりました。当たり前ですが、サービスをリリースしたら運用しないといけません。ユーザーに利用されることを想定したサービスを作りリリースするってしたことないですし、同世代の大学生でもあまりいないと思うんですよね。InternViewでやるようになって初めて、セキュリティ面の対策はもちろん、サービスを止めないための対策や、データのバックアップやドキュメント管理まで、いろんなことを運用していくにあたってはやらないといけないんだなと日々感じています。セキュリティ面の対策とかって正直言って自分はあんまり面白いと感じないのですが、サービスの開発から運用面までできるというのは、他所では体験できないようなことであるので、そういうのもInternViewという環境の強みであると思ってます。ここまで自主的にやっていると言ってますが、流石に技術的に不安な部分とかわからない部分とかは、社員の方に聞くことが出来ますし、危ないことをしてたらアドバイスをもらえるので、積極的に開発や運用に取り組むことができます。最後にですが、現在InternViewは積極的にエンジニアを募集しています。InternViewのエンジニアは勉強したがりなので、今まで使ったことのない新しい技術を積極的になんでも取り入れていく傾向があります。いうのを楽しめる人とかにはピッタリな環境だと思います。「その技術は本当に必要なのか・正しいのか」というのを考えて導入していますが、自分たちのモチベーションも大事にしています。一緒にスキルを高め合えるような人と一緒に働きたいですね。使う技術の選択とかこんな風なサービス開発をしたいとかに関しては、裁量権が大いにあるInternViewならではの良いポイントなのかなと。あとはInternViewのメンバーとしてミーティングではしっかり意見出してエンジニア以外の部分にも眼を向けることができる人ですかね。技術はサービスを成長させるためにあるので、サービスの成長のために、いかに技術を用いるのかを一緒に考えられる人と仕事したいです。自分たちで作ったサービスをより成長させたり、機能を追加してリリースできたりしたときは、やっぱり凄く達成感があるので、そういうのを全員で楽しめるような人と一緒に働きたいです。InternViewに関わるサイト構築をすべて行っていただきます。受け入れ日数、受け入れ時間などはできる限りご希望にお応えします。多様な“働く”を実現する人材を排出する組織となることを目指しています。各職種のインタビューや詳細はこちらから。幅広い仕事内容な分、身につくスキルや経験できることが多い職種です。ENGINEERサービスに向き合うために、フロントからサーバまでを担当していきます。最新技術を用いて、ゼロからサービスを実装できます。DESIGNERWebのUI/UX、SNS企画、組織のブランディングなどInternViewに関わるありとあらゆるデザインを行います。RESOURCESInternViewの“働く”環境の改善、採用の設計と実務(人物要件の定義/母集団形成/選考内容/面談等)の全てを行います。