Skip to content

Instantly share code, notes, and snippets.

@lestrrat
Last active October 15, 2024 21:48
Show Gist options
  • Save lestrrat/56b628fcd5c8ab0c92af54126c75ff66 to your computer and use it in GitHub Desktop.
Save lestrrat/56b628fcd5c8ab0c92af54126c75ff66 to your computer and use it in GitHub Desktop.

I unexpectedly had to quit my previous job and am now in search of a new one. If you are interested in hiring me or have leads, I would very much appreciate it if you could contact me at my ID + gmail.

Past experiences

https://lestrrat.github.io/

During 2000-2019, I worked as a backend software engineer, writing anything from small tools to servers handling billions of requests. Now I focus on writing software with Go. During 2019-2024, I worked as TechPR, acting to promote my employer to the outside engineering community, as well as enabling and otherwise making internal engineers happier. I still wrote code for FOSS, but not for a living.

I have 15+ years experience writing about programming in commercial publishing.

I have experience starting and operating a small-scale businesses, large community conferences. I have previously worked for non-Japanese companies as well.

Specialities

I am an accomplished Go programmer, author, speaker, etc.

I grew up outside of Japan, so I'm 50/50 Japanese/Western World hybrid inside. I speak and write English fluently, and understand some Portuguese. I have no problem working in a English/multi-cultural environment, as I am very familiar with western cultures.

I am proficient in writing technical material in both Japanese and English. I'm somewhat versed in editing as well, which I believe makes me a great fit for editing and writing technical materials for developers. You can see some of my coding / documentation styles / samples through github.com/lestrrat-go/jwx's docs, examples, and faq style docs.

I am also well versed in business outside of engineering through my experiences organizing large scale conferences and managing small companies.

Positions that I'm looking for

Aid the Engineers

Building products to be used by the masses is a great thing, but it is not something that excites me because it's hard for me to imagine the end users. Instead, what I am more interested in is to engage in projects that help engineers around me, especially those new to the field, and to make them feel happy being an engineer. These sorts of activities let me see the beneficiaries of my directly, and it brings me much satisfaction.

I'm also interested in teaching and otherwise aiding new engineers in getting up to speed. This comes from the fact that I was never the superhero engineer that I once dreamed to be. A superhero engineer might be able to understand the whole picture just by looking at the raw code, but for all of us laymen, we need to be given continuous support. This means not only educational materials and documentation, but also developing easy (easier) to use libraries.

Lastly, I'm also interested in developing "software for the random-joe engineer" -- for example, SDK/API design, common tools and libraries, and shared platforms. These types of software need to be designed specifically for the purpose of being used by various levels of engineers (not just the best ones), and require a specific set of skillset to design and maintain. I believe I'm capable of achieving this goal through my years of experience working on and maintaining FOSS.

Creative Work for Engineers

I'm interested in the creative ativities around Tech PR: organizig events, coming up with swag, planning and executing promotions, etc. I believe I have the necessary knowledge and experience to know what kinds of activities are effective and where to draw the line; I have learned these through my years of active involvement in communities and the internet.

I have written about my activities in the TechPR area in a blog entry I wrote about my previous job (Japanese only)

Thoughts on Software Development

First of all, I'm more interested in the TechPR/support field than software development.

However, I understand that there is more demand for software developers; as such, I'm not against the idea of being hired for software development. However, there are a few things I would like for you to understand.

I enjoy writing software, and I believe that I am more than capable of writing high quality software. But I do this best when it is software aimed at engineers.

The main reason for this is that while I'm not capable of imagining the end user when it's a regular consumer (e.g. an app user), I can clearly picture the engineer using my librarie and tools. I'm very much interested in writing and maintaining "ergonomic" software for the developers.

For example:

  • Is the software easy to understand how to use?
  • If not, is there documentation / is it easy to read?
  • Is the software designed to be understandable even in the absence of documentation?
  • Is there symmetry in the software (e.g. Get/Set)
  • Is it capable of handling concurrent access?
  • Is it robust/flexible enough that it can be used for purposes that go beyond the initial scope of the software?
  • Is the software capable of reporting proper errors?

To reiterate, I'm not so enhtusiastic about developing applications for the regular consumer. SDK/API development for engineers, developing tools and systems to maintain and operate such consumer applictions are more in my wheelhouse. I'm interested in, and fully capable of designing and developing systems, that aare easier and more stable for a wide range of engineers.

Also I'm not interested in the following:

  • Developing yet another Rube Goldberg machine where its only job is to make requests to SaaS/Cloud vendor APIs.
  • Writing half-baked software for the sole purpose of achieving some artificial deadline.

Things I'm not accepting

I'm willing to accept taking up jobs that do not necessarily perfectly match with what I have described.

However, there are some deal-breakers that would make it impossible for me to be motivated. If the following apply, you should probably look for someone else:

  • If you are thinking of hiring me as a software developer, I do expect to be paid more than a certain amount. For other types of roles, I'm willing to negotiate.
  • Strong peer pressure / expectation to assimilate
    • I grew up in cultures where people are expected to work together towards the same goal while each individual is allowed to keep their own beliefs. If your team expects me to assimilate in order to work together, I'm not your person. You can have your beliefs, but please do not force me to adhere to them.
  • You expect immediate return from my work
    • Most of what I'm interested in only yields results after some initial amount of time. Therefore, you should hire me expecting it to be a medium-to-long term investment.
  • Nominal "flat structure" teams
    • I believe that there are exceptions, but I do not work well with "flat" teams (within a small team, OK, but I don't agree that it should be applied to department/company level). I'm not interested in political survival while doing actual work at the same time. I could handle this if it were for my own business, but I'm not interested in doing this while I'm employed. This is especially true if your organization has more than 50~1,000 members and you employ flat structures. I don't believe I work well in that kind of environment.

前職で予期せず辞表を出すことになってしまいましたので、求職しています。 本来こちらからお願いをしに行くべきですが、世の中には私の知らない企業様も多いため、自ら探すだけでなく、そういったところの方に気づいていただけたら、ということでこのドキュメントを作成しました。

紹介だけでも大変うれしいですので、もしなにかあればまずは このgistの私のIDをユーザ名としてgmailあてにメールをいただけますと幸いです。

経歴等

https://lestrrat.github.io/

2000~2019年まではPerl、C、Goなどを使って、バックエンドのシステムをちいさいものから大きいものまでいろいろ書いていました。現在はGo専門でやっています。 2019-2024前半までの間はOSSや副業でコードは書いていましたが、エンジニアとしての仕事はせず、TechPR文脈での活動をしていました。 上記期間中、OSSにおける開発はずっと続けていました。 本業ではありませんが、プログラミングに関する文筆業もかれこれ15年近くしております。 小規模会社経営経験あり、大規模カンファレンス運用経験あり、欧米企業での雇用経験あり。

他にない強味

育ちが海外なため中身が50/50くらいで欧米人であること。英語はネイティブです。ポルトガル語も少しならわかります。欧米世界のカルチャーに慣れ親しんでいますので、英語環境でも全く問題ありません。毎日チェックしているニュースはBBCです。

それなりの文章を英語・日本語を問わず書くことができます。ある一定の部分までは編集業のようなことも可能ですので、エンジニアとしての経験も踏まえていわゆる技術解説系のブログやデベロッパー向けの解説などの監修・編集は得意です。デベロッパー向けの資料では github.com/lestrrat-go/jwx's の ドキュメント, サンプルコード, and FAQスタイルのドキュメント などをサンプルとしてあげることもできます.

カンファレンス運営、会社運営、執筆活動、など、いわゆるエンジニアリング以外の活動を通じてそれ以外の世界を知っています。

10年という単位で同じOSSをメンテナンスしていたりすることがわかるように長期的なスパンでの行動が得意です。ソフトウェアで言うなら、運用性・堅牢かつ拡張性のあるデザインなどが得意かつ、それを継続して続けることができます。

やりたいこと

エンジニアの役に立つこと

自分がプロダクトを作って世の中の人に使ってもらう、というのはすばらしいと思いますが、私には顧客の顔が見えないためあまり楽しい仕事とは思いません。 一番やりたいことはまわりの(特に、若い)エンジニアたちの仕事が楽になったり、エンジニアであることを楽しいと思えるようになるための施策です。 自分のやっていることが役に立つ対象が目の前にいることを糧にしています。

自分がスーパーエンジニアでなかったため、教育にも興味があります。スーパーエンジニアならコードを読めばわかる、と言われるようなときにそれを説明する、そのための資料を作る等の継続的な活動が必要だなと考えているためです。後進の育成、資料等の充実だけでなく、エキスパートでなくとも使える共用ツールの整備など。

また、SDK/APIデザイン、共用ツール・ライブラリの開発は社内基盤の整備など、OSS開発で培ってきた「不特定多数のエンジニアが利用するツール」の開発・メンテナンスは得意です。

エンジニア向けのクリエイティブな活動

TechPRと言われるようなエンジニア向けお社内外のイベント企画、ノベルティ制作、プロモーション活動など、クリエイティブな活動に興味があります。 インターネットに慣れ親しみ、同じ期間自ら発信を続けて肌感としてどのような手法や表現が取れるのかのラインを熟知しているつもりです。

クリエイティブ系の活動に関しては前々職に関して書いたブログがあります。

ソフトウェア開発に参加することに関して

まず大前提として、本当は開発よりTechPRやサポート方向の活動が一番やりたいことです。

しかし、ソフトウェア開発のほうが需要があることは理解していますので、それを踏まえて、ソフトウェア開発に参加すること自体ははやぶさかではありません。ですが、いくつかご留意いただきたいことがあります。

私はソフトウェアを書くことは好きですし、それなりのクォリティのものを作れると自負していますが、まずそのソフトウェアの利用対象がエンジニアであることが大きいポイントです。 理由は私が一般消費者用のソフトウェア開発で一般利用者のイメージをうまく作ることができないからです。逆にエンジニアが使うソフトウェアはその使ってる姿などをありありと想像でき、そのために必要な工夫やデザインを適用することができるからです。目の前のエンジニアの生産性向上に関しては強くイメージできます。

例えば

  • そのソフトウェアを見たエンジニアがすぐ使い方を理解できるのかどうか
  • 使い方がわからないときはそれがわかるドキュメントがあるのか
  • ドキュメントがないのであればコードを見るとそこから何かが見えるような設計になっているか
  • Get/Setのようなアクションに対称性があるように設計されているのか
  • 並行処理に耐えられるのか(含 排他制御)
  • 作者が意図していなかった用途にも利用できるよう、拡張性がちゃんと担保されているか
  • エラーなどの異常状態をちゃんと検知できるようになっているか

などの要素がそれにあげられます。

ですので、一般消費者向けの新規アプリケーションの開発、といったところには熱意はあまりありません。エンジニア向けSDK/APIの開発や、その新規アプリケーションを作る・運営するのにエンジニアが使わなければいけないツールやモジュールの設計・運用だったり、すでに作られているソフトウェアがより広い範囲のエンジニアに対してもっと使いやすかったりメンテしやすかったりするように(壊さずに)調整・修正していくような活動に対しての情熱があります。

以下2点に関してはほぼ興味がありません:

  • クラウドベンダ・SaaSベンダのAPIを叩くピタゴラスイッチを作ること
  • 納期に間に合わせるためにボロボロのコードを書いてとにかく動かせるようにすること

前者は絶対に嫌というわけではありませんが、正直飽きています。ちょっとしたものは喜んで書きますが、そのような仕組みをメンテナンスし続けるほどの熱意はありません。 後者に関しては火消しとしての活動は理解しますが、そこに私を継続的に置く必要はないと考えています。

無理そうなこと

やりたいことにピッタリはまらなくても目の前のだれかのお役に立てることなら、私は楽しんで仕事ができます。

ただ、以下のような環境や仕事の場合はそもそものモチベーションを保てないことが多いため、大変申し訳ありませんが、私以外の方にあたっていただけますと幸いです。

  • ソフトウェア開発での雇用の場合、一定年収を下回る場合はちょっと辛いです。他の業務であれば検討します。応相談。
  • 同調圧力の強い環境
    • 「私は私、あなたはあなた。でもそれでも同じゴールを見据えて活動はできる」という価値観で育っております。イデオロギーに完全に賛同し、みんなでのみに行き、特別な社内用語でお題目を一緒に唱える…のような同調をみせないと仕事を任せてもらえないような環境での活躍は難しいです。そういった価値観を持っている人と仕事をするのは構いませんが、それを強要されるのはつらいです。
  • 短期でのリターン
    • 基本的に私が行う業務は短期間で成果が出るような業務ではないと認識しています。どちらかというと投資に近いことであり、そのための共通認識を持っていただけない場合、活躍は難しいと考えます。
  • 名前だけの「フラットな組織」
    • フラットな組織が必ずしも機能しないとは考えていませんが(1チーム内でフラットなのはまだわかりますが、部署・カンパニーの単位でフラットな構造には賛成しません)、自分の専門に集中するためには基本的にマネージャがプロジェクトの意義を理解・弁護し、自分がその実行を行うのがよいと考えています。自分の会社や事業であればそこも自分でやりますが、企業内で実行部隊と政治の両方をやるのは難しいです。特に組織のサイズが50人~100人以上の場合にフラットな組織というのをやっている環境では私はやっていけないと考えます。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment