Python Developer in Valencia, Spain
AWS DevOps2018 - 2018Tremor Technologies, Inc. (via Toptal)
Technologies: Docker, Jenkins Pipeline, Java, Node.js, Python, React.js, GitHub
- Created Jenkins Pipeline in a Docker agent which checkouts multiple components of the system, tests it, runs integration tests, builds new containers, and deploys the new application version to ECS.
- Developed the Java application build process using Gradle and Jooq tools.
- Upgraded build servers including base systems and Jenkins components because it was outdated for years.
- Added the Docker configuration to the components of the system which makes Docker builds very fast and optimized.
- Fixed existing build pipelines.
Full-stack Developer2017 - 2018Backstage (via Toptal)
Technologies: Python, React.js, Backbone, Django, MySQL, Elasticsearch, Mercurial, Unit Testing
- Audited, refactored, and made other fixes to Celery tasks.
- Built a Stripe webhooks logging and analysis dashboard.
- Developed and fixed the REST API.
- Added a lot of unit testing to various components of the system.
- Developed and fixed front-end elements in React.js and Backbone.
- Improved the Django admin interface.
- Fixed bugs for various components of the system.
- Reviewed source code and checked for permissions vulnerabilities.
Freelance DevOps Engineer2017 - 2018Skuchain (via Toptal)
Technologies: Docker, AWS, Hyperledger, Node.js, React.js, Express.js, Webpack, Bash, SSH/SCP, AWSCLI
- Checked, fixed, refactored, and enhanced a deployment solution in the project.
- Used Docker with Docker Compose for building microservices architecture.
- Created microservices architecture using Docker, AWS CloudFormation and Traefik (and Nginx) for traffic balancing and routing.
- Handled Bash scripting; all the deployment configuration is built in Bash.
- Configured multiple branches that support dynamic services adding/removing/migrating from a plain text file with services list and their URLs/branches/commits.
Freelance Software Engineer2017 - 2017Webconnex (via Toptal)
Technologies: AWS, OpsWorks, Chef, Ruby, Go, Node.js
- Created AWS OpsWorks infrastructure from scratch. The configuration is connected with a CI pipeline.
- Configured over 30 microservices.
- Deployed recipes in Go and Node.js.
- Configured Filebeat and Metricbeat.
- Supported a multiple stacks environment via custom JSON configuration in OpsWorks.
- Added role grouping (soft-layer) support for multiple applications in one instance.
- Integrated local testing and Chef cookbooks dependency management.
- Integrated the AWS application level balancer.
- Added support and configured dynamic DNS names for multiple environments.
Freelance Django and React Developer2017 - 2017Boyd Creative Pty, Ltd. (via Toptal)
Technologies: Django, React.js, REST API, Mercurial, MySQL, Linux
- Created a single-page application dashboard with various graphs, tables, and dynamic filters for analytics data.
- Supported and modified the legacy source code.
- Optimized access to the API requests database to decrease API response time.
- Optimized a Webpack build for dashboard assets.
Freelance Lead Django Developer2017 - 2017Dalton Bain (via Toptal)
Technologies: Django, AWS, Jenkins, Docker, AngularJS, OpsWorks, Chef
- Integrated a multi-branch Docker-based CI (Continuous Integration) full cycle to the project using Chef and OpsWorks.
- Automated tests using a Jenkins pipeline.
- Supported Django and AngularJS projects, integrating new features and fixing bugs, among other things.
Freelance Senior Django Developer2016 - 2017DecisionDesk (via Toptal)
Technologies: Django, AWS, MongoDB, Tastypie, Docker, Backbone.js, PostgreSQL, Linux
- Optimized back-end performance.
- Integrated Docker containers into the project infrastructure.
- Converted images and MS Office files to PDF.
- Manipulated various PDF files in Python and Java (read, convert, merge, export to PDF).
- Installed and configured a Graylog2 (+ MongoDB and Elasticsearch) cluster in Docker containers on AWS OpsWorks Stack.
- Developed custom logging adapters (TCP, UDP, HTTP/HTTPS) for the Graylog2 instance.
- Integrated a Shibboleth (SAML2 Protocol) authorization method.
- Built custom Django MongoDB Queries profiler middleware, allowing users to see and download detailed requests for deep checking code, load performance, etc. to a MongoDB server list.
- Integrated a CASHNet payment processor.
- Built Chef recipes in Ruby.
- Fixed bugs.
- Implemented additional small features.
- Installed and configured Postfix as a smart host.
Full-stack Back-end Developer2014 - 2015Stealth Mode iOS/M-Commerce Silicon Valley Startup
Technologies: Python, REST, iOS, AWS, Stripe, Linux, Docker Containers
- Oversaw back-end creation and maintenance of an m-commerce iOS platform.
- Served as product manager for all API integrations, including multiple payment gateways.
- Managed all AWS/S3 activity.
- Rewrote legacy source code from scratch.
Chief Information Officer & Scrum Product Owner2011 - 2015FloraExpress
- Managed a five-member team and served as Scrum master in the company’s Scrum environment. Additional roles included Senior Full-stack Engineer, DevOps Engineer, and Deployment Engineer.
- Created an API-driven platform for quickly-growing company websites, mobile applications, and third-party integrations, and fully managed the deployment process.
- Reduced website downtime from 20% to 0% by rewriting the company’s services from scratch; helped to increase orders from 25/day to 75-80/day; and created 80% of the source code for the Python/Django version of a payment gateway that has twenty available payment methods, amongst other achievements.
- Developed an API core, four eCommerce fully functional landing sites, two alpha versions, two payment gateways (PHP and Python versions with fifteen and twenty payment methods), and a lot of small tools and integrations with third-party services.
- Built a stable, DDOS-protected, and horizontal scalable platform as well as a lot of business instruments.
- Enabled the company to handle about 8,000 orders per day on holidays because of the amazing CRM system built with AJAX and HTML5.
Senior PHP Developer, System Architect2011 - 2012Kanga
- Developed Flash games for Vk.com. Managed the team’s task management.
- Developed back-end features in PHP.
- Developed game landing pages and websites.
- Handled the deployment process with Linux server administration tasks.
- Facilitated real-time video processing with Wowza media services.
Middle Java Developer & System Architect2010 - 2011DuoTM
Technologies: Java, Network IO stack, JIRA, Continuous integration
- Worked with a team of Java developers to develop web application tasks and AION/Lineage II server network core in Java.
- Managed two team members.
- Completed the project successfully, but DuoTM was discontinued due to lack of funding.
- Built a very fast network IO threaded solution with encryption and DDOS protection.
- Developed and deployed configuration with Java build tools.
CEO, Team Leader, and Full-stack Developer2008 - 20092315.ru
- Founded and managed a web design and development company, managed four team members, and built eCommerce and portal type websites for the Russian market.
Network Engineer and Junior .NET Developer2004 - 2007Ural State University
Technologies: .NET C#, PHP, Python, Bash, Linux administration, Microsoft Active Directory, Diskless boot, Network infrastructure
- Served as network engineer and Windows/Linux administration team member.
- Helped manage a seven-server campus network along with 300 staff PCs.
- Oversaw diskless Linux and Windows boots, overriding workstation operating systems via remote network diskless boot and restoration of hard disk images, Active Directory management, domain politics, software politics, web servers, and network routing with shaping configuration.
- Used Python, C# (including .NET ASPX), Bash, and PHP to create utilities and other small programs for managing Active Directory and user politics.
- Developed a student intranet portal.
Network Engineer and .NET Junior Developer2005 - 2006SKB Kontur
Technologies: .NET C#, PHP, Linux server administration, Microsoft Active Directory, Subversion, Git
- Served primarily as contract network engineer but occasionally worked as a junior .NET developer.
- Managed all network hardware, software, and server configuration.
- Built company applications in ASP.NET C#, Windows-based C# apps, and console apps.
- Webconnex Chef/AWS/Opsworks configuration (Development)https://www.webconnex.com/
I've built Chef/AWS/Opsworks configuration for deploying all required applications and services with very flexible deployment configuration including a lot of features.
- Created AWS OpsWorks infrastructure from scratch.
- The configuration is connected with CI pipeline.
- Configuration for over than 30 microservices.
- Go language and Node.js deploy recipes.
- Filebeat and Metricbeat configuration.
- Multiple Stacks environment support via Custom JSON configuration in OpsWorks.
- Roles grouping (soft-layers) for multiple applications in one instance support is added.
- Local testing, Chef cookbooks dependency management integration.
- AWS application level balancer integration.
- Dynamic DNS names for multiple environments configuration support is added.
Used technologies: AWS, OpsWorks, Chef, Ruby, Go Lang, Node.js
- DecisionDesk (via Toptal) (Development)
I joined the team when the project was in a crisis due to a series of major issues: bugs, feature requests, performance problems, etc. Performance optimization was the most serious problem because it made normal usage impossible at times due to critical bugs. My work helped the team out of the crisis and stabilized the application, and it is now fast and growing.
My work included the following:
- Back-end performance optimization
- Docker container integration
- Image/Office file to PDF conversion
- PDF file manipulation (read, convert, merge, export) in Python and Java
- Graylog2 (+MongoDB +ElasticSearch) cluster installation/configuration in Docker containers on AWS OpsWorks Stack
- Custom logging adapters (TCP, UDP, HTTP/HTTPS) added to the Graylog2 instance
- Shibboleth (SAML2 Protocol) auth method integration
- Custom Django MongoDB Queries profiler middleware that allows users to see/download requests for checking code, load performance, etc., to a Mongo server list
- CASHNet payment processor integration
- Chef recipes in Ruby
- Bug fixes and features
- Postfix installed/configured as a smart host
Tech stack: Django, AWS, Mongo, TastyPie, Docker, Backbone, Postgres, Linux
- Skills test project using AWS/Chef/OpsWorks (Development)
Created a flexible configuration in Chef from scratch for deploying a test application on a cluster of application servers, balancers, database servers with dedicated logging server which collects logs from all the servers and allows you look through it in a moment.
- Python Application servers
- Nginx Router/Balancer servers
- MySQL server with slaves
- Graylog2 server with its configuration which accepts logs from multiple sources and processes it allowing flexible filtering and reporting.
- Multiple application level balancing
- Automatic S3 backups for mutable storages
Used technologies: Chef, Ruby, AWS \w OpsWorks \ ALB \ VPC \ Route53 \ EC2 \ etc, MySQL, Python, Django, Nginx.
- Stealth Mode iOS/Mobile Commerce Silicon Valley Startup (Development)
The client required back-end API architecture for a mobile application with geolocation, payments, and shipment integration. I delivered a working app that had all of these features.
I also hired an iOS developer contractor for the client and managed a small team until the application was completed.
The client received a working prototype and used it to secure another round of investment.
“I’ve worked with Alex on multiple projects and have been amazed at the quality of his work and his professionalism. His work is definitely top shelf material and he takes great pride in making sure of this. He is extremely easy to work with and can handle any stressful situation before him. Ambiguity is no concern for Alex! I’m also impressed with his communication skills as he makes sure to focus on his clients’ needs and puts any concerns to rest by walking them through risks and providing alternative solutions. I’ve considered myself very lucky to have worked with Alex and hope to work more with him in the future.”
- Visual Sitemap Generator - Dyno Mapper (Development)http://dynomapper.com/
The client needed to fix bugs and add features to a back-end ScraPy project tool that is used to crawl websites.
I added approximately sixty features, including login support for standard HTTP authorization methods, popular CMS engines, and custom client engines. We moved from a standalone dedicated server to AWS autoscaling Docker container deployment processes.
My work greatly improved crawler speed and accuracy. I added extra caching layers, database bulk writes, and temporary storage for crawling time data to Redis and MongoDB. The crawler now works without any bottlenecks and can crawl websites in about fifteen parallel threads, providing an amazing user experience. This project has increased lead generation and boosted the popularity of the client's service.
“Alexandr Shurigin is a brilliant Python developer who has always delivered projects to exact specifications and has always been a pleasure to work with. If you are looking for an innovative developer with fresh ideas, he would be an excellent choice to add to your team. He works well with other developers and has an excellent attitude. He succeeds where I have seen other Python developers fail and he makes it look easy. A+ developer.”
- CRM & POS System Development/Magento Optimization/Linux Support (Development)http://www.heygidday.biz/
This project encompassed a wide variety of tasks, including simple template work, simple PHP work, software dev from scratch, inventory management CRM creation, POS system development from scratch, performance optimization, source code sanitation from spaghetti code, and integration with third-party services such as ShipStation, Amazon, eBay, PayPal API, PayPal Payflow Pro, and more.
I built an amazing CRM and POS with all required features and integrations, which has reduced the client’s spending on staff costs.
These systems have also allowed the client to spend less time on business management because all areas of business now are automated. This has freed the client up to grow his business, open a brick-and-mortar showroom, and make more sales than ever before.
“Alex is a GREAT programmer. I have repeatedly retained his services for my private business interests (not for my employer) and he has produced prompt and expert work every time. I have learnt that I can count on his expertise every time. I also love that for many items I have wished programming for that other programmers have said that were not possible, Alex delivered them. Wow!!"
- FloraExpress (Development)https://www.floraexpress.ru/
My role: Full-stack engineer, Linux/DevOps engineer, Scrum product owner
The client required a project manager to build a dedicated CRM system from scratch with REST API endpoints and approximately seven of the company's clients' applications. I oversaw the build of a CRM system, three versions of the primary eCommerce website, two additional eCommerce websites, two payment gateways, mobile applications, several mobile websites designed from scratch (not responsive versions of the main websites), and many additional tools and utilities. I used best practices to perform all required tasks. All elements of the project have been deployed; they are now live and generating leads.
As a result of my work, the client now uses many new business instruments that generate leads and increase customer satisfaction. My work led to an increase in orders from 25/day to 80/day. Additionally, I built a stable platform with 99.99% SLA, DDoS protection, all infrastructure configuration, automated deployment, version control, and various features.
- Google Chrome Plugin (Development)
The client required a Google Chrome extension to perform an automation "change and control IP task" to prevent being banned when the same cookie appears on multiple IPs. This plugin saved the client a significant amount of time and prevents him from being blocked by a target service due to an IP conflict.
"Excellent. Perfect on all fronts. Alexandr did a really amazing job quickly and with great communication. I look forward to hiring him again in the future."
- Django Deploy Fixes and Bug Fixes with Some Features (Development)
The client’s website stopped working after being switched to a new hosting provider. I fixed all deploy configuration issues so that the website would work properly. Once the website went live, I fixed numerous problems, including bad validation of form data. I also adjusted email settings/configuration, including SPF and DKIM configuration with auto-forwarding to company staff. As a result, the client’s website is now functional and able to generate leads.
"I like everything about my experience working with this particular contractor: knowledge, communication, quality of work, availability, professionalism. Extremely happy with his work! Everything has been fixed even faster than I could expect! Thank you!
"Great quality of work and outstanding communication skills!
- Major Code Migration (Development)
The client needed to migrate from Google App Engine to an AWS Elastic Beanstalk Docker Multi-container infrastructure. This required rewriting a significant amount of source code that depended on Google App Engine API.
I rewrote a significant portion of the project and made all deployment processes as simple as possible with shippable.com CI. I found alternatives and rewrote all source code for Google App Engine APIs: URLfetch, geocoding, XMPP proxy, Cloud SQL, Async tasks, deferred tasks, and cache. I also rewrote many unit tests to test all migration process results.
- Shippable configuration for CI and auto-deploy staging/production configurations and tests evaluation
- All source code migrated to open source existing solutions which work like Google App Engine API
- Lot of bugs and outdated source code fixes
"Alex is a great developer and sysadmin. He showed great flexibility and accountability during the project. I would recommend him for any job that involves sysadmin, Docker, and Python skills."
- Attune.co API Python Client (Development)https://github.com/attune-api/attune-python/
The client had an API web service as the main project feature and wanted to have an API client written using Python. I built a strong API client with features such as auto-retry on 5xx errors, a circuit-breaking pattern to avoid DDoS on API web service if it has an increasing error count, async/sync execution of API, unit-tested features, and more. All of this was completed within two weeks and all deadlines were met.
The client received an exceptional Python client and has begun to use it with his web service business clients.
"Alexandr produced very well written code. Very readable, well structured and commented. Great Python skills employing lambdas and multi-threading.
Alexandr worked late hours to deliver my project in time. Great talent!"
- Top 10 Mistakes that Django Developers Make (Publication)In this tutorial, we will look at some common mistakes that are often made by Django developers and ways to avoid them. This tutorial is useful even if you’re a skilled Django developer because these mistakes aren’t just limited to new developers taking their first stab at Django.
FrameworksCakePHP, Django REST Framework, Flask, Django, Scrapy, AngularJS, Redux
ToolsBitbucket, GitHub, AWS ECR, Git, MySQL Performance Tuning, Xdebug, Apache, Nginx, Amazon Virtual Private Cloud (VPC), Chef, Shibboleth, Graylog, AWS OpsWorks, AWS ELB, Gulp.js, GitLab, Celery, Webpack, Babel, Grunt, Trello, Grunt.js, Redux Thunk
ParadigmsREST, Refactoring, Object-oriented Programming (OOP), Scrum
PlatformsDocker, Linux, Ubuntu Linux, Linux RHEL/CentOS, Ubuntu, Debian Linux, MacOS, AWS Elastic Beanstalk, AWS EC2, FreeBSD
StorageJSON, SQL Performance, Memcached, Redis, MySQL, Elasticsearch, Sphinx Search Engine, MongoDB, PostgreSQL, AWS S3
- Partially completed degree in Theoretical Physics2003 - 2007A. M. Gorky Ural State University - Russia, Yekaterinburg