- Solving complex challenges
- Addressing feedback and goals
- Proposing ideas and technologies
- Documenting to reduce iterations
- Implementing and reviewing the code
- Reliability and performance tuning
- Investigating the most tricky cases
- Answering questions and learning
Python - 12 years:
AsyncIO, AsyncMock, BeautifulSoup, Celery, Chalice, CherryPY, Django, FastAPI, Gevent, Gipc, Graphene, GraphQL, GreenletProfiler, Gunicorn, Multiprocessing, MyPy, PoeThePoet, Poetry, PyQt, PyTest, Requests, Socket, SQLAlchemy, TweePy, Typing, Uvicorn, Websocket
TypeScript - 1 year:
SQL and NoSQL - 21 years:
DynamoDB, Hasura (ahasura), Memcached (pylibmc, pymemcache, twemproxy), Metabase, MongoDB (pymongo), MS SQL, MySQL (my4geks, mysql-python, pymysql, umysql), PostgreSQL (data-modifying CTEs, pg4geks, pl/pgsql, psycopg2, RLS), Redis (gearman, pythongearman, redis-py), SQLite
AWS - 11 years:
API Gateway, AWS CLI, AWS-SDK (TypeScript), Boto (Python SDK), CDK (TypeScript), Certificate Manager, CloudFormation, CloudFront, CloudWatch, Cognito, cross-account S3-SQS-Lambda, DynamoDB, EC2, ECS/Fargate, ELB, IAM, Lambda, RDS, Route53, S3, Sagemaker, SNS, SQS, SSM, SSM bastion tunnel, VPC
Auth0, Bash, Docker, GitHub Actions, GitLab CI, Harness, IPTables, Kotlin TeamCity DSL, Kubernetes, Linux, Locust, Nginx, Sentry, Serverless Framework, ShellCheck, Terraform, Ubuntu
Chrome Extensions, CSS, Elasticsearch, Flutter (dargon2_flutter, dart, hive, soundpool, sqflite_sqlcipher), Git, Graphviz, HTML, Jira Apps, MoinMoin, NLTK, RabbitMQ (amqpy, carrot, mqks, nucleon.amqp, puka), SMPP, SphinxSearch, Sumo Logic (alerts, dashboards, lookups, monitors, search query language), VoIP (agi, ami, ari, asterisk, dialplan, fastagi, pyst2, pystrix)
English - 29 years:
8.2/10, B2-C1, advanced
- Project: Moving IaC and CI/CD of a big customer to a new level
- Role: Senior Software Engineer
- Improved skills: aws, bash, docker, gitlab ci/cd, harness, kubernetes, python, typescript
- Project: Apps for robots saving more people with better outcome in less time
- Role: R&D backend engineer
- will-do hands-on problem solving
- addressing feedback and goals
- proposing ideas and technologies
- documenting to reduce iterations
- implementing and reviewing the code
- reliability and performance tuning
- investigating the most tricky cases
- answering questions and learning
Improved skills - and opensource created:
- python: fastapi, typing, mypy, uvicorn, poetry, poethepoet, asyncio, AsyncMock - ahasura
- js/typescript: es2022, typegraphql, prisma, cdk, aws-sdk
- db: postgresql, rls, pl/pgsql, data-modifying CTEs, hasura - bug report, workaround, doc fix, more
- bash: scripts - answer
- docker: secrets, size and performance optimizations
- serverless.com: lambda-image, serverless-ecs-plugin - issues #2, #3, #4
- aws: cdk, ssm bastion tunnel, cognito, cross-account s3-sqs-lambda, sns, cloudformation - comment
- devops: terraform, kotlin teamcity dsl, gitlab ci/cd
- sumo logic: search query language, lookups, dashboards, monitors, alerts
«Denis is an excellent developer, combining a deep level of technical knowledge,
with a thorough and methodical approach to everything you ask him to do.
When Denis first joined our team, he made some technical suggestions
that allowed us to accelerate our deliveries on a challenging project.
I am very happy that we listened his recommendations
any updated our architecture and frameworks accordingly.
I wouldn't hesitate to recommend Denis, or hire him again in the future.»
Craig Watkinson, Senior Software Engineer at CMR Surgical
«Denis is a great developer who has gone above and beyond
to ensure that he has a grasp on not just the work he is tasked with
but the wider picture as well.
Denis has driven forward improvements at CMR making great suggestions
which will have a real benefit when developing services for our customers.»
«Thank you for your work on this service - I think your approach to the design is letting us iterate on this very quickly without costing us much time. There have been quite a few changes requested and that's not a bad thing it is the process working to make sure we produce the right result. I think you've been very patient!»James Cooke, Staff Software Engineer at CMR Surgical
«Very well written documentation for this epic Denis,
easy to read and understand, easy to follow whats been done,
whats next and gives the ticket real context.
Have read through the code and all looks good from my understanding»
Jake Leigh, Software Engineer at CMR Surgical
«Denis brings a wealth of knowledge and can make reasoned recommendations
about best practices for designing API and data storage solutions.
He is a pleasure to work with, can take feedback and communicates well.
He is a natural learner, always curious about the optimal way to structure the code,
but able to take pragmatic compromises to ensure delivery.
Given an opportunity, we wouldn't hesitate to hire him again.»
Jan Jedrzej Chwiejczak, Product Manager and Engineering Lead at CMR Surgical
- «Denis is an excellent developer, combining a deep level of technical knowledge, with a thorough and methodical approach to everything you ask him to do. When Denis first joined our team, he made some technical suggestions that allowed us to accelerate our deliveries on a challenging project. I am very happy that we listened his recommendations any updated our architecture and frameworks accordingly. I wouldn't hesitate to recommend Denis, or hire him again in the future.»
- Project: Moving education from paper to screen to AI era
- Role: Backend architect & innovation engineer
- R&D, new products
- proposing new ideas, requirements, flows, models
- documenting, implementing most complex parts
- reviewing PRs a lot, proposing fixes and improvements
- answering questions, teaching and learning
Improved skills - and opensource created:
- python: black, django, asyncio, graphql, graphene - aiographql
- serverless: aws sam, fargate, chalice - chalice-lambda-image
- aws: iam, ssm, s3, rds, vpc, elbv2, apigateway, ecs, route53, sagemaker
- bash: shellcheck, aws cli - binfra
- deploy: docker, kubernetes, kops, terraform
- db: postgresql+jsonb, metabase, hasura
- ai/ml: ecree, openai, sagemaker, tensorflow
- integration: auth0, jira apps, chrome extensions, ims qti, ims lti sso
- tdd: factory_boy, pytest
- ci/cd: semaphoreci, circleci, github actions
- dev tools: sentry, locust, swagger, quip, jira, slack, zoom, github, kitty+micro - config
«Denis Ryzhkov #Kudos I couldn't imagine working without you!
#MakingWorkFun and bringing great engineering quality and documentation»Kwan Hong Lee, CTO at Finetune
«Denis is a great person to work with, really a problem solver specialist, he is a great mentor and I am glad to have the chance to work with him.
He always provides great feedback and helps everyone as much as he can. I called him "The Professor" because of how much I learned from him.»
Tiago Almeida, Team Lead at Finetune
«This is brilliant - thank you for your help.
There is a lot of interesting information in here.»
Finetune customer, satisfied by Metabase we provided
- «Denis Ryzhkov #Kudos I couldn't imagine working without you!
- Project: Connecting you with the right person for any question or emotion
- Role: Python Senior Software Engineer and Architect
Created main frameworks, libs - and opensource:
Proposed and done over 500 tasks:
- development of frameworks
- scalability and failover
- performance optimization
- deep investigations
- documenting flows
- helping teammates
- coding daemons
- code review
Improved my skills in:
- python, its stdlib: multiprocessing, socket, etc
- greenlet, gevent, gevent-websocket, gipc, greenletprofiler, gbn
- memcached, twemproxy, pylibmc, pymemcache
- redis, redis-py, gearman, python-gearman, zeromq, zookeeper
- rabbitmq, puka, amqpy, nucleon.amqp, mqks
- mysql, mysql-python, umysql, pymysql, my4geks
- postgresql, psycopg2, pg4geks
- mongodb cluster, pymongo
- voip, asterisk, dialplan, pyst2, pystrix, agi, fastagi, ami, ari, smpp
- aws, ec2, s3, route53, rds, awscli, boto, boto3
- linux, ubuntu, bash, sysctl, iptables, nginx, mercurial, git, supervisor
- etc: babel, graphviz, nltk, nodejs, nose, objgraph, requests
«Denis is one of the best developers I have ever met.
He is open-minded, creative, smart and organized.
It is amazing that all this can be combined in one person.
Denis is good at solving complex challenges and he would always succeed if you give him enough time.
He is a brilliant engineer, team member and a friend.»
Hrachik Adjamian, Founder and CEO at Wakie
«Denis is one of the best developers I worked with.
Very structural and responsible approach to tasks.
Quick delving into mechanics of unfamiliar, already implemented systems.
Superb understanding of computer systems and modern ways of software engineering, both in architecture and tools.
That's why he can design architecture of complex systems with horizontal scaling and implement it himself,
using various tools (programming languages, databases, queues, caches, etc) depending on technical and business requirements.
Rescued us in critical situations like downtime at night.
Great work in team, always ready to help, teach and learn.
Denis, don't leave us. We'll be missing you :)»
Dmitry Parfyonov, CTO at Wakie
«Denis - one of the most polite and attentive people of all with whom I was assigned to work and be friends.
To be honest - he is the most polite and attentive.
The vastness of his knowledge in the field of programming and python in particular makes any interlocutor feel like a schoolboy.
At the same time Denis is always open to the new and at any opportunity absorbs new knowledge / technology.
The reliability of the products that Denis writes exceeds the reliability of the Kalashnikov assault rifle about 7 times.
I strongly recommend this guy to hire for a company of any level - from a small start-up, to a trans-galactic corporation - I'm sure he will benefit everywhere.»
Alexander Dolgushin, Senior VoIP Engineer at Wakie
- «Denis is one of the best developers I have ever met. He is open-minded, creative, smart and organized. It is amazing that all this can be combined in one person. Denis is good at solving complex challenges and he would always succeed if you give him enough time. He is a brilliant engineer, team member and a friend.»
- 2001-2001 Jukola-Info - Junior Web Engineer
- 2001-2010 Teplosphera - Junior to Lead Software Engineer
- 2009-2010 Brand Lane - Web Engineer
- 2010-2011 VicMan - Junior to Senior Python Engineer
- 2011-2014 TulaCo - Senior to Lead Python Engineer
- Details: LinkedIn - Experience
- What these clients said: v1/#clients-say
Belarusian State University,
Specialist, equiv. of Master,
System Software Engineer
- Why software engineers love open source?
- We take so much from our community for free, that we should provide something in return.
- It is also a nice way to showcase the code we created without breaking NDA and work ethic.
github.com/denis-ryzhkov - 33 public repos, top one has 65 stars.
«I was searching for 2 hours for why my application was leaking memory,
I tried every tool under the sun (scalene, memory-profiler, pyrasite, pympler, guppy3)
until your tool finally pointed me towards stupid flask_sqlalchemy _DebugQueryTuple
increasing in ref counter. Huge thanks! I thought I was going crazy,
now I can run my tasks without fearing they're gonna get OOM killed :)»
Dominik Dario, mem_top user
- «I was searching for 2 hours for why my application was leaking memory, I tried every tool under the sun (scalene, memory-profiler, pyrasite, pympler, guppy3) until your tool finally pointed me towards stupid flask_sqlalchemy _DebugQueryTuple increasing in ref counter. Huge thanks! I thought I was going crazy, now I can run my tasks without fearing they're gonna get OOM killed :)»
- github.com/whyolet - open-source products like JONF.
- stackoverflow.com:denis-ryzhkov - top 15% of reputation, 16 answers, top one has 85 votes.
- pypi.org/user/denisr - 19 python packages, one is critical - top 1% of downloads over the prior 6 months:
- Value for the user
- Keep it simple
- Don't Repeat Yourself
I also deeply agree with Alex Sadler, who said: "what matters is peer review, experience and understanding your objective".
These principles are very generic, hence timeless. Three first principles in the list above are ordered by priority. E.g. if making it DRY breaks the KISS severely, then ditch the DRY.
Once I found a code which was begging to make it DRY. I tried, added a dozen of parameters to make it happen. Found it became so complex, that I'd better revert it. Another senior engineer found I'm OK to keep it not DRY (a really unusual situation) and said like nah, I'll make it happen, I'm sure. After some time he reverted it too.
The main idea I've got from the Code Complete by Steve McConnell was: fight the complexity.
It's simple to create a complex code. It's complex to create a simple code. The same goes for UX.
But the value for the user actually beats even KISS: what's the profit from KISS, if the change doesn't bring a value to the user at all?
Improving the codebase should get the features to the user faster and with less bugs, as in replacing boilerplate Python code with Hasura or switching to TypeGraphQL Prisma.
We should build, measure (saying no to vanity metrics), and learn from this feedback data - to find what to build next and what to throw away. One great book I recommend is The Lean Startup by Eric Ries, valuable both for intrapreneurs and entrepreneurs.
- Backend engineer/architect
- Python, TypeScript, SQL, NoSQL, AWS, DevOps, etc.
- One page CV as PDF, details: denisr.com
- B2B contract remotely from Poland to any country worldwide
- 65 EUR per hour, 520 per day, 11K per month, 132K per year
- If you have matching opportunities, please contact me.