Vlad Kozin

Lead Engineer, CTO @ fullmeta.co.uk

London, UK

Former Barclays Capital, Renaissance Capital, Yandex. Mathematician turned investment banker, turned programmer. UK Global Talent awardee. Recurse Center'13. 3x founder: I run fullmeta.co.uk, launched git.ht, launched Sergeant Drill

ClojurePythonJavaScriptJava 18+GoC#F#C

Experience

I wrote compilers, rules engines and expert systems for compliant trading, blockchain VMs, DSLs and dev tools, web backends and React SPAs, algo trading strategies and more. I built a Funding Circle competitor in under 5 months in a team of two. Managed on-prem and AWS hosted infrastructure, organized devops. Hired, trained, on-boarded engineers, successfully transitioned projects to new maintainers.

  • Senior Software Engineer, @ Neo4j

    Apr 2024 - now

    London, UK

    Benchmarking and perf team. Internal tooling.

  • Lead engineer, interim CTO @ Ritisino Holdings

    Sep 2023 - Apr 2024

    London, UK and remote

    Boutique algorithmic and prop trading firm targeting Eastern Europe, India, South Africa. I built two versions of their main algorithmic trading engine: experimental in Common Lisp and one in production in Erlang/OTP. All trading agents modelled as explicit finite state machines driven by events. Wrote a few external components in Python, R and Julia. Preped their infra for trading on NSE, India including exchange colo resources.

  • Aug 2023-now

    London, UK

    Conversational AI agents inside Telegram

    • WIP, working towards MVP

  • Aug 2023-now

    London, UK

    AI-powered Telegram bot that turns your study materials into bite-sized drills aka Anki flashcards and helps you memorize anything and learn faster. Way faster. ~1KLOC of TypeScript and ~6KLOC of Clojure. Integrations with Telegram and LLMs are all custom written.

  • Launched git.ht

    Jan 2023-now

    London, UK

    Made tech blogging as simple as creating a Github gist. My hoots can be found at vlad.git.ht

  • Various contracts

    Dec 2021 - Dec 2022

    London, UK

    Mostly one-off engagements with unhealthy mix of Python and JavaScript with Nodejs.

  • Senior Developer @ Previse

    May 2021-Oct 2021

    London, UK

    Revenue-based financing and SME advance payments for the XXI century. JVM on the backend and ClojureScript with React on the client. I did half of both as well as comlpete OpenBanking and Accounting integrations for the UK and US. Integration with data-science and product teams, internal ledger. Deployed to AWS with Terraform and Kubernetes, managed MySQL. Occasional Python for internal tooling and AWS lambdas.

  • CTO @ plotx.ch

    Dec 2019-Dec 2020

    London, UK and remote

    Infrastructure for Chia (XCH) cryptocurrency and blockchain as a service. On-demand "plotting" and "farming" rigs. Mostly Python for infrastructure management and core functionality, cloud-init and Ansible for provisioning, customized SmartOS hypervisor for virtualisation and datacenter management. Node.js with Express.js on the server and a splash of React on the client. Occasional smart-contract hacking with Chia Lisp.

  • Tech lead and CTO @ fullmeta.co.uk

    Dec 2019-now

    London, UK

    Started out as a Clojure SWAT team targeting JVM then branched out into .NET with Clojure on CLR, C# and F#. We mostly contract with FinTech startups and financial institutions. We prototype, MVP, take projects to scale out, hire, on-board and hand off to staff engineers, port and maintain existing JVM and .NET products. We recently built a Funding Circle competitor in under 5 months and lauched it in UK and US. I personally implemented the entire Open Banking journey, integration with payment processing providers, etc.

  • Senior Developer @ All Street Research

    Jul-Dec 2019

    London, UK

    Three of us built a cognitive assistant for investment banking researchers. Mostly Clojure, ClojureScript. C# and F# with LINQ, Elastic Search, Kafka, MongoDB to integrate customer-side data sources. We also did much of the machine learning and AI hacking: Recursive Neural Networks (pre-LLM approaches), linguistic models and NLP, Lucene, etc. Kubernetes for infrastructure. Java Swing GUIs for internal ML tools.

  • Senior Developer @ Droit

    Apr-Nov 2017

    London, UK

    Put together Droit's first London engineering team. All Clojure and ClojureScript, handpicked and bright. Still proud. Otherwise same hot fintech startup hacking as before the move to London.

  • Senior Developer and Consultant @ Droit

    2015-2017

    New York, US

    Built an expert system for compliant trading. Sneaked Clojure into a few unsuspecting giants like Goldman, Morgan Stanley, etc. You'd typically find me designing DSLs, implementing compilers, parsers, rules-based engines, putting together simple browser-based GUIs and whatever else the startup life would have me do.

  • Developer @ Yandex

    2014-2015

    Moscow, RU

    Officially a member of the Search Interfaces Development Infrastructure group, but mostly I wrote backend tools for source to source compilation - engines to write your template engines. If I was lucky and did it right frontend developers would get to use my work and take all the credit. Mostly JavaScript and Node.js.

  • Vice President, Equity Derivatives @ Renaissance Capital

    2009-2011

    Moscow, RU

    Sales and trading mostly equity options with occasional structuring here and there.

  • Derivatives and Structured Products @ Barclays Capital

    2007-2009

    London, UK

    EM derivatives structuring and sales. Mostly rates and FX with an occasional commodities trade.

Public Speaking

Formal education

Table Stakes

Kind of tech recruiters insist on being mentioned explicitly while I consider "table stakes" for any senior dev. I'm either fluent or comfortable.

Unix shell scripting
Ansible
Python scripting
git, GitHub
CSS, HTML
HTTP, SSL
RESTful APIs
Node.js
CI/CD
KVM, bhyve, qemu, VirtualBox
Docker
Terraform
Prometheus, Graphana
Kubernetes
SQL, NoSQL
Postgres, MySQL, SQLite
Kafka
Elastic Search
Redis
MongoDB
GraphQL
DevOps
AWS, Azure, GCP
Unit testing
Integration testing
Emacs, VSCode

Languages and Runtimes

I'm not picky about "the stack" and will program just about anything: Clojure, Typescript, modern Java, Go, Python, C#, F#, plain C, etc. Most of my code remains proprietary. Select OSS contributions linked below.

English, Russian

What you'll hear me speak on Zoom

Clojure

What I get to use on the job most often. Been using it in production since 2015. Also frontend ClojureScript with React re-frame, rum etc.

fullmeta web

Author. Dynamic language deserves a dynamic web framework.

bot

Author. Cross-exchange crypto-currency arbitrager.

seqexp

Contributor. Regular expressions for Clojure sequences.

TypeScript

Shipped a few products. One of them a full-featured AI agent: Telegram API for communication, embeddings and completions via OpenAI API, React based UI, backend with Node and Fastify, persistency with SQLite and Postgres. Experience implementing VSCode extensions.

JavaScript, ES6

Wrote a fair amount of Node.js at Yandex.

bemhtml-syntax

Author. Transpiler for BEMHTML templates.

xjst-more

Author. Incremental compiler for BEMHTML.

ometa-js

Contributor. JavaScript port of OMeta.

Java and JVM

I'll wrap an existing sub Java 18 API 9 times out of 10 then use Clojure, but I'll happily program modern Java with records, pattern matching, green threads and sane native interface. Even in Clojure I lean heavily on Java tooling for profiling, monitoring and management: JMX, Mission Control, Flight Recorder, VisualVM, instrumentation with agents, etc.

Python

Mostly odd scripting, in-house CLI tooling or as an extension language in larger systems like GDB. Familiar with Python's LLM ecosystem like LlamaIndex, LangChain, etc. Can put together an odd Django webapp.

.NET Core

I'll target CLR from Clojure when allowed. Comfortable diving into existing C# and F# codebases. Never targeted Windows platform, though - only .NET Core components and backends running on Linux. Some exposure to Blazor server-side with SignalR and WebAssembly.

Go

Simple and reasonable with undervalued ecosystem. IMO a sole contender for Java's crown. I dabbled but never used in anger. Be happy to use on the job. Expect to be competent within a week or two.

C

Know enough to be dangerous or pass a systems programming class. Happy to pick it back up if necessary. Likely to stick with C99.

Racket

Favorite lisp. Wrote tons including hairy macros, DSLs and first-class programming languages. Spoke at RacketCon'19 and contributed to Racket core.

tilda

Author. Threading macro with self-documenting hole-markers, clause level keyword options, implicit escape continuation.

racket/tables

Author. Racket extended with first class Lua-style meta-tables for prototypal inheritance, generic associative API and more.

ponzi

Author. Beginnings of a clever Scheme for a discerning smart contract builder. Implements much of the Ethereum VM close enough to the Yellow Paper.

Guile Scheme

Unavoidable Scheme for a pro Guix user like myself.

Emacs Lisp

Unavoidable Lisp for someone who lives inside Emacs. Wrote tons. Surprisingly fun to program.

multi.el

Author. Swiss army knife for Emacs Lisp. Protocols, multi-methods, pattern-matching and destructuring, benchmarking, etc.

Blockchain aka Web3

I am most familiar with Chia (XCH) ecosystem and its own Chialisp smart-contract language. Implemented EVM from the Yellow Paper in Racket.

Other

Boy, where do I even begin. I wrote formal semantics in Redex, grammars in OMeta (also implemented OMeta itself in JS and Racket), scripts in TCL, bits and bobs in Lua (also ported good ideas to Racket); toyed with Factor, OCaml, Rust, Shen, Erlang. Latter I'd be happy to try in production be it Erlang proper, LFE or Elixir.

Frontend

Don't expect a designer but I had to implement UI in most every piece of software I ever shipped.

I am language and framework agnostic. Programming for the web looks the same to me in React, Django, Spring Boot, Blazor, Next.js or whatever else. E.g. I shipped and comfortable with ClojureScript with reagent/re-frame; plain React with Redux for state management - no frameworks; Next.js; plain RESTful backends with Hotwire Turbo for limited interactivity, JSX for server-side rendering & templating; Tailwind CSS for styling.

Infrastructure and Data

Weather you have resources on-prem or in the cloud - I've done it all. I deployed and managed SmartOS hypervisors, provisioned Solaris-like zones, LX zones, Linux KVM and Bhyve VMs, OpenBSD, FreeBSD and GNU Guix boxes with cloud-init and Ansible. Deployed and managed AWS infrastructure by hand via dashboard, by scripting the API as well as Terraform. I modeled and queried data in just about any datastore in active use today.

Data

I programmed against Kafka, Elastic Search, MongoDB, Postgres, MySQL, SQLite. Extensive hands on experience with graph databases e.g. on-prem Datomic and Datascript.

Cloud infra

Hands on and comfortable setting up, deploying and managing EC2, Elastic Load Balancing, VPC routing across regions and multiple availability zones, security groups, policies and IAM roles, RDS, Beanstalk, CloudWatch, SES, SQS, S3, etc. Can setup and manage multiple zones via Route53, can setup CloudFront caching with distributions in S3 and on-prem servers, etc. I can even Tailscale your AWS and on-prem resources together.

I can Terraform and Kubernetes but unless you are a big bank or on the path to Google scale I'll argue against either. If your K8S cluster doesn't have blue to green deploys and no easy way to connect to or forward ports from your pods, you may want to revisit your architecture.

In my experience companies can save a ton of money and much sanity by virtualizing whatever VMs and containers they need on top of SmartOS on a local server. With backups, of course.

Monitoring

I setup and managed on-prem Prometheus and Graphana for monitoring with CloudWatch, JMX and Node exporters for sources.

Product and Management

Hired, fired, onboarded, trained, managed and led by example teams of up to 10 engineers. I practice reasonable variations of agile: 2-week sprints, review in the middle, planning towards the end, short daily standups - I'm usually one to lead these things.

I took several products from conception to launch. Comfortable collecting, updating business requirements, liaising with stakeholders and developers and otherwise act as a product manager. Regular pair-programming sessions. Mandatory code reviews. Comfortable leading a distributed, fully remote team.

When I lead, we ship.

Note to Recruiters

If you are in the UK: my indicative daily rate is GBP 650-800 + VAT when contracting outside of IR35. Inside IR35 is fine. Fulltime is fine.

I'm usually contracted so finding a slot for a highly technical interview can be tricky. Please enquire early. In my experience take home problems work best because weekends, but kindly ask your client to time box them to 1 hour, else I may need to charge my prorated daily rate even if minimal.

Kindly encourage your client to look at my code and pair program a feature or debug something. I’ll happily give them a choice of interesting problems in one of my projects. They’ll see me program computers and I’ll enjoy a bugfix or a feature.