Three months ago Volodya Sveredyuk joined Innocode — we already knew him thanks to his volunteering work for the Lviv Ruby User Group #pivorak — he helped with the website, gave few talks and recently became a mentor of Ruby Course. So we’ve been already exctited about his joining us! Though this interview took us 40 minutes to record, it turned out a total of 5 pages of text, because as we found out later — Volodya had successfully passed “How to pronounce 30000 words per day” training:)
Volodya, could you tell a bit about your background?
I am 29 years old, and computers were my passion from the very childhood. The first I got maybe in the 5th grade — it was Intel Pentium 484, 4 MB of memory, MS-DOS / Windows 3.11, Dune2, Doom, Wolfenstein — the golden times of school :). I was immediately interested in programming.
Since my parents are physics, I found a book at home called “Basic for kids” and suddenly realized that it is possible to automate the whole world with a fairly simple code. Then I got a book about Turbo Pascal as a present, and from 6–7th grade started to win local, and then regional youth contests in computer science. From the 8th grade, I discovered Delphi’s delightful world, (Hello, Borland Delphi 6), and realized that with the easy applications you can earn pretty nice money.
Earning on Delphi application in school?
With Delphi you can easily write application for Windows — add buttons, fields, just write the code with the mouse. And basically I liked Object Pascal. It was something that could solve the problem, adding value to what you do.
Later I received an order from a friend of mine to develop a warehouse system for accounting. That was the summer between the 8th and 9th grade, when I earned my first money — $ 100. Then one thing led to another. The most serious project I got was in the 10th grade — Ukrainian Sport Federation of postal pigeons :) They wanted to track pigeons flights. That was a very weird experience — I hope the application was never launched. But this was my first serious experience of a complex system, a long development with real releases and real salary. An important experience.
Meanwhile, I started to win regional code contests, so there was no problem getting into University without exams. But the level of education was very poor, so I decided to find a programming job. These were the times (2005–2006) of wild-wild outsource, no product companies (or I didn’t find any). And I got into a very bad company — with very bad technologies, huge legacy code base, and no mentorship. They throw me to fix bugs where I stayed for a few months, and I decided I didn’t want such life for myself. I left IT being 19 y.o. and came to business.
I didn’t want to do outsource and decided to learn classic business — sales. And come back in a few years for a product company.
What kind of business was it? I heard it’s connected with China.
Classic sales — we bought boxes in China and sold all around Ukraine. Very valuable experience: setting up dealers networks, ongoing negotiations with clients, solving problems on the go, customs boarders issues etc. That time I would do anything a commercials director “buy-sellearn money” did, plus IT part was also my responsibility (first website for a company etc.). Since then I have a lot of friends around Ukraine — there’s always a place a friend can host you wherever you go :)
Very interesting, I do not regret anything, because I think that this period formed me, made me stronger and so to say — made the skin very thick, no one can now do me any bad)
When did you come back into tech?
After 5 years in business, in 2011 I decided to return into tech. This coincided with the fact that my mom asked me to have a complete set of plastics (diploma), and I set myself a challenge to get a degree in computer science: I get it or I don’t need it at all. Took the books, downloaded Delphi, made an app and got that degree. To my surprise I still remembered stuff.
My friend Alex Topolyanskyi told me about Ruby — programming language which was a revolution at the time. I couldn’t believe that a programing lang could look like an English! It was like — if I ever wanted to create my own language, that would look a lot a lot similar to Ruby!
But, despite this Ruby excitement it took me 2 years to get back into tech.
Did it take you so long to learn Ruby?
Well, I began to be interested in everything that appeared during my absence (jquery, … etc.). From 2013–14 I started to write own projects on the Rails, and freelancing.
No one really wanted to hire me because “I had no experience.” I sent CVs, and no one wanted me. I my inbox I store emails from all the well-known galleries (big IT companies) where I was advised to “learn a little more”. I hold as a golden fund for a future talk on #pivorak :)
Freelance is, of course, not the worst solution and you earn nice money, but you just do not grow. You write lots and lots and lots of code with errors, and there is no one to advise you and show a best practice. The code works, everything works, but the heart prompts — “Something is not good about it”.
I just don’t understand why no one wanted to hire you?
The key mistake was that I looked for Junior positions. And wanted to work in a product company. When I realized my mistake — it was 2015 and I finally got the job and worked there until I came to Innocode. I am very grateful for the fact that they gave me this chance. Their HR manager at that time Zahar Matula even had to rebuilt the whole team structure — because they were looking for a very strong Ruby Dev, whom I wasn’t, but they believed in me. Luckily I got into Oleksiy Kurnenkov’s team. I am grateful for all his efforts to make me into a Ruby Dev.
So 2015 became a year of tenfold growth for me. I sharply switched from writing a very large amount of a bad code to the optimal amount of a normal one. There I learned not just to produce code, but how technology works in general. Integration, communication, building complex logical structures and architecture.
Another thing that added to my growth — tickets in JIRA Service Desk :) I just massively resolved one after another without waitig for a manager to apply them to me. And strongly recommend for everyone to do so:)
Lviv Ruby Meetup #pivorak also helped a lot. My colleague at that time Max Lomanov brought me there. “What a cool community” — I thought, and everything turned out perfectly with #pivorak.
Meanwhile I started to use http://trailblazer.to in my home projects, report bugs and issues on github. I believe Nick Sutterer was inspired by one of my issues to launch the 2nd Trailblazer! Now I am also a contributor to it.
I’ve seen a few posts on FB, where Nick tagged you in!
Yes, that’s actually very flattering)
Tech industry has very much evolved with a bunch of frameworks, but I see the same problems from 2000s. People rush into tons of code, no one bothers to think about scaling. And then it’s too late.
Oleksiy Kurnenkov told me about possible solutions — so-called modules, components or plugins. The solution is to write apps not in a monolith, but components way. A bit more complicated, but in perspective it’s win-win. You can watch my talk about it at #pivorak here.
What’s your job here at Innocode?
When earlier this year I made a decision to change the company, Innocode was the first one my mind. We’ve been talking with Ira and Valeriy for a few hours and now my task here is to help with ongoing products and development of new ones.
Quite complex, combined product developed by Innocode. Its main purpose — to integrate all other smaller products (Deals, Community etc.) into one system. For me it’s the best example where component-based approach can be used. Meaning you just have to write a separate new module for each iteration, which can be easily modified etc. We are doing it right now.
I’m very happy my teammates eagerly accepted the challenge — we support and help each other. Anyone who has encountered with large systems before understands the pain of traditional monolith development, so it’s very important we have mutual understandibg and trust in the team.
Advertising marketplace. Innocode set a very high standart for this one. We’ve just released it a few days ago and two of our longlasting clients are testing it right now.
Deals is my first challenge — more as a curator of a process. Everyone has a full autonomy of work — we can write code, review it, I can bring up my ideas and other too. To my opinion such flexibility in teams is much much better than traditional structure. We’ve set up nice CI and CD and now can deploy every 5 min
Also involved in external service projects. Soon I’ll be taking my first outsourcing project for a very long time.
I thought you didn’t want outsource projects?
I didn’t want wild prehisctoric outsource from 2000s. Here at Innocode there’s no rush for money, for more hours etc. The priority here is own products.
For exmple, recently we had a new project with very important client, who wanted lots and lots of features (it’s an ordinary practice, alas — no one really knows what they want, so the first decision to come up with is normally tons of features in the first version). But together with our managers we convinced the customer that they didn’t need such a complex functionality, that’s better to start with the simple solutions. We cut off half of the hours, and have the client.
Few weeks ago we had a preproject with another customer in Oslo — they wanted CRM for lots and lots of hours. We could have estimated and started to code, but thanks God the common sense wins and we are not doing just another CRM, but we make a smooth, functional expansion to their existing system. Common sense — is a main rule at Innocode. That’s what I love.
Also I’ve got a present after a trial — my personalized #pivorak cup:) I am glad that I can grow, that’s what I was looking for and I got it. Of course, sometimes it’s difficult. Before no one asked me for anything, but now everyone needs something from me :) Folks, if you are reading this — I’m trying my best!
Tell me about your home projects
Together with my friend, Alex we are running Handshake. Something between Confluence and Google docs.
In business, I see a very big problem of communication between— you make arrangements, create compliance procedures, document it in different places, forget to notify people…
Example: If you have a newbie, you have to bring him through all of the company/clients policies, give acceses etc., and if someone leaves — you have to cancel permissions and make sure the knowledge is documented and stays in the company. Handshake looks at documents as a database of knowledge: create — approve — comply — make flexible changes — notify needed people. That’s about having one source of truth.
Handshake doesn’t work in Ukraine — we just dont have business culture for that yet. It works for middle and big busineses in US. They got lots of bumps because people left projects and took knowledge away. If they had used Handshake, everything would be left for the next generations.
Handshake is now in alpha-version. It’s our sandbox to try new technologies, test ideas — we do that for our own pleasure — we don’t follow the rule of startups “do all fast”, no, we are meticulous with code and approaches, that’s for us.
So, your job is to code and your hobby is to code?
Frankly, lots of things we tested in Handshake, now are successfully used at Innocode. Because on production you can only use verified ideas — but were to verify them? Home sandboxes. They are must haves for every developer. What if you bring wrong technology on your work project — what will you do? Fix bugs all nights long or get fired?
What about #pivorak? You were mentoring the whole team of newbies during Ruby Summer Course.
That’s a very cool story with the courses. It has validated many ideas. For example, that courses do not have to be expensive to be high quality. They can be free of charge and still effective.
If you compare students of the course 2 months ago and today — you’ll see a huge difference. It shuffled all the cards — showed strong ones and those who need to keep working. And you don’t have to prepare 20–30 lectures. You can have 8 if you select them deliberately, think on the content structure and sequence. And chose the right people as lecturers.
Of course, we made mistakes, and will consider them for the next seasons, but I’m sure this first one was a success. Especially I liked the practice — when team follows you and keeps asking questions — that’s very cool.
I didn’t want to take students through technically hard project, but rather through the processes. So that they were not stuck or afraid on their first job.
(clearly remember mine — poor, not adjusted processes, no one talks about and in the end you find out you were doing it all wrong). I didn’t want such experience for them.
The process was built so that the students blocked each other — one couldn’t get started until the other one hadn’t completed the task. Yes, they had merge-conflicts, but they also learned to communicate their issues with each other, help each other, refactor and make code review.
So, what we did in the end? Everything possible that the new #pivorak course season would have started directly through pivorak.com — application/test task/homework via the site. No more excel or googlesheets. I’m very happy with what my team did.
What’s next? What do you aim for?
As for career, I aim to become kind of a delievery manager. That’s someone, who is convenient about technical processes, can review and automize them, resolve issues and also be a manager — lead teams, run preprojects and talk to customers. “All in one” kind of a person. I think that would be the most relevant work for me taken all my previous experience with code and business.
As for technical part — I’d love to write more abstract things.
Most of the applicatons consist of the same repeatable parts: registration, authorization etc. These should be universal — once written you just reuse the block of code again and again, and save hrs.
That’s why I’ve started my own opensource project — EzEngines and already have supporters.
I understand that in Rails most of the standart things are really easy and fast to make — 3–4 hrs and you’ve got a working. But these can be done even in 3–4 minutes. Imagine how it would fasten the prototyping of applications.
That’s what opensource project EzEngines is for — you’d be able to just quickly pick up standard components (or gems) you need for your app — authorization, autentificatiom, permissions, dashboard etc and add to your project.
I’ve started with quick settings. Normally we hardcode constants, but with EzSettings you can configure Settings directly with the special DSL, add groups, keys, types…And “Boom” — magically you have settings on your project in few minutes. With customizable UI. We already use it on pivorak.com.
Also, I’m very happy that Innocode allows such experiments and be faster with prototyping.
Volodya, let’s talk about something non-technical) Do you have hobbies other than coding?
There’s one, I don’t normally share with anyone, because usually they just dont understand) From school I was not super fit since I spent most of the time at computer clubs. At my hometown we organized kind of a cybersport tournaments — Counter-Strike, Quake, WarCraft etc. During the last 10 years cybersport has grown into business worth 10th of millions of dollars. I think it comes to be an everyday thing. So, if people go to the bar to watch football, we get together with friends to watch cybersport games.
You do not participate, right?
Nope, we are too old for this) Moreover you have to train yourself constantly. We support Ukrainian teams. Because contrary to football, Ukraine has worlds champions in numerous cybersport disciplines. Last time when Ukraine won the World Championship we screamed so loud, that police came) But surprisingly one of the policemen turned out to be a fan too, so they let us free) Also, I like snooker.
Last question — is there anything that has changed you recently?
The concentration of Tesla Model S in Norway is almost like this of Daewoo Lanos in Lviv)))
That has undoubtedly changed me in a good way. If there are places where it’s possible, don’t blame that the grass here is not green enough. Just work and we’ll have it all too.