I am a futuristic software engineer.
I am interested of distributed systems, parallelism, concurrency, lockfree algorithms, database architecture and internals, programming language design, algorithms and data structures. You shall find various straightforward, simple implementations of various algorithms on my Github profile. Change the dropdown types field to 'Sources' to see things I created. My code is Zero Clause BSD licenced.
Are you looking for a devops software engineer? Send me an email.
I'm a devops software engineer with skills in Python, Java, Javascript, Terraform. See my personal-manifesto.
Some highlights of what I am building:
Project | Description | Link |
---|---|---|
Automated Assembly Program Synthesis (Python) | I implemented the A* algorithm and run it in parallel to do code generation to automate the synthesis of programs between states. | samsquire/sliding-puzzle-codegen-memory |
JIT compiler (C & machine code) Assembly expression compiler (Python) | An amd64/x86-64 JIT compiler for a Javascript-like language and a Python expression compiler | samsquire/compiler |
Interactive Document editor (Javascript, nodejs, Pouch, Ruby, Python) | An interactive environment for writing documents that are inter-referential | screenshots samsquire/liveinterface project samsquire/live-interface |
Pipelined Graphical Build server and GUI (React, Python, Kubernetes, Hashicorp Vault/Consul/Packer, Prometheus, Kibana) | A command line tool with GUI for bringing up environments with Terraform | samsquire/mazzle samsquire/mazzle-starter homepage |
Register allocation (Python) | A register allocator in Python using a graph colouring and precolouring algorithm. | samsquire/register-allocation2 |
C Parser | An incomplete parser for the C programming language | samsquire/c-parser |
Multithreaded nonblocking barrier runtime | A C program that runs tasks in threads without locks for high throughput | samsquire/assembly |
Distributed pseudomultimodal (SQL/Graph/Document/DynamoDB-like) Database (Python, Flask) | A toy multimodal distributed database that uses Rockset converged indexes | samsquire/hash-db |
3-way text diff (Python) | A 3-way text differ based on Myers algorithm | samsquire/text-diff |
Eventually consistent replication protocol (Python) | A epoll based Python server that asynchronously replicates | samsquire/eventually-consistent-mesh |
Journal #1: 100 Ideas for Computing | A journal of ideas for computing | samsquire/ideas |
Journal #2: Another 85+ Ideas for Computing #2 | A journal of ideas for computing | samsquire/ideas2 |
Journal #3: An Extra 100 Ideas for Computing #3 | A journal of ideas for computing | samsquire/ideas3 |
Journal #4: Additional 100 Ideas for Computing #4 | A journal of ideas for computing | samsquire/ideas4 |
Journal #5: Ideas for Computing | A journal of ideas for computing | samsquire/ideas5 |
Blog: tech blog | A blog of thoughts | samsquire/blog |
I wrote a toy amd64 in Python and JIT compiler in C and the beginnings of a browser engine
I implemented a three way merge diff algorithm based on Myers algorithm. A distributed pseudo multimodal keystore database and a mazzle build server. I also implemented a merkle CRDT and part of the YATA text merging algorithm.
- 🔭 I’m currently working on ideas5, compiler and assembly
- 🌱 I’m currently looking for remote work
- 👯 I’m looking to talk about my ideas
- 🤔 I’m looking for help with ...
- 💬 Ask me about ideas
- 📫 How to reach me: [email protected]
- ⚡ Fun fact:
- My Hacker News comments -->
See my wants repository and my dream for society.
- An O(ND) Difference Algorithm and its Validation
- Left-Right: A Concurrency Control Technique with Wait-Free Population Oblivious Reads
- Merkle-DAGs meet CRDTs
- Serializable Snapshot Isolation
- Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types
- PolarDB Serverless: A Cloud Native Database for Disaggregated Data Centers
- SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value Stores
- Communicating Sequential Processes
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer by Alexander Krizhanovsky
- How to Architect a Query Compiler
- A Gentle(-ish) Introduction to Worst-Case Optimal Joins
- A methodology for implementing highly concurrent data structures
- ZooKeeper’s atomic broadcast protocol: Theory and practice
- Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3
- In Search of an Understandable Consensus Algorithm (Extended Version)
- Concurrency Control Performance Modelling Alternatives and Implications
- Practical Byzantine fault tolerance
- Reading Types in C Using the Right Left Walk Method
- Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures
- Scalability! But at what cost?
- Wait-Free Queues With Multiple Enqueuers and Dequeuers
- A Wait-free Queue as Fast as Fetch-and-Add
- Know Your Limits by Igor L. Markov
- Extended Sequential Reasoning for Data-Race-Free Programs
- Morsel-driven parallelism: a NUMA-aware query evaluation framework for the many-core age
- Implementing deterministic declarative concurrency using sieves
- Native Implementation of Mutable Value Semantics
- The Implementation of Newsqueak
- Can Programmers Escape the Gentle Tyranny of call/return?
- Automatic Parallelisation for Mercury
- Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores
- Efficiently Compiling Efficient Query Plans for Modern Hardware
- Structured Asynchrony with Algebraic Effects
- Keeping CALM: When Distributed Consistency is Easy
- Simple and Effective Type Check Removal through Lazy Basic Block Versioning
- BBQ: A Block-based Bounded Queue for Exchanging Data and Profiling
- Fast Shared-Memory Barrier Synchronization for a 1024-Cores RISC-V Many-Core Cluster
- How to miscompile programs with “benign” data races