Senior Full-Stack Software Developer
During my career I worked with various technologies on different platforms from kernel drivers for Windows to single-page applications in TypeScript. I love working in a team and I believe that communication is one of the most important parts of software development (after cache invalidation and naming things, of course).
Work Experience
Working in the STM publishing technology division of Springer Nature. Creating new products to deliver scientific knowledge to millions every day.
I started from the very beginning, before the official release and was involved in development of almost every major feature on the platform (either in form of design discussions, code reviews or writing code).
Provided support in hiring tech candidates by interviewing from a cultural and technical point of view. Helped to grow the tech team from 3 developers to 3 teams of 5 people in each. Was helping junior developers in their professional growth.
Being among the first developers in a young startup requires you to work in different areas. I was designing and shaping the platform from a technical perspective, defining best engineering practices and improving them continuously, setting up infrastructure, continuous integration and deployment processes.
Of course none of it was done on my own - I worked with great people and all of it is the result of our team effort.
I was working on several Rails-based websites of various size and complexity for clients all around the world. After a year I've been promoted to team leader, so besides building up my web development skills I learned a lot about agile practices and managing teams. I participated in the development of company’s style guides and project templates, was speaking on our weekly meetups about new technologies which could help the team in everyday work.
Built various web scrapers and parsers using Ruby and Clojure.
Designed and built several networking apps for Windows in a team of 2 developers. Was responsible for maintaining the core part of applications and mentoring junior developers.
Provided support for legacy C++ application. Wrote C++ extension for Google’s CityHash library. Built several plugins for Redmine including a service for synchronization between Redmine and MS Project.
Education
Diploma: Statistical properties of cryptographic primitives.
Teaching experience
Regularly participating in workshops for beginners.
Delivered a course of lectures in Kazan Federal University on SaaS and Ruby On Rails for 3 year graduate students.
Based on Berkley’s course ”Software as a Service” CS169.1x
Technical skills
-
Ruby/Rails:
I have 5+ years of experience working on dozens of Ruby on Rails apps. I've built several of them from the ground up to the production release, worked on many legacy codebases and know what steps to make in order to gradually improve them.
Proponent of TDD, SOLID principles and programming style guides (yes, I've even written custom cops for Rubocop).
-
Infrastructure Engineering, DevOps practices:
Worked on many different deployment stacks/services: AWS, Heroku, DigitalOcean, EngineYard.
Good knowledge of Chef recipes for setting up a server for deployment of web applications written in Ruby or Clojure.
Experienced in managing AWS infrastructure – writing Chef recipes for OpsWorks, Ruby scripts to automate repetitive tasks, Terraform definitions to set up an infrastructure from scratch.
Can set up various CI systems to automate the development process.
-
JavaScript:
Experienced with client-side JavaScript in Rails apps. Worked on building rich client applications using TypeScript/CoffeeScript and AngularJS.
-
Clojure:
Built several web scrapers and API clients using Clojure. Have several contributions to leiningen.
Languages
- Tatar - чынлыкта белмим
- Russian - native
- English - fluent
- German - basic (A2)