Giter Site home page Giter Site logo

drewdru / fastdrewdru Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 146 KB

backend for https://github.com/drewdru/sitedrewdru

Home Page: https://drewdru.com

License: GNU General Public License v3.0

Python 92.98% Mako 1.28% Shell 5.42% Dockerfile 0.32%
backend backend-developer career celery developer docker fastapi fullstack fullstack-developer personal-website portfolio pydantic sentry website

fastdrewdru's Introduction

Hi there πŸ‘‹

☺️ My name is Andrew and I'm a Software Engineer. I have more than 6 years of experience in Full Stack Web Development.
🀩 As Front-end Web Developer I prefer to use TypeScript(Vue, React), HTML, CSS(Less, Bootstrap/Material).
πŸ§‘β€πŸ’» As Back-end Web Developer I prefer to use NodeJS(Nestjs), Python(FastApi, Django/DRF, Flask), ORM(SQLAlchemy, Prisma, TypeOrm, Sequelize), SQL(PostgreSQL, MongoDB), Nginx, Docker, MQTT(Redis, RabbitMQ, Kafka).
πŸ€“ I like to grow my professional skills and learn something new.

πŸŽ“ I'm a Master of Computer Science

2016-2018

Siberian State Aerospace University
Master of Computer Science (MSCS), Computer science
Faculty: Information and Telecommunications
Specialty: Artificial Intelligence

2012-2016

Siberian State Aerospace University
Bachelor of Computer Science (BCompSc), Computer science
Faculty: Information and Telecommunications
Specialty: Software Engineering

πŸ“« How To Hire Me
⚑ My Skills
Operating Systems Linux, Windows
Development languages Python, JS/TS, C#, Go
Frameworks Node(Express, Nest, Prisma, TypeORM), Vue/Nuxt, React, Angular, Python(FastAPI, Django/DRF, Flask, SqlAlchemy)
DBMS/MQTT/ORM PostgreSQL, MongoDB, MySQL, Redis, RabbitMQ, Kafka, DynamoDB, Prisma, SQLAlchemy, TypeORM, Sequalize, DjangoORM
Others Celery, Docker, Nginx, Git, Google Cloud Platform, AWS(Amplify, Lambda, S3, Cognito), WebRTC, SocketIO
πŸ”¬ My Experience

November 2022 - to date

Full-stack Developer | UDev
πŸ”— https://udev.dev/
⚑ Skills: TS, Nodejs(NestJs, Prisma), Python(FastAPI, SqlAlchemy), SocketIO, React, PostgreSql, Docker, Kafka, MongoDB, GCP

πŸ›  Description
  • Participated in development of: Tumeke, music streaming service for smart speakers, online broadcasting and media information exchange service.
  • Added: Alice's ability to play background music on smart speakers using NLP command processing; authentication API; selection of participants in stand-up rooms with the ability to reduce the wait time; project migration from Python to NodeJs; visualization of Ergonomic Posture Risk Assessment Calculation Results, raw SQL optimization.

July 2021 - March 2022

Full-stack Developer | Altermeliora
πŸ”— https://altermeliora.com/
⚑ Skills: Node(NestJS), React.js, Python(Django), Google Cloud Platform, PostgreSql, Redis, Docker

πŸ›  Description
  • Participated in development of: a payment platform for selling courses and products.
  • Added: products' form; logic of discounts and promo codes; generation of sales reports; settings for payment systems; tax calculation for sellers; delivery of goods using Shiptor and ChinaDivision API; payment systems Bluesnap, Fondy, Paypal, YooMoney; Email Delivery Service SendGrid; form that creates hierarchy of categories; auto-registration of users on Club after a successful payment; enablement to create different auto-registration scripts; calories' calculation; data synchronization between platforms; CRM and Club multilingual interface.

July 2020 - to date

Full-stack Developer | Freelance
πŸ”— My Account on Upwork
⚑ Skills: Node(Nest, express), Python(Flask, FastAPI, Tornado), SqlAlchemy, Vue.js,Nuxt, Vuetify, React, WebRTC, Angular, AWS(Amplify/Lambda/DynamoDB/Cognito),GraphQL, RabbitMQ, Docker, C#(ASP.NET 6), PostgreSql, MongoDB, Minio, socketio,Keycloak

πŸ›  Description

August 2022 - November 2022:

  • Participated in development of: assessment system with gamification for company Cibirlan.
  • Marked up layouts of: page for creating scheduled tournaments.
  • Added: automatic filling of rooms; the logic of launching tournaments, assigning roles and teams; game chat.

April 2022 – March 2022, July 2020 – September 2020:

  • Participated in development of: the video surveillance system.
  • Marked up layouts of: admin panel.
  • Added: customizable dashboard, widgets, pipelines.

April 2021 – June 2021:

  • Participated in the development of: MVP of freight transportation.
  • Marked up layouts of: admin panel.
  • Added: authorization; geocoding via here.com; data visualisation on a map.

February 2021 – April 2021:

  • Participated in development of: I-EXP projects.
  • Added: API for user authorization; Telegram bot notifications about user actions; data generation methods for neural network training; pHash calculation; search by similar images; microservice architecture; tasks queue.

November 2020 – December 2020:

  • Participated in development of: website security analysis system.

June 2020 - to date

Full-stack Developer | PonyLand
πŸ”— https://pony.land
⚑ Skills: Vue.js, Nuxt.js, ASP.NET, ASP.NET MVC, Entity Framework, .NET Framework, Game Development, Unity, .NET Core, Apache Kafka, Minio, Node.js, C#, PostgreSQL, Redis

πŸ›  Description
  • Participated in development of: the MMORPG game Pony.Land, music streaming service for smart speakers, online broadcasting and media information exchange service.
  • Developed: Pony.Land website, SSO authorization and authentication logic, DDOS attack and botnet protection algorithms, GibberishClassification trash message classification, flood and spam protection algorithms with detection of similar messages from different users, NN to filter out profanity, threats and vulgarity, API for custom character textures.
  • Implemented: Google recaptcha, hCaptcha, sendGrid for sending messages and validating email clients.

August 2018 - October 2020

Full-stack Developer | YLab Development
πŸ”— https://ylab.io/
⚑ Skills: Python(Django/DRF, Flask), Go, AngularJS, Vuejs, PostgreSql, Redis, Celery, Docker

πŸ›  Description
  1. ECN.Broker, Esplanade MS
    • Marked up layouts of: admin panel; user account; traders' training pages; landing pages; WordPress pages; email templates.
    • Added: authorization; API MetaTrader 4; Telegram bot notifications about user actions; DB migrations; DB backups; payment systems RBK.money, Accentpay, and Interkassa; referral program; WYSIWYG Quill editor for news; API Claws&Horns; google visualization charts; API IndigoSoft; forex calculators; RAMM copy trading; Email Delivery Service SendGrid; API Bpilot for contract specification.
  2. B2B-export
    • Marked up layouts of: admin panel; user account; email templates.
    • Added: form that creates hierarchy of categories; bulk import of products; ABBY translation API.
  3. Carreta
    • Added: bulk import of prices.
  4. TeachLearnLanguages
    • Added: API ipstack.com; S3Storage for images; bulk import of prices.
  5. Internal and other projects
    • Implemented crawling sites for analyzing product prices (scrapy + selenium).
    • Developed a system for aggregating CSV/XLS reports, set up validation of files and user data, implemented text field recoding, distribution of reports in Clickhouse + MSSql.
    • Added: product prices crawler; system for aggregating CSV/XLS reports; data decoder; Optical Character Recognition system.

September 2016 - February 2018

Software Engineer | Aigeo
πŸ”— http://aigeo.ru/
⚑ Skills: Python(Django/SQLAlchemy), AngularJS, OpenLayers 3, PostgreSQL

πŸ›  Description

fastdrewdru's People

Contributors

drewdru avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

fastdrewdru's Issues

use pydantic BaseSettings

use pydantic BaseSettings

# TODO: use pydantic BaseSettings

from functools import lru_cache
from typing import Any

from sqlalchemy import MetaData
from sqlalchemy.engine import Engine
from sqlalchemy.ext.asyncio import create_async_engine
from sqlalchemy.ext.declarative import declarative_base

from fastdrewdru import config


# TODO: use pydantic BaseSettings
@dataclass
class DbService:
    metadata: MetaData
    engine: Engine
    Model: Any


# TODO: Use Dependes injections for engine. import metadata?
@lru_cache()
def get_db_service() -> DbService:
    settings = config.get_settings()
    engine = create_async_engine(settings.SQLALCHEMY_DATABASE_URI, echo=settings.DEBUG)
    metadata = MetaData()
    Base = declarative_base(metadata=metadata)
    return DbService(metadata=metadata, engine=engine, Model=Base)
ew file mode 100644
ndex 0000000..d26cd80
++ b/fastdrewdru/exceptions.py

6a65ba9de103830e13f1f35fba0a78248d6005c1

Use Dependes injections for engine. import metadata?

Use Dependes injections for engine. import metadata?

# TODO: Use Dependes injections for engine. import metadata?

from typing import Any

from sqlalchemy import MetaData
from sqlalchemy.engine import Engine
from sqlalchemy.ext.asyncio import create_async_engine
from sqlalchemy.ext.declarative import declarative_base

from fastdrewdru import config


# TODO: use pydantic BaseSettings
@dataclass
class DbService:
    metadata: MetaData
    engine: Engine
    Model: Any


# TODO: Use Dependes injections for engine. import metadata?
@lru_cache()
def get_db_service() -> DbService:
    settings = config.get_settings()
    engine = create_async_engine(settings.SQLALCHEMY_DATABASE_URI, echo=settings.DEBUG)
    metadata = MetaData()
    Base = declarative_base(metadata=metadata)
    return DbService(metadata=metadata, engine=engine, Model=Base)
ew file mode 100644
ndex 0000000..d26cd80
++ b/fastdrewdru/exceptions.py

5212d016624907505ec8a5f51a75897ac6111b2d

Use Dependes injections for engine. import metadata?

Use Dependes injections for engine. import metadata?

# TODO: Use Dependes injections for engine. import metadata?

    metadata: MetaData
    engine: Engine
    Model: Any


# TODO: Use Dependes injections for engine. import metadata?
@lru_cache()
def get_db_service() -> DbService:
    settings = config.get_settings()
    engine = create_async_engine(settings.SQLALCHEMY_DATABASE_URI, echo=settings.DEBUG)
    metadata = MetaData()
    Base = declarative_base(metadata=metadata)
    return DbService(metadata=metadata, engine=engine, Model=Base)
ew file mode 100644
ndex 0000000..d26cd80
++ b/fastdrewdru/exceptions.py

e3d0e645fd0abca6ccc6881021b8c77394948922

Use one session per request

Use one session per request

# TODO: Use one session per request

async def get_session(db: DbService = Depends(get_db_service)):
    # TODO: Use one session per request
    async with AsyncSession(db.engine, expire_on_commit=False) as session:
        yield session
ndex e68fb01..115bdda 100644
++ b/main.py

d6a26b7ad2b8deaaf3776b6603d413ea13d7bf31

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.