
CONTENTS CREATOR
業務内容は、企画・アポ取り・取材・記事作成・SNS運用まで。幅広い仕事内容な分、身につくスキルや経験できることが多い職種です。
ENGINEER
MATSUO HIROYUKI
こんにちは。株式会社ニコシスでインターンをしている、エンジニアの松尾 裕幸です。
私たちは「”働く”を考えよう」をテーマに、InternViewを通して、企業の”働く”を大学生に発信しています。
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に関わるサイト構築をすべて行っていただきます。HTML/CSS(sass)/JavaScript(ES6)/Python/MySQL/Dockerを用いて、サイトの構築を行っていただきます。
InternViewを通じて、私たちは“働く”の最先端を取り入れ、
多様な“働く”を実現する人材を排出する組織となることを目指しています。
各職種のインタビューや詳細はこちらから。