エンジニアHubPowered by エン転職

若手Webエンジニアのための情報メディア

ニッチな領域に勝機あり!人生をメールサーバに捧げたエンジニアの生存戦略

京都発の技術が東京、どころか世界に羽ばたいています。メールという一見レガシーにも感じられるジャンルで存在感を発揮する、京都のエンジニアの生き方から、技術者としての生存戦略が見えました。

f:id:blog-media:20170816202154j:plain

 「電子メールのエンジニアになる」——その一言にどのような印象を持つでしょうか。いまさら? もはやロストテクノロジーじゃないの?

 しかし、Webサイトやサービスの登録に必要なのは、いまだにメールアドレスです。メールはレガシーと思われつつも、なくてはならない仕組みのひとつ。そのメールにこだわり、「自分のエンジニアキャリアにおいてメールは“人生”」と言い切るエンジニアが、京都にいます。キュービックルートでSisimaiを開発した東邦之(あずま・くにゆき/@azumakuniyukiさんです。

 東さんはモダンな手法、モダンな人とのつながり方で、いまだに残るメールの困りごとをたくみに解決するエンジニアであるだけでなく、“京都”という土地にこだわりエンジニアとしてのキャリアを築いています。

 お父様の「誰もやっていないようなことを選べ」という言葉にインスパイアされ、やがて開発したバウンスメール解析のオープンソースソフトウェア「Sisimai」は、名だたるIT企業に採用されています。京都で働くエンジニア、東さんの生き方は、地方に根を張るエンジニアにとっての“生存戦略”を考える上での示唆に満ちています。

メールにこだわるという「生存戦略」

──今はどのようなお仕事をされているのでしょうか。

 現在、京都にて「キュービックルート」という会社を運営しています。主にインフラと呼ばれるエリアと、その周辺分野がメインですね。

 ただ、インフラ作りだけでは、他の企業との差別化ができず、生き残れないと考えています。自分が生きていく上でも開発能力がないとアカンやろうと。そう考えて手を動かして、PerlとRubyを使ったバウンスメール解析ライブラリ「bounceHammer(バウンスハンマー/現在、製品ライフサイクル終了)」と、その後継の「Sisimai(シシマイ)」を開発しました。

 実はずっとプログラムを書くのは苦手でしたが、父親が「お前な、コンピューター使ってるならプログラムぐらい書けなアカンぞ」とよく言っていまして。

f:id:blog-media:20170816201437j:plain

東 邦之さん/株式会社キュービックルート・Sisimai開発者

──かなり進歩的な考えを持ったお父様なのですね。

 「書けるようになったら、ワシの会社の業務システムも何とかしてくれな」と。多分それが目的だったのでしょうが(笑)。

 bounceHammarを開発したのは20代のころ、ちょうど大学院を辞めたあとくらいです。当時はまだITバブルが始まる直前だったこともあり、CGI設定やDNS、メールサーバー設定など、インフラ寄りの仕事のニーズもありました。そのころはインフラの整備が面白いと感じつつも、同時に「プログラムもできないと生き残れない」と本気で考えるようになりました。

 当時従事していた企業では、電子メール配信システムの設計などをしていたのですが、お客さまから「開発できないの?」と聞かれることも多かったんです。  

 周りのプログラマを見ているとプログラムをガンガン書いていて、定期的に機能追加したりメンテしたりという行為が「プロダクトを育てている」ように見えたんです。自分も“自分のプロダクト”を、自分の手で育てられれば楽しそうだな、と感じました。そこで、ちゃんとPerlを勉強して、自分の手で何かを作ろうと思い立ったんです。

──その時、開発言語としてPerlを選んだ理由はなんでしょうか?

 選んだ理由は「サーバーに最初から入っているから」です(笑)。わざわざプログラミングするのに、言語環境を構築せなアカンのは面倒じゃないですか。さっと書いて、さっと動く言語はないかと調べたらやっぱりPerl。それ以前からインフラを整備するとき、サーバーの中でなにかインストールし、手を入れるときは大体Perlを使っていました。Perlなら多少の読み書き程度はできたので、一番学習コストが低いと思いました。

──プログラマとしてのキャリアは、メール配信に関する部分から始まったのですね。

 今の会社は4社目なのですが、社会人になって入った会社でなぜかメールサーバー担当になることが多かったのです。当時はPostfixもなく、Sendmailの面倒を見ることが多かったですね。

 2社目、3社目でもメールサーバーの担当で、コンテンツプロバイダをやっているような会社でした。無料のホームページ作成とか、メールマガジン配信とか。そこにインフラ担当として入社したのですが、そこで配信しているメールの量が大量で、かなり遅延が発生していたんです。遅延メールをほったらかしにすると、配信が終わらないわけです。担当の方に問い合わせると「たまってたら捨てといてー」と、けっこうめちゃくちゃな解消方法でした(笑)。

 で、メールの配信担当になって、運営の部署からは「メール送れてないよ!」と言われるわけです。メールキューを見ると5万通くらいたまっている。最初はそれでもよかったんですが「なんとか全部配信してくれ」という業務オーダーが来ます。

 そこで、そもそもなぜ遅延するのかを突き詰めてみました。すると、あて先不明で帰ってくるメールが多いことが分かるんです。会員数が50万あったとして、20万件があて先不明で返ってきている。そこで存在するアドレス、存在しないアドレスを判定するのに、まずPerlで整理するメンテナンスのスクリプトを書きました。

 でも、メールアドレスの情報は日々変更され、増減があります。都度整理するのではなく、恒常的に、配信ごとに送信の可否を管理できないとまずいわけです。そこで、バウンスメール(エラーメール)の解析スクリプトを作りました。当時はガラケー宛てのメールに対するもので、ドメイン指定拒否ではじかれているものは「User Unknown」だから以後送信しないというようにするわけです。

Sisimaiの公式サイトではメールがバウンスされる理由を27種類に分類している。
画像出典:キュービックルート

 すると、運営から「はじいたメールアドレスから問い合わせのメールが来てる」と詰め寄られるんです。「メールが来てるからメールアドレスが存在している!」と。しかし、そんなん言われても、当時の僕にはわからへん(苦笑)。

 よくよく調べてみると、ドメイン指定拒否で返ってくるメールと、そもそもアドレスが存在しないで返ってくるメールのエラーメッセージを比較すると、ほんの少し違ったりするんです。それでNTTドコモ、au、ボーダフォン(現ソフトバンクモバイル)の3キャリアから返ってくるバウンスメールを解析して、少なくともドメイン指定拒否か存在しないアドレスかは判定できるようになりました。ドメイン指定拒否は2〜3回送ってもいい、あて先不明ははじくという処理を入れたら、なんとか遅延なく送れるようになったわけです。これが、いまの「Sisimai」の原点かもしれません。

──かなり泥臭い対処方法だったのですね。

 当時は全く情報がない上に、キャリアに問い合わせても教えてくれなかったのです。自分のケータイ、会社のケータイを並べて、会社保有のドメインや個人で持っているドメインのメールアドレスを数種類用意して、各ケータイごとにこれは拒否、これは受信といった具合に設定し、メールを送ってどんなエラーが起きるかを調べてたんです。キャリア各社の傾向をつかんでパターン化してしました。その解析をすぐに実装して動くPerlで書いて。今見れば、モダンな仕組みは一切使わない、古くさい実装だったかもしれません。

 当時はケータイ向けの高速配信サーバーみたいなソリューションはありましたが、こういうバウンスメール解析のソリューションはなかったように思います。当時、配信量増加への対策として、会社が1千万円くらいの高速配信サーバーを追加で入れるというようなことも考えていたようです。その代わり、自分が余っているマシンをメールサーバーにして、商用製品には勝てないながら30万通/時くらいの配信サーバーを作りました。Sendmailを60個くらい立ち上げて、IPアドレス64個くらい付けて、遅延したら別IPに割り振るような仕組みも入れて。頑張って作ったんだから1千万とはいわないまでも、高速配信サーバーの半分、500万円くらいボーナスくれないかなと思いながら(笑)。

──お話をお伺いすると、まさにメールサーバーに命をかけていますね。

 これまでのエンジニアの半生は、ほぼ「メールの人生」でした。得意分野は何?と聞かれたら、多分「電子メール」と答えます。

 これも父親の言葉ですが「みんながやってることやるよりも、誰もやってへんことをやれ」と。メールはWebやDBのように華やかな世界ではない。誰もやってないわけじゃないけど、絶対数が少ないのがメールの世界です。この経験が活かせるうちに、プロダクトにできないか?と考えるようになりました。

経験をカタチに──“bounceHammar”の誕生秘話

——その後、自分の会社を作ったのですね。

 2008年に、「キュービックルート」を立ち上げます。当初はインフラ業務だけでなく、受託開発もやりますというスタイルでしたが、「看板商品」がないと目立つことができません。小さい会社が生き残るためには主たるなにかが必要でした。その時、最近までやっていた「メール」で勝負するということを考えたんです。

 加えて、誰も作ってないもの、正確には「誰もオープンソースで公開していないもの」を作って、それを看板にしようと思っていました。解析精度の高いバウンスメールの処理ソフト「bounceHammar」です。

f:id:blog-media:20170816204810p:plain

最初期のプロダクトであるbounceHammar。
残念ながら、現在は製品ライフサイクルを終了している。
画像出典:キュービックルート

── “電子メール”というと徐々にレガシー化している分野に感じられます。レガシーを“看板商品”にするということにリスクを感じませんでしたか?

 “電子メール”を本気で扱っているところは、自分が調べた範囲では他に比べ圧倒的に少なかったのです。一方、Web、DBは競合がいっぱいいます。

 Webで何らかのサービス、ソリューションに作り上げるより、得意な「メール」という分野ならば、短時間で、何かしらの形にはなるだろうと判断しました。それで形にならなかったら、他の方向を探そう、まずは手を動かそう、と。深くできることを、スピーディにやることが大事だと考えたのです。

──起業直後だからこそ、早い段階で看板商品が必要だったのですね。

 起業といっても、社員数3人の会社ですが(笑)。bounceHammarを作るにあたり、他のツールを見てもドメイン指定拒否とあて先不明が判別できないものが多く、それが致命的な課題であると思いました。ここが見分けられないと、使い物にならへんな、と。当時はケータイメールの配信のニーズもまだ高く、おそらく需要もが多いだろうと踏んだのです。もしかしたら、この判別機能を最初に実装したのは私かもしれませんね。えらそうに聞こえますが(笑)。

──実際に、bounceHammarのようなソフトの需要はあったのでしょうか。

 bounceHammarの公式サイトに、マニュアルとしてその判別方法の記事を書いていますが、いまだにそのページが一番読まれています。2017年のいまでも、ケータイ宛のバウンスメールの見分け方の記事が読まれているのですから、いまだに困っているひとが多いのでしょう。

技術的な面での生存戦略——オープンにせよ。話はそれからだ

f:id:blog-media:20170816201445j:plain

——bounceHammarを製作するにあたり、どのようなインプットを行ったのですか。

 『モダンPerl入門』や『Perlベストプラクティス』といった書籍から、モダンなPerlの設計などを勉強をしつつ、Twitterも活用しました。いくつかの機能で必要なPerlモジュールを選んで使っていたのですが、東京にいる有名なPerlエンジニアのツイートを見ては、「こんな機能があるんや、使ってみよう」と。

 実際に使ってみて自分には理解できない動きをしたときに、自分のTwitterで「このモジュール、こう書いたけどこれでいいのかな」「こうやったのにうまく動かへん」とつぶやいていました。すると、モジュールの作者さんが検索して見つけてくれて、「こうした方がいいよ」と助言をくれる。本当にありがたかったですね。

——bounceHammarとSisimaiにはどのような差異があるのでしょうか。

 依存モジュールが大量にあることから、インストールに時間がかかってしまうことがbounceHammarの課題でした。この課題を解決するべく、後継となるSisimaiでは「 一つのことをうまくやる」、「小さく堅牢に」を指針に設計しています。つまり、解析機能だけを持つ小さく堅牢なライブラリとして開発したのです。なるべく自分の手が届く範囲を確保するために、依存モジュールも極力少なくなるような実装にしています。

——なるほど。素朴な疑問なのですが、看板商品ならば有料製品としてリリースした方がいいのではありませんか。

 bounceHammarも最初のバージョンはプロプラエタリで、会社の有料製品でした。でも、すぐにオープンソース化しています。売り物だと展示会や商談会でないと見てもらえる機会がないからです。メールの需要が減っているのは現実なので、広告を打ったとしても効果が読めません。

 それより、ビジネスモデルとしてフリーミアム的な、まず無料で公開して、そこから皆さんに使ってもらうのが重要だと考えたんです。導入するにはサーバーが必要ですし、配信ノウハウも必要です。機能追加の要求もあるでしょう。こうしたサポートやカスタマイズを有料にして売上につながればいいと判断し、オープンソース化しました。クリス・アンダーソン氏の著書『FREE』にあった、カミソリを無料で配って替え刃で商売しようというような。まず使ってもらうことが大事だと思いました。

——やり方は「モダン」そのものですね。一方で会社の「コア技術」を公開することにリスクを感じませんでしたか?

 いや、リスクはむしろ、まったく同じような機能を持つ製品がオープンソースとして公開されることでした。例えばグーグルが似たようなものをオープンソースで出してきたら、僕に勝ち目はない(笑)。それにおびえて暮らすくらいなら、最初からオープンにして、先行者の特権を手にしてしまえと。少なくともbounceHammarやSisimaiをオープンソース化したことは、間違いじゃないと思っています。

 もう一つ、これまでのインフラ構築においては、ほぼすべてのコンポーネントがオープンソースのもので構成されていました。ですので、オープンソースという考え方、文化は理解しています。それもあったのかもしれません。いまはSisimaiをBSDライセンスで公開しています。

私たちは「古くて重要な技術」に支えられている——たとえ話題にならなかったとしても

——ご自身のスキルアップをどのようにお考えでしょうか。

 いまはTwitterや雑誌などで、情報を集めています。常に新しいこと、技術を知りたいと思っていて、Twitterに流れてくる「単語」を見るだけでもプラスになると思っています。気になった単語は深く調べて、何人ものエンジニアが同じ単語を発していたら、流行っているんだなと判断できます。そんな方法でアンテナを張り、情報収集をしています。

——その点において、東京ではない場所にいることのデメリットはあるのでしょうか。

 もちろん、東京には情報があふれていて、エッジーな情報もたくさん発信されています。でも、一人のエンジニアがそのすべての情報を消費できるわけではありません。最新、最速、最先端というのはいろんな分野に、たくさん存在します。でも、その「最先端」と既存技術はどちらが優れているか、なんて比較できません。今日出た技術か、5年前に出た技術か、なんてただの時系列の問題です。

 最先端ばっかり追っかけているメディアが取り上げるようなネタは、お酒の肴みたいなもんです(笑)。

——最新こそが最高ではない、と。

 ある程度枯れた技術で、話題にはならないけど、なくなったら大変みたいな技術もたくさんあります。例えばDNS(Domain Name System)なんかは、最近では革新的な話をあまり聞かないですよね。話題になるのは脆弱性の話くらい(笑)。Sendmailもそう。でも、みんなが使っている。

 今どきのWebサービスだって、大体メールアドレスをIDにして登録させたりしますよね。古い技術であればあるほど、裾野、つまり活用範囲は広大です。先端情報を追うのも、もちろん重要です。でも、足元を見ると、ロストテクノロジーと思われがちなメールもとても重要です。例えば最近も、まつもとりーさん@matsumotoryがメール送受信ソフトウェアを公開していますから。もっとも、自分が足元から固めるのが好みだという部分もあります。

——「自分の好み」というのは、モチベーションとしてとても重要ですね。

 嫌いなことを仕事にするより、好きなことを仕事にしよう、という思いはあります。「好きこそものの上手なれ」で、対象に興味が持てるならば、きっとやっていて楽しいことになるはずです。精神衛生的にもいいことでしょう。住む街という環境も一緒です。人生では仕事以外の時間もいっぱいありますから。

心に残っていた「誰もやっていないようなことを選べ」という言葉

f:id:blog-media:20170816201449j:plain

京都、銭湯、落語、日本酒。
言葉通り、PCには東さんの「好きなもの」が並ぶ。

——「住む街という環境」というキーワードがありましたが、東さんは生まれも育ちも京都なのですか?

 いや、出身は滋賀県甲賀市土山町というところです。かなりの山奥で、京都駅までバスと電車を乗り継ぐと、大体2時間くらいかかる場所です。ただ、中学生のころから、遊びに行くとしたら京都でしたから、京都にはとても親しみがあります。

──その後、京都の大学に進学されたと伺っています。ただ、大学は文系で、しかも西洋史学、ローマ帝国を専攻されていたそうですね。

 高校の時は、理系に行きたかったのですが、センター試験ではどんなに頑張っても、数学が50点くらいしか取れず、理系は無理かなと。もう一つ、自分はやっぱり古いものに興味があって、自分の場合はローマ帝国の歴史が面白そうだと思い、そこからはずっと文系の道を歩みました。

しかし、大学の学部と大学院で道具としてパソコンを使っていたのですが、教授から「学会の準備のためにWordを使いたい」だとか、「資料を入れる研究室のサーバーを見てくれ」という依頼をされることが多くなりました。大学院のときにそんな“裏方”をやっていたことが、いまのインフラエンジニアの仕事につながります。

──いったい何がきっかけになるか、分からないものですね。

 学部生のころはメールやインターネットを見るくらいでしかパソコンを使っていませんでしたからね。

 実は、学者になりたかったんです。その時に父親から「文系の学者で食っていけるのは、よほどの才能がある人間だけ。これからはコンピューターの時代が来る。お前はコンピューターをやれ」といわれました。大学院で初めて技術の世界に触れ、なるほどこれは面白い、これからこの時代が来る、さすがオヤジだな!と思いました。今の道に入ったきっかけはその一言かもしれません。

──お父様の感覚は現代的ですね。

 オヤジは昭和8年生まれの、いわゆる昭和一桁です。7年前に亡くなったんですが「もし考古学をやるなら、琵琶湖の湖底をさらって研究するような“誰もやっていないようなこと”を選べ」という人でした。鋭い視点を持つ人でしたね。オヤジの言葉が、無意識に道筋を照らしていたのかもしれません。

「気に入った場所で働く」という環境整備

f:id:blog-media:20170816205729j:plain

Sisimaiの公式サイト。なるほど、インパクトのある名称だ。
画像出典:キュービックルート

──その誰もやっていないことが、後の「Sisimai」につながってくるのですね。実は一番気になっているのはその「命名」で、かなりのこだわりがあるように思います。

 名前にはこだわる方ですね。社名は、創業メンバーが3人なので3に関係ある言葉を探して、立方根/三乗根=キュービックルートにしました。ロゴも創業の地、京都の六角通にあわせて六角形に。近江商人の「三方良し」も3に関係していますから。

──やはり京都という場所にかなりこだわっているのですね。

 そうですね。東京と比べてしまえば、経済、人口、人の流れに関してはもちろん敵いません。が、東京に対抗意識はないです。東京の地位を京都で目指すべきということは全くなく、よそはよそ、うちはうちでいいと思います。

──東さんは京都との相性がいい、ということでしょうか。

 京都との相性はいいですね。エンジニアは“環境”を重視する人が多いでしょう。机の広さだったり、メモリがたくさんだったり、モニタの大きさや数。これらの要素で、エンジニアの作業効率が左右されます。でも、環境とは、こうしたオフィスの中だけの話じゃないかもしれません。

 自宅への帰り道、好きな居酒屋があるだとか、落ち着けるカフェがあるだとか。とにかく雰囲気がいいだとかということも“環境”なんじゃないでしょうか。「環境が左右する」の意味を拡げていくと、通勤や街、家の環境なんかも入ってくるはずです。相性のいい街に住むというのは、仕事をする上での“環境”として大事なんじゃないかと思います。

京都から始める、セルフブランディング

──いくら京都が好きでも、全国に向けてなんらかの発信活動を行わなければ、ビジネスが成立しないように思えます。なにか取り組んでいる活動などあるのでしょうか。

 どの勉強会でも「最近こんなことやっています」という内容でもなるべく発表するようにしています。人様に役に立つ内容が1つでもあれば、参加する勉強会で全部しゃべっています。

 それは、いい意味で目立たなければならないと思っているからです。いやらしい話ですが、宣伝もかねて。営業マンとしてではなく、エンジニア個人として「Perlでこういうの書いた」「最近メールサーバーが面白い」みたいな話をして、Sisimaiもアピールして、他のエンジニアの皆さんに使ってもらいたいという話をします。興味のある人を増やすことが目的です。

 営業につながらなくても、「こういうやつがいるのか」と知ってもらえればいい。そういうきっかけであり、何か話題の1つになればと思って発表をしています。

──ブランディングを重要視していると。

 「覚えてもらう」という観点では、いろんなものに手を出すより、なにかに特化した方がいいと思っています。「メールの人」だったり「ネコの人」だったり。覚えてもらうきっかけを限定した方が覚えてもらいやすいと思っています。何かを頼むときに「知ってる人」を頼ることもありますよね。仮にネット経由で見ていても親近感がわくはずで、そういうつながりができればいいと思っています。仕事の話じゃなくても、他の話題、例えばネコの話でも盛り上がればいいなと。いい方向で目立っておく、覚えてもらう。そんなことを心掛けています。

f:id:blog-media:20170816201454j:plain

東さんのTwitterにはかなりの頻度で猫が登場する。
「これもブランディングの一環(笑)」とは東さん。

──それが実を結んだこともありますか。

 bounceHammarをリリースした週に電話があり、「商用サポートはありますか?」と聞かれたことはありました。そのつながりで、Sisimaiを作ったときに、リリースの案内メールを送ったら、開発案件を改めていただいたことも。積極的に外に見せる、公開するということは重要なのだと思いました。

 bounceHammarやSisimaiはオープンソースですので、収益の柱ではなく「広告」に近いものだと思っています。その甲斐あってか、「バウンスハンマーさん」と呼ばれることすらあります。

——Sisimaiはクックパッドさんも利用しているという記事が掲載されていました。

 Twitterを眺めていたらそれが流れてきて知りました(笑)。たまにGitHubを「Sisimai」で検索して、なんとなく使われているなーというのは感じていましたが。記事を読んで、bounceHammarも使ってくれていたというのをはじめて知りました。

 どうやら、フランスの通信プロバイダや、インドの企業もSisimaiを使ってくれているようです。この前はアラビア語のメールが来て。全く文字が読めなかったのですがバラの花束画像が付いていたので、多分肯定的な内容だったのでしょう。なのでこちらも好意的にネコ画像を返信しておきました(笑)。

——この記事を読んでくれたエンジニアが、Sisimaiのユーザーだったらうれしいですね。

 ああ、ありがたいですね。ぜひ声をお送りください! バウンスメールで困っている人も多いでしょうから、多くの人に広めていきたいと思います。

取材・構成:宮田健(みやた・けん) dpost.jp