ブックマーク / k0kubun.hatenablog.com (21)

  • エンジニアが給料を12倍にする方法 - k0kubun's blog

    はてブの人気エントリーに日エンジニア達は海外に出なければいけないという記事があった。 カナダ在住で経験年数4年のソフトウェアエンジニア年収1600万円の方らしく、 日より海外の方がソフトウェアエンジニアの給料が一般に高いので海外に行くべきという話が書かれている。 実際僕も居住地域による給与差を利用すべく渡米し、先月の記事 では新卒から数えて8年で年収が12倍になっていた話も紹介した。 一方、年収1600万円であれば海外に出なくても稼げると思っているので、 国内にいてもできそうなものも含め、ソフトウェアエンジニアとして給料を上げる上で過去に活用したハックを紹介していきたい。 昇給履歴 新卒入社 僕が新卒で入社した会社の当時の初年度給与は450万円だった (公開情報)。 大学の4年間はずっとアルバイトとしてソフトウェアエンジニアをやっていて、 3社を渡り歩いて時給は800〜1350円と

    エンジニアが給料を12倍にする方法 - k0kubun's blog
    l08084
    l08084 2023/11/16
  • 自作PC2023: Ryzenをやめた - k0kubun's blog

    RyzenはゲームCPUとしては特に問題ないのだが、 ソフトウェア開発においてはIntelのCPUに比べて不便なポイントがいくつかある。 日々業務で使っていてあまりにもストレスが溜まるので、CPUをIntel Core i7に変更した。 このマシンは8年前に組んだ自作PC なのだが、使っていて不便を感じたパーツを差し替え続けた結果、 今回のアップデートで全てのパーツが当時とは違うものに変わったため、 それぞれ古い方のパーツで不便だったポイントなどを紹介したい。 仕事で使う自作PC 社内のサービスをいじる時は会社から貸与されているM1 MacBook Proを使うのだが、このマシンは不便である。 Rubyのビルドは自分のLinuxのマシンに比べ2倍以上遅いし、Reverse Debuggingができるデバッガが存在しないし、 慣れたツールであるLinux perfも使えないし、Podman

    自作PC2023: Ryzenをやめた - k0kubun's blog
    l08084
    l08084 2023/10/21
  • Mojoは「C言語のように速いPython」なのか - k0kubun's blog

    LLVMやSwiftを作ったChris LattnerがCEOをやっている会社が、Pythonの使用感とC言語並の性能を併せ持つ言語としてMojoをアナウンスした。 まだ手元で試せる状態でリリースされてはいないが、最大35000倍Pythonより速いという。 Mojo🔥 combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models. Also, it's up to 35000x faster than Python 🤯 and … deploys 🏎 pic.twitter.com/tjT09U4F80— Modular (@Modular_AI) May

    Mojoは「C言語のように速いPython」なのか - k0kubun's blog
    l08084
    l08084 2023/05/07
  • 2022年にやったこと - k0kubun's blog

    2021年にやったこと 2020年にやったこと 2019年にやったこと 2018年にやったこと 2017年にやったこと 2016年にやったこと 2015年にやったこと 今年のハイライトは 大学院を卒業し、CS修士号を取った グリーンカードを取った Shopifyに転職し、仕事RubyのJIT開発を始めた という感じの一年だった。 大学 5月にジョージア工科大学のCS修士を卒業した。 ほとんどの人は3~4年かけて卒業するプログラムを、理論上最速である1年9か月で卒業するRTAをやっていた。 かといって特に雑になるでもなく、GPA 3.90/4.00 だったので、GPA 3.36だった学部の時よりかなりマシな成績を取っている。 なんかその記事に書くとダサくなりそうなので書かなかったが、よく宿題の提出期限になる月曜の朝5時はほぼ毎週起きててギリギリに提出するくらいには大変だった。4:57~4:

    2022年にやったこと - k0kubun's blog
    l08084
    l08084 2022/12/31
  • フルタイムOSSコミッタを始めて2か月経った - k0kubun's blog

    Shopifyに入社してRubyのJITコンパイラを書く仕事を始めてから2か月経った。 前職の退職エントリ では今後やりたいことを書いたりしたが、実際OSS開発を仕事にしてみてどうだったかみたいなことを書いておく。 シリコンバレーでのリモート生活 3年前にアメリカ移住し、今年永住権も取得した。 Shopifyは社はカナダにあるし2020年5月からフルリモート企業なのだが、 前職の社があったシリコンバレーのあたりからそのまま引っ越さずに暮らしている。 なぜシリコンバレーに住み続けるのか フルリモートである以上はカナダ移住のためのビザのサポートを会社がする動機もないため、 現職においても住む国の選択肢は基的に日アメリカになると思っている。 飯が安くて美味いのを主な理由としても僕も住むならアメリカより日の方が好きなのだが、 住む地域ベースで多くの企業が給料に傾斜をかけてくるこ

    フルタイムOSSコミッタを始めて2か月経った - k0kubun's blog
    l08084
    l08084 2022/09/29
  • Treasure Data を退職しました - k0kubun's blog

    約5年5か月働いたTreasure Dataを7/22に退職した。7/25からShopifyに入社し、RustでJITコンパイラを開発してRubyを高速化する仕事をする。 仕事としてやりたい分野が変わってきて自分は今回転職したけど、とても良い会社なので、この記事がTreasure Data (以下TD) で働くことに興味がある人の参考になれば良いと思っている。*1 5年勤続記念にいただいたトロフィー やっていたこと APIチーム 元々TDにはJavaで分散システムを書きたくて入社したのだが、TD入社前に特にそういう経験があるわけでもなく主にRailsをやっていたこともあり、Railsでプラットフォームを開発するチームに入った。基盤開発をやりたいと思いながらサービス開発者として最初働き、後に基盤開発チームにジョインするみたいな過去の経験があったので、今回もそういう感じでいけると考えていた。実

    Treasure Data を退職しました - k0kubun's blog
  • 働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog

    4年前に会社の福利厚生を使ってスタンフォードの授業を取ってみたら面白く、 働きながらでも続けられそうだなという実感を得たので、 2年後、受験を経てジョージア工科大学にリモートで通い始めた。 そして先日、ジョージア工科大学からコンピュータサイエンス修士号をいただくことができた。 画像の学位記は卒業式イベント用の非公式のもので、1~2か月すると Masterとちゃんと書いてある物が来るらしい *1 。 After 1 year and 9 months, I graduated from Georgia Tech and got a master's degree in computer science. It was intense to be a student while working full-time, but I learned a lot. pic.twitter.com/J

    働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog
  • 個人開発を黒字にする技術 - k0kubun's blog

    最近は個人開発は自分のOSSのメンテで手がいっぱいになってしまったのでサービス開発のようなものは普段あまりやらないのだが、大学院*1で今学期、何作ってもよいという感じの授業を取ってWeb/iOS/Androidアプリ*2を全て作るという体験をする中で、たまたま個人開発のコストを抑える活動をしたので、その時に調べたり考えたりしたことを書いておく。 Herokuで無料にする Herokuでは毎月550時間free dynoが使え、クレジットカードを登録しておくと更に450時間、合計1000時間無料で使える。Herokuは30分アクセスがないと一旦停止するが、今回授業で作ったサービスでこれを使い切らないことは明らかだったので最初はこれでセットアップした。セットアップも簡単だし、PostgreSQLも無料でついてくる。 ただ、コールドスタートに10秒くらいかかり、これがこのサービスではUX的に致命

    個人開発を黒字にする技術 - k0kubun's blog
    l08084
    l08084 2022/05/06
  • Linux用キーリマッパーxremapをRustで書き直した - k0kubun's blog

    このエントリはRust Advent Calendar (3) 22(-10)日目 の記事です。 5年前にxremapというLinux向けのキーリマッパーを作った (Linux向けの最強のキーリマッパーを作った - k0kubun's blog) のだが、X11のレイヤーで実装したため、GNOMEのActivitiesでリマップが効かなかったり、WaylandではXWayland内でしか動かないといった問題があった。 これらの問題を解決すべく、xkeysnailやwayremapといったツールが後に作られたのだが、xkeysnailはWaylandで動かずwayremapはX11で動かない方針なのと、やはり全てのキー入力を中継するようなツールはPythonのような遅い言語よりRustみたいな速い言語で書かれるべきだと思ったので、後発のツール*1の良いところ取りをしながら今回xremapを作

    Linux用キーリマッパーxremapをRustで書き直した - k0kubun's blog
    l08084
    l08084 2022/01/11
  • まだパソコンのOS選びで消耗してるの? - k0kubun's blog

    昨日、大学生協推奨のPCが20万のWindowsマシンなのを見てなぜMacじゃないのかという声がTLに流れていたり、それで思い出したのか、逆にMacじゃなくてLinuxを使っている人はなぜそうしてるのかみたいな話がvim-jpで盛り上がったりしていた。 Windowsを使い始めてから17年、Macを使い始めてから8年、Linuxデスクトップを使い始めてから6年経ち、今は用途に応じてその3つをどれも使っているという感じなのだが、個人的にはどれも善し悪しだと思っているので、状況に応じて何を使うべきか自分の考えを書いておく。 大学生は何を買うべきか 特にプログラミングとかやるつもりがない大学生でお金がある人は、素直に推奨されたWindowsマシンを買っておくと、大学側が使わせてくるソフトが動かない可能性も流石に低いだろうし、周りと環境が揃っていて質問とかしやすいので無難だと思う。金がなければ中古

    まだパソコンのOS選びで消耗してるの? - k0kubun's blog
    l08084
    l08084 2021/04/29
  • Pryはもう古い、時代はIRB - k0kubun's blog

    僕はRubyで開発をする時は毎回Pryを使うくらいの熱狂的Pryユーザーだったのだが、PryはGemfileに書いてないと binding.pry できなくて不便。任意のgemをdefault gem化するgem default コマンドも作ったのだが、これをやるのすら面倒だと思っていた。 ある日、nobuさんがRubyに binding.irb という機能をいれた。Pryがdefault gemになるのを待つよりPryで僕が使う機能をIRBに全部移植してしまった方が早いのではないかと思い、4年前からPryの機能の移植活動を始め、今日僕がよく使う機能を全て移植し終えた。 その記念に、この記事ではIRBのPry互換の機能を紹介する。昔 今更聞けないpryの使い方と便利プラグイン集 という記事を書いたんだけど、この中で僕が毎日のように使うコマンドは全てIRBに移植したので、それを紹介する稿を

    Pryはもう古い、時代はIRB - k0kubun's blog
    l08084
    l08084 2021/04/03
  • 2020年にやったこと - k0kubun's blog

    2019年にやったこと 2018年にやったこと 2017年にやったこと 2016年にやったこと 2015年にやったこと ハイライト 子供が産まれた 大学院生になった Ruby 3x3 を達成した I became a father ☺️ pic.twitter.com/Uq0Jgbduny— k0kubun (@k0kubun) July 15, 2020 I've been officially admitted to Georgia Tech's OMSCS (Online Master of Computer Science). I'm excited for being a student again. I chose the online course to take it without quitting my job, but due to COVID-19 it's pro

    2020年にやったこと - k0kubun's blog
  • リモートでアメリカの大学院に通い始めた - k0kubun's blog

    今年春に出願、夏に合格して秋学期からオンラインのコンピュータサイエンス修士コースで勉強している。ちょうど秋学期が終わって成績が返ってきたので、どういう感じだったか書いておく。 I've been officially admitted to Georgia Tech's OMSCS (Online Master of Computer Science). I'm excited for being a student again. I chose the online course to take it without quitting my job, but due to COVID-19 it's probably not that different from other people's experience.— k0kubun (@k0kubun) July 31, 2020 ど

    リモートでアメリカの大学院に通い始めた - k0kubun's blog
  • ElectronでYoruFukurou風のTwitterクライアントを作った - k0kubun's blog

    最強のTwitterクライアント戦争 なんか戦争をやってる人たちがいたので乱入することにした。 日記書いた / 最強のTwitterクライアント作り始めた - 9mのブログ http://t.co/ecq7nT40qp— 友緒利奈 (@9m) August 22, 2015 最強のTwitterクライアント戦争参戦したい— 戦車 (@r7kamura) August 22, 2015 戦争だ…! / “最強のTwitterクライアント戦争に参戦 - ✘╹◡╹✘” http://t.co/iJ3BAgPvFI— 友緒利奈 (@9m) August 22, 2015 YoruFukurou風のTwitterクライアント 最近デスクトップでLinuxを使い始めたんだけど、YoruFukurouみたいな感じで使えるTwitterクライアントがなくて困っていた。 なので、YoruFukurouを再実

    ElectronでYoruFukurou風のTwitterクライアントを作った - k0kubun's blog
    l08084
    l08084 2020/09/30
  • ベイエリアは東京より儲かるのか - k0kubun's blog

    サンフランシスコベイエリアでのITエンジニアの給料は東京より高いが、税金や物価も高いと言われている *1 。ではどちらに住む方がより多くの金が手元に残るのだろうか。 僕がベイエリアに移住してからちょうど1年が経ったので、僕が東京とベイエリアそれぞれにいた頃の出費やタイトルでどのくらい家の収支に差が出るのかということをまとめてみる。なお、この記事を書いている時点で 105.60 円/ドル なので、ドル円の変換をする際はこのレートを用いる *2 。 収入 基給 ベイエリア 東京 $153,600 913万円 GitLabは同社の世界各地での待遇計算基準を 公開 しており、地域間の差異を公平に計算するには割とよくできたベンチマークなのでここの年収をそのまま使う。計算に使われる location_factors.yml では、日の給与はサンフランシスコの 56.3% になっている。 Calcu

    ベイエリアは東京より儲かるのか - k0kubun's blog
    l08084
    l08084 2020/09/30
  • Rubyで最速のテンプレートエンジンを作る方法 - k0kubun's blog

    HamlitというRubyで使うテンプレートエンジンをメンテしてて、ちょっと前に思いついたけどこれまで実装してなかった最適化のアイデアを昨日それに実装したので、それについてちょっと書きたい。 github.com StringTemplate というテンプレートエンジン amatsuda/string_template というテンプレートエンジンがあって、 これは "the fastest template engine for Ruby" であると主張されている。 I think I just invented the fastest template engine for Ruby (Rails). Please enjoy! https://t.co/N056SReLh2 https://t.co/74MdR5DINj— Akira Matsuda (@a_matsuda) Dece

    Rubyで最速のテンプレートエンジンを作る方法 - k0kubun's blog
    l08084
    l08084 2019/09/16
  • リモートでアメリカの大学院のCSの授業を取ってみた話 - k0kubun's blog

    Armの福利厚生プログラム FlexPot 私が所属しているトレジャーデータは今年Armに買収され、福利厚生周りがArmのものに刷新された。 その中にFlexPotというものがあり、自己啓発にお金をつかってその領収書を会社に出すと、1年間の合計で上限XX万円まで会社が負担してくれるというもの。具体的な額の公開情報が見当らなかった*1のでふせておくが、割とがんばって使わないと損だなと感じる程度にはもらえる。 何に使うか考えたところ、私は主に家庭と自分の経済的な理由で大学院に行かず働き始めたものの、だんだん会社に給与的な意味で認めてもらえるようになり今は経済的に余裕ができたので、FlexPotも活用しつつちょっと大学院の授業受けてみようかなという気持ちになった。 スタンフォードの Non Degree Option アメリカ移住を考えている都合、日ではなくアメリカの大学院に行った方がアメリ

    リモートでアメリカの大学院のCSの授業を取ってみた話 - k0kubun's blog
    l08084
    l08084 2018/12/23
  • SQLで羃等にDBスキーマ管理ができるツール「sqldef」を作った - k0kubun's blog

    sqldefのリポジトリ github.com これは何か Ridgepoleというツールをご存じでしょうか。 これはRubyのDSLでcreate_tableやadd_index等を書いてスキーマ定義をしておくとそれと実際のスキーマの差異を埋めるために必要なDDLを自動で生成・適用できる便利なツールです。一方、 で言われているように、Ridgepoleを動作させるためにはRubyやActiveRecordといった依存をインストールする必要があり、Railsアプリケーション以外で使う場合には少々面倒なことになります。*1 *2 そこで、Pure Goで書くことでワンバイナリにし、また別言語圏の人でも使いやすいよう、RubyのDSLのかわりに、誰でも知ってるSQLCREATE TABLEやALTER TABLEを書いて同じことができるようにしたのがsqldefです。 使用例 現時点ではMy

    SQLで羃等にDBスキーマ管理ができるツール「sqldef」を作った - k0kubun's blog
    l08084
    l08084 2018/08/25
  • SSEを使ってHTMLエスケープを高速化してみた - k0kubun's blog

    高速なHTMLエスケープをするライブラリを作った ある日HTMLエスケープを速くしたくなって、hescapeというライブラリを作った。 github.com とにかく速いHTMLエスケープがしたい Railsアプリのビューのレンダリングにおいて、CGI.escapeHTMLを高速化*1することでRailsのデフォルトのテンプレートエンジンが大きく高速化されたり*2、GitHubでもHTMLエスケープが全体のパフォーマンスに影響が大きかった事例もある*3など、常に自動でHTMLエスケープが行なわれるRailsの環境ではHTMLエスケープの速度が割と大きな意味を持っている。 従って、Hamlitの最速性を維持するためにHTMLエスケープのパフォーマンスを極めておきたかった。 vmg/houdini を倒したい 前述したGitHubの人が既にhoudiniというかなり速いエスケープライブラリを作

    SSEを使ってHTMLエスケープを高速化してみた - k0kubun's blog
    l08084
    l08084 2018/02/17
  • GraphQLは何に向いているか - k0kubun's blog

    今年GitHubGraphQL APIを正式公開したあたりから、GraphQLが去年とかに比べちょっと流行り始めたように感じる。idobataがGraphQL APIを公開したり、Kibelaも公開APIGraphQLで作ることを宣言している。 利用者側からすると使えるインターフェースの中から必要なものを調べて使うだけなのであまり考えることはないのだが、自分がAPIを提供する立場になると話は変わってくる。REST APIGraphQL APIはどちらかがもう一方のスーパーセットという風にはなっておらず、どちらかを選択すると何かを捨てることになるので、要件に応じてどちらを選ぶのが総合的に幸せなのか考える必要がある。 以前趣味GitHub連携のあるサービスを作っており、それを最近GraphQL API v4を使うように移行し、そこでついでにそのサービスのGraphQL APIを書いてみ

    GraphQLは何に向いているか - k0kubun's blog
    l08084
    l08084 2017/09/12