Interview

Interview


I love programming, write clean code and solve complex problems.


Developed the second version of API for android and ios city sightseeing applications. API worked very slowly then started watching the code and there was a lot of unnecessary database queries. As a result, I had to optimize the serialization, eliminate n + 1 queries, use caching, break up big methods into smaller ones to make them more clear, remove, add some extra features and remove unnecessary ones.  


Also, all the photos were stored in one server where the main application rails was running and as it was the city sights application, users had to download a lot of photos and the server could not stand and crashes. 

This problem was solved using amazon s3 for storage and the cloudfront for caching photos.



rental 

iron.io

findout 

blogfeeder 


Challenges 


Findout 


1) I have worked at Findout for 1 year, there were a lot of challenges as I was only ruby backend developer,

All the photos were stored in one server where the main application rails was running and as it was the city sights application,

users had to download a lot of photos and the server could not stand and would crash. 

Started investigating this problem by reading a lot of articles and asking advices from ruby groups. 

This problem was solved using amazon s3 for the storage and the cloudfront for caching photos.


2) City sight appliction's API worked so slowly, then started looking at the code and realized there were a lot of unnecessary database queries, 

  complex classes with methods that don't use the single responsibility principle. It was really challenging to refactor these codes, 

  as a result, I had to optimize the serialization, eliminate n + 1 queries, use caching, break up big methods into smaller ones to make them more clear, use best practices.


Iron.io


One of the customers was using message queue and wanted to make it as a backend for background jobs ruby library,

but since it was a bit challenging to write a library that connect background job with message queue.

However, I have written the library from scratch in 2 weeks and the clients were extremely pleased.



Mistakes/Failures


Findout


City sight applications's API had admin side that written using activeadming, it is a library in ruby language for building admin sides.

Suggested developing own admin system without using activeadmin, because I thought it would be hard to maintain in the future.  

So started implementing it myself. But it wasn't a good idea.

I was thinking too much about future and was afraid of that it would be hard to maintain and add new features 

but it was the perfect tool for the current moment. 

So it took much time for implementing from scratch.

Then I told CTO and we decided to revert back and use activeadmin, so I added new features in short time.


Renting 


Started building rental application, there were two developers, me and also one ruby developer. 

We were using angular for frontend and rails for backend. 

But it took a lof of time building frontend in angular, because It takes too long time to create authentication, authorization and services that interact with backend.

It would be much easier to make multipage application with react or vue, not spa. 

Right now I started building the project using react and rails multi page application.


Renting 


Tell me about a time when you had to build or motivate a team.


Me and my colleague was working on building renting project. 

I suggested building the front end using one of the popular javascript frameworks.

But he wanted to build everything in jquery, without spending much time to learn a new framework.

Than I motivated him to learn a javascript framework, explained that it would be hard to learn new things and then it would took less time and code to build some features.


iron.io


Tell me about a challenging interaction with a team member. 



I deal with conflict with another person by using effective communication.

I worked with a teammate who was not interested in doing his part of job. 

We worked on one project thats why it was creating conflict.

Then I pulled him aside and kindly let him know that he wasn't completing his tasks and it was creating a problem for the team.

It appearead he was having personal problems.

So he appreciated my point of view and I appreciated his situation.

We both understood each other and he didn't miss his deadlines.

 


Tell me about yourself


I am a ruby developer at shopstorms, where I have been working on SaaS business projects, shopify apps and so on.

I graduated computer science with masters degree.

During studing at university I would love coding in ruby programming language and thats why started bulding pet projects in ruby, ruby on rails,

also worked at local companies as a android and web developer and worked remotely for russian startups.


After uniersity I joined startup called iron.io, its b2b startup, backgroud jobs and message queue system.

Developed some features of web application that interacts with backend. 

Automated the repetitive tasks such as payment processing, calculating and generating invoices and so on using scheduled background jobs  


In my free time, I enjoy reading articles and watching videos about startups, entrepreneurship.

 

 


How would your boss or coworkers describe you?


In my recent performance review, my superviser described me who takes initiative and doesn't shy away from hard problems,

also always willing to help anybody.

I have been working on the main projects features, and when things go wrong, I always try to do what I can first, 

rather then putting problem to the team. 

Also I like helping to other developers.  

I know my coworkers appreciate that about me.  





Report Page