Hi, I'm Gram

  • An adventurer from Amsterdam.
  • Python, Go, Security.
  • Public speaker.
  • A lot of Open Source.
  • Always smarter than yesterday.

Experience

6. EclecticIQ

2019-05 — now

  • Research and develop text processing solutions (OCR, NER).
  • Apply AWS solution (SageMaker, Textract, Comprehend).
  • Build OpenAPI system and documentation for all endpoints.
  • Discover, report, and fix vulnerabilities in the platform.
  • Create CI/CD pipeline on Gitlab CI.

5. Cindicator

2018-06 — 2019-02

  • Create Spotify's Luigi based ML pipeline.
  • Rewrite trading platform that retrieves information from cryptocurrency exchanges, pass it into strategies, get a prediction about cryptocurrencies prices and make trades.
  • Make simple trading strategies.
  • Improve testing practice, write a lot of tests.
  • Integrate code quality solutions on CI, create style guides.

4. Smena

2017-05 — 2018-06

  • Build monitoring system.
  • Refactor report service (performance is increased from 12 hours to 90 seconds).
  • Develop Flask-based microservices.
  • Support and improve big Django-based monolith.
  • Analyze customers' data for marketing purposes.

3. Frodex

2017-04

  • Integrate Postres-XL.
  • Build JS obfuscator on Python (my dark past).
  • Work with phisycal servers on CentOS.

2. Life4Web

2016-01 — 2017-05

  • Organize a team, manage tasks.
  • Discuss projects details with clients.
  • Choose technical stack for projects.
  • Develop Django-based backend.

1. USATU

2015-05 — 2017-05

  • Research language influence measurement.
  • Apply Claude Shannon's information theory to natural language analysis.
  • Build programs and web services for text analysis.

0. USATU (education)

2013-09 — 2017-09

  • Participate in CTFs as a team lead.
  • My graduate thesis is about building automatic vulnerabilities aggregation system and matching them with installed packages on a server.
  • Have a red diploma (almost all marks are "excellent")

Projects

DepHell

The best Python project manager, all-in-one solution with a smart resolver.

TextDistance

Compute the distance between sequences. 30+ algorithms, pure python implementation, common interface, optional external libs usage.

FlakeHell

Flake8 wrapper to make it nice, legacy-friendly, configurable.

Deal

Design by contract and property-based testing with static analysis.

Genesis

Typesafe concurrent generic functions for Go: map, filter, reduce, shuffle etc.

More!

I have 40+ Open Source projects. Check them out at orsinium.dev/projects.html.


Languages

Python

This is my favorite language, I'm in it about 6 years. I know source code of almost all stdlib, have many Python-based Open Source projects and public talks.

Go

I'm in love with Go. It has quite a different philosophy rather than Python, and it's great. I've started to use it about a year ago but already have a few projects.

PHP

It is my first web programming language. I know it well, can read a code, understand what's going on. And explain why PHP is bad.

HTML, CSS & LESS

Yeah, they are not a programming languages but so. I can make a simple layout, inspect, fix, design. And also I can use Bootstrap 4 to make the site you're looking at.

More!

I like to learn new things and conceptions. I have experience with Haskell, Idris, RPython, Pony, Nim, Crystal, Elixir, Clojure, Scala, JS, Ruby. I'm not afraid to read and fix code on any language.

Hard skills

Linux

I live in Linux for 8 years, can solve any issue from a terminal. I've worked with different Linux distros (Ubuntu, Debian, CentOS), set up physical servers, VPS, Raspberry Pi, Orange Pi.

Security

I have an Information Security red diploma, interested in practical aspects of security, have many publications on different topics, visited some security conferences. I was a founder and leader of the CTF team that have gotten 6th place on an international contest (alert1 team). In Smena team I've made global security audit, fixed many security issues, integrated some security systems like brute force protection and intrusion detection.

DS and ML

At the university, I worked in the linguistic department where I researched language and text influence, adopted Claude Shannon's information theory to natural languages. In Cindicator I wrote simple trading strategies that get information from crypto exchanges and make predictions about cryptocurrencies prices. On free time I learn Machine Learning and build different cool models. See my projects for examples.

Software Architecture

I know design patterns, antipatterns, refactoring techniques, 12 factors, SOLID principles. In Cindicator a was the architect for the trading platform from the first lines of code to the successful launch.

Logic

I'm familiar with formal logic basics, boolean logic, math logic, a little bit with proof theory. deal is my experiment on how good you can prove code automatically, without writing proofs at all.

Math

I math! I watch Numberphile, solve riddles and equations for fun, know how to apply math in my work to make code faster and even nicer.

Testing

Unit testing

All my Open Source projects have a lot of tests. For example, deal has 100% coverage and has been checked through performance and mutational tests.

Load testing

In Smena I did a lot of performance testing with Locust, did continuous system monitoring, and was responsible for the system stability.

Regression testing

In Cindicator it was critical to have a reliable trading platform because of operating with big money. The first version was manually checked, and for every next release, I made hard regression tests on a lot of data and states.

Storages

PostgreSQL

I've completed DBA1, DBA2, and DBA3 courses from Postgres Professionals company. So, I little bit know how to set up, optimize and replicate the PostgreSQL database.

Redis

I like this storage for speed and simplicity. For example, my brute force protection tool works on top of it.

MySQL

I worked with MySQL in Smena a lot. Eventually, I know how to optimize queries, do replication and backups, set up a server, and debug a strange behavior.

MongoDB

I know how to set up and use it for the best security and performance, how to build good documents structure. In Cindicator we had an ML pipeline heavily tightened with MongoDB. Also, I'm mongoengine contributor.

ElasticSearch

This is very fast storage with cool query syntax. In Smena we use it for data caching in ERP and for logs storage.

Libraries

Django

In Smena we had a huge Django monolith. I know Django's source code better than the birthdays of my relatives. However Django has some issues for big projects, so I've made DjBurger.

Flask

This is the most popular web framework. An old, a little bit slow, but beautiful. So I know it very good, but I prefer to use more fast alternatives like Sanic. It's more modern and fast.

Django REST Framework

I like to work with DRF. This framework has some disadvantages, but also it's quite simple and popular.

Luigi

I'm Luigi contributor and know everything about how it works. I've made all ML pipeline in Cindicator based on Luigi, and it still works on production without any issues. Also, I have public talk about it.

SQLAlchemy

It can't scare me. In Cindicator and EclecticIQ we have tons of queries, requests, sessions management logic. I can handle it, debug and optimize queries, work with Flask-SQLAlchemy and SQLAlchemy-mixins.

Pandas

In Smena I built really fast and effective report system on the top of pandas. In Cindicator I wrote the trading platform and strategies that processes all the data using the pandas power. At my free time I do data analysis and it always first of all means work with pandas and charts.

DevOps

Docker

I've packed in Docker all infrastructure of Farfor (when I worked in Smena), the ML pipeline and the trading platform in Cindicator. All it still works perfectly on all environments from development to production.

Docker-compose

When I say "docker" I mean "docker-compose" as well. It's a cool tool, and all my dockerized projects have docker.compose.yml. And no, I haven't learned k8s yet, stop shaming me.

Elastic Stack

Elastic Stack (ex. ELK) is the huge monitoring system to aggregate logs, messages, and state from all parts of the system. It includes Elastic Search, Logstash, Kibana, MetricBeat, FileBeat etc. I can monitor with it all infrastructure. You can find my demo stand of this system in python-syslog-logstash repository.

Soft skills

Scrum

I'm working with it every day, know how to estimate tasks, make informative descriptions and track progress most effectively. Also, I'm familiar to Jira and know how to use filters, dashboards, boards, search queries. In my hometown, I was a part of Atlassian User Group.

Kanban

This is my favorite Agile methodology. I organized processes in my team by Kanban and use Trello board to order my personal tasks. And it works great!

Leadership

I made my own web studio, CTF team, patronized newbies in Smena, built and coordinate software architecture in Cindicator team. I can create, distribute, delegate, control, and estimate tasks, work with people.

Part of the team

I like to discuss tasks, manage them, organize my work time, estimate and prioritize. I'm always happy to communicate, but avoid spending work time. In Smena and Cindicator I built perfect standups: fast and informative.

Public talks

I like to talk to people about my tasks and knowledges, spread cool ideas. You can discover some of my talks here. Most of them on Russian, but I'm going to fix it.