I'm an independent freelancer, providing software engineering services, crafting code with love and thought.
Please explore this website to find:
- How I helped my clients
- What I learned from that
- When you should contact me
- R&D, new products
- proposing new ideas and technologies
- documenting and implementing
- teaching and learning
Improved skills - and opensource created:
- python: fastapi, typing, mypy, uvicorn, poetry, poethepoet, asyncio, AsyncMock - ahasura
- db: postgresql, pl/pgsql, data-modifying CTEs, hasura - bug report, workaround, doc fix, doc improvement
- bash: scripts - answer
- serverless.com: lambda-image, serverless-ecs-plugin - issues #2, #3, #4
- docker: secrets, size and performance optimizations
- aws: cognito, cross-account s3-sqs-lambda, cloudformation - comment
- nodejs: nvm, aws-sdk, pg
- devops: terraform, gitlab ci/cd, kotlin teamcity dsl
- sumo logic: search query language, lookups, dashboards, monitors, alerts
«You're doing a great job and we're really pleased
with the quality of the things you are delivering.
It’s great that the required functionality was so easy to add
without us having to add new endpoints and custom python code.
Very happy that we listened to your recommendations
any updated our architecture and frameworks accordingly»
Craig Watkinson, Senior Software Engineer at CMR Surgical
- «You're doing a great job and we're really pleased with the quality of the things you are delivering. It’s great that the required functionality was so easy to add without us having to add new endpoints and custom python code. Very happy that we listened to your recommendations any updated our architecture and frameworks accordingly»
- 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 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 Leader 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.»
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
- «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 :)»
- «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.»
- 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 61 stars.
- github.com/whyolet - open-source products like JONF.
- stackoverflow.com:denis-ryzhkov - top 20% of reputation, 13 answers, top one has 79 votes.
- pypi.org/user/denisr - 19 python packages, one is critical - top 1% of downloads over the prior 6 months:
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.
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.
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.
- I'm an independent freelancer, providing software engineering services
- You may engage my individual entrepreneur company to perform particular tasks for a specific project
- I prefer one big client at a time, but may consider to split my attention, if:
- Project: brings real value to people - try to beat CMR Surgical at this
- Backend: Python, DB, AWS, etc
- Rate: 50 EUR or 55 USD per hour
- If you have matching opportunity, please contact me