Tienson Qin@tiensonqin

Father, spurs fan, Clojure && OCaml.

To contact me about potential contract or full time work (or just to say hi), email me at tiensonqin [AT] gmail.com.

2019/02/14How we optimized 100 sec elasticsearch queries to be under a sub second. – Abhishek Andhavarapu
2019/02/1430x Faster Elasticsearch Queries | Mixmax Engineering Blog
2019/02/12Favorite OCaml papers?
2019/02/07How to use LISTEN and NOTIFY PostgreSQL commands in Elixir?
2019/02/06Monitoring Erlang Atoms – Klarna Engineering
2019/01/31MXNet GANs with Flans - Nextjournal
2019/01/31Clojure MXNet Introduction - Nextjournal
2019/01/31Erlang Scheduler Details and Why It Matters - Hamidreza Soleimani's Blog
2019/01/30Performance of Rust's match vs. lookup tables
2019/01/30Let's #TalkConcurrency with Joe Armstrong | Erlang Solution blog
2019/01/30Boost message passing between Erlang nodes
2019/01/30A Million WebSockets and Go – freeCodeCamp.org
2019/01/30Lock-free Rust: Crossbeam in 2019 | stjepang.github.io
2019/01/30Building a "Simple" Distributed System - The What — Jack Vanlightly
2019/01/29A simple, possibly correct LR parser for C11
2019/01/28I read a paper: 'In search of an understandable consensus algorithm' (the Raft paper)
2019/01/26Algebraic Effects(-ish Things) in Clojure / Will Acton
2019/01/25Clojure transducers from the ground up: using them in practice.
2019/01/25Clojure transducers from the ground-up: the essence
2019/01/25Building ETL pipelines with Clojure and transducers
2019/01/23Gagallium : Generators, iterators, control and continuations
2019/01/23Optimizing pattern matching
2019/01/23Detecting use-cases for GADTs in OCaml
2019/01/23LIRS: An efficient low inter-reference recency set replacement policy to improve buffer cache performance
2019/01/23Finger Trees - Andrew Gibiansky
2019/01/23Finger trees: a simple general-purpose data structure
2019/01/22Type Theory and Formal Proof: An Introduction
2019/01/19Continuation-Passing Style - COS 326
2019/01/19Separation logic and bi-abduction | Infer
2019/01/16Performance and Profiling
2019/01/16A Nix parser in Ocaml. Part 1: Lexer · pl-rants
2019/01/16A Primer on Database Replication
2019/01/16ASM.OCaml – OCamlPro
2019/01/16Tech Choices I Regret at Spectrum
2019/01/16Algorithms Behind Modern Storage Systems - ACM Queue
2019/01/14Bitcask - A Log-Structured Hash Table for Fast Key/Value Data
2019/01/12Introducing Verified React – Imandra – Medium
2019/01/10Keeping CALM: When Distributed Consistency is Easy
2019/01/09Weak Type Variables | OCamlverse
2019/01/09Optimizing a breadth-first search
2019/01/09I've been writing ring buffers wrong all these years
2019/01/07Cuckoo Filter: Practically Better Than Bloom
2019/01/05Queues Don't Fix Overload
2019/01/05Erlang's Tail Recursion is Not a Silver Bullet
2019/01/05Receiving messages in Elixir, or a few things you need to know in order to avoid performance issues | Erlang Solution blog
2019/01/05A new adaptive accrual failure detector for dependable distributed systems
2019/01/04Bytecode compilers and interpreters | Max Bernstein
2019/01/04Implementation of the Erlang Timer Module | azunyanmoe's blog
2019/01/04Philip2: an Elm-to-ReasonML compiler – Paul Biggar – Medium
2019/01/03OCaml Hash Table Chronicles - A Foo walks into a Bar... - blog by Paul Shved - coldattic.info
2019/01/03Coq: The world's best macro assembler? - Microsoft Research
2019/01/03Backend In the Frontend: Implementing Raft in JS – Matt Ritter
2019/01/03Eff Directly in OCaml
2019/01/03Algorithms by Jeff Erickson
2019/01/02Simple and Efficient Purely Functional Queues and Deques - CHRIS OKASAKI
2019/01/02Case Study: Okasaki’s Lazy Queues
2019/01/02BrainNet: A Multi-Person Brain-to-Brain Interface for Direct Collaboration Between Brains | bioRxiv
2019/01/02Using TLA+ to understand Xen vchan - Thomas Leonard's blog
2018/12/31Field notes on extending the Erlang packet parser
2018/12/31Easy mistakes when writing OCaml C bindings - Brendan Long
2018/12/30(Less than) 12 Days of Prolog - A guide + brief review of the Prolog programming language - DEV Community 👩‍💻👨‍💻
2018/12/29Rrweb.io | Open source web session replay library
2018/12/29Announcing Try F# on WebAssembly
2018/12/27Jane Street Tech Blog - Core Gems: many happy returns
2018/12/27Welcome, adventurer! — BEAM VM Wisdoms
2018/12/27Fluent Polymorphism with Visible Type Applications
2018/12/26PacificA: Replication in Log-Based Distributed Storage Systems - Microsoft Research
2018/12/25Kafka versus RabbitMQ
2018/12/25Event-Driven Architectures - Queue vs Log - A Case Study — Jack Vanlightly
2018/12/25Event-Driven Architectures - The Queue vs The Log — Jack Vanlightly
2018/12/25RabbitMQ vs Kafka Part 1 - Two Different Takes on Messaging — Jack Vanlightly
2018/12/23A successful Git branching model » nvie.com
2018/12/22How the SQLite Database Works - DZone Database
2018/12/21Open Season on Hylomorphisms –   Bartosz Milewski's Programming Cafe
2018/12/20CRDTs in Production
2018/12/20Virtual Libraries
2018/12/18A Network Protocol Stack in Standard ML | SpringerLink
2018/12/16Lucene 6.0 实战(2)-各种Field及排序操作 | IT草根
2018/12/15Build systems a la carte - Microsoft Research
2018/12/14Robert Virding - Hitchhiker's Tour of the BEAM
2018/12/14The Art of Multiprocessor Programming, Revised Reprint
2018/12/14Write your Own Virtual Machine
2018/12/13Batch Operations on Collections
2018/12/13An Introduction to Lock-Free Programming
2018/12/13The Power of B-trees
2018/12/13Implementing Deletion in B+-trees - Stanford InfoLab Publication Server
2018/12/13How the append-only btree works
2018/12/13Stratified B-trees and versioning dictionaries
2018/12/13Why should I have written ZeroMQ in C, not C++ (part I) - 250bpm
2018/12/12Adelblog - Existential types in Rust
2018/12/11Blag.nemo157.com - Inside Rust's Async Transform
2018/12/11Our current OCaml best practices, part 2
2018/12/11Jane Street Tech Blog - The perils of polymorphic compare
2018/12/10UUID or GUID as Primary Keys? Be Careful! – Tom Harrison’s Blog
2018/12/09Pearl No.4 - Kth Smallest in the Union of 2 Sorted Collections
2018/12/08The Swiss Army Knife of Hashmaps | Arrow of Code
2018/12/07Clojure 1.10's Datafy and Nav - An Architect's View
2018/12/06Drawing graphs with dot
2018/12/03高可用Redis服务架构分析与搭建 - Horstxu - 博客园
2018/12/02Ocaml vs Maybe Not - NHM Tech Articles