× {{alert.msg}} Never ask again

Rishat Muhametshin: Top Codementor & Full-Stack Product Engineer

Published Feb 02, 2017Last updated Mar 16, 2017

Rishat MuhametshinRishat is an experienced full-stack product engineer with background in transportation and logistics, and FinTech. A JavaScript expert, he also maintains a little local community of developers and hackers, and contribute back to open source. Rishat’s superpower is launch: make products go live, from ground zero to MVP.

In the past years, Rishat has given 1000+ hours of mentoring sessions, including in 200+ Codementor sessions. He’s helped developers move forward with their projects and CS students learn the material deeper and faster, mentoring them along the way. Rishat is part of CodementorX, our network of top software engineers available for hire.

What are the most exciting projects that you’ve worked on?

The most exciting project I worked on was a chatbot. It might sound simple, because who can’t make a chatbot today? But the project has begun a little more than a year ago. The goal was simple: employees would ask the bot for some advice regarding their insurance, and receive the answer that would be most appropriate to the situation and as useful as possible.

What happened next is that I bumped into the first challenge: when people are given infinite variety of possible commands, they behave unexpectedly. Compare a website to Siri: with the former, there are links, buttons and rare forms where you can sometimes express yourself in the most authentic way; but with Siri, you talk mostly informally and rarely in a structured manner. A bot that would substitute an IVR was okay, but it wasn’t an innovation. So I started digging.

While “bot as a product” is done, there’s wide area to explore: how people chat, why and when. Every person has a few “styles” that correspond with distinct circles of friends. And every person has their unique set of phrasal structures and conversational patterns, let alone their proficiency in a certain language. I’ve been doing research on this topic since early days of this project, and so far results have been fantastic.

What are your favourite technologies, and why?

I am a programmer by heart, so I have an eye for two particular programming languages: Javascript and Clojure.

JavaScript Javascript is die-hard language that has seen its good and bad days, and has gotten huge and significant over the last decade. The strongest feature of Javascript is that it’s playable. Anybody can use Javascript, could they just open browser console. The ecosystem is hot like a supernova, and the pace is crazy. It’s no surprise Javascript has become the first programming language people start using when they learn to code (back in my junior days, it was Basic, then later, Pascal). It’s extremely usable: with just a single language, you now can build back-end, front-end, database, and use the most wide spread data representation format: JSON. I like the way Javascript evolves, I mean the latest specs of ES6, and the modern practices like functional Javascript. And I love being a part of this huge community.

Closure Clojure isn’t as popular, and entry threshold is higher. There’s less information around to get started with, and the effort it takes from complete ground zero to “Hello, World” is hard to compare with tinker-friendly Javascript. Yet Clojure is successor of LISP, the language that has completely changed the way I treat programs and data. And it’s intrinsically functional, yet multi-purpose.

What was your first encounter with technology?

In my youth, I was really curious about technology. Today, technology hits you from every point, while back then, I had to be active to learn something new, let alone get access to a computer. But the first real challenge has happened to me, a CS sophomore, when one of my professors invited me to work on an in-class system that would assess students’ code by running it against a bunch of tests, pretty much like coding challenge platforms work these days.

What inspires you?

It’s a tricky question, because it’s easy to fall into a trap of “socially acceptable talk” and speak about success and scale and such. What really inspires me and makes me wake up every morning is the feeling that there’s a little more to learn, and I know precisely what to do about it.

On Codementor, there are different people who look for help and assistance. Some of them are complete beginners while others are really advanced and experienced professionals who are seeking advice on a very specific topic. Every new person I work with is a box full of surprises, and oftentimes I’m feeling completely dumb when asked a question. It’s a powerful driver that makes me learn, learn, learn, to get better at what I do.

Some people I worked with as a mentor have already launched their products. With most people I worked with, we’re still in touch, and they have made significant improvement in their skills, products they work on, or both. That’s truly fascinating and inspiring.

What is the first thing you ever built?

That was a tool to collect documentation from a bunch of XML documents into a single CHM file (that’s document format in Windows, remember?). The whole point was to make the sources flexible. To be honest, even these days, I still don’t know if there’s any reasonable product to build purely user documentation (no API refs and code stuff), however I guess it’s not as much of value any longer.

So, that was a single script that would collect all the files from a folder, resolve dependencies between them, run every file through XSL stylesheet and transform into HTML, then run a separate program that would pack the build into a single CHM with all the metadata automatically set. It took me about two weeks to make it work exactly as I wanted.

In seven months, I replaced it with MediaWiki.

If you didn’t have to work for money, what would you spend time on?

I love this question, because it makes me think different: if nobody had to work for money, what would I spend my time on? I would focus on learning the audial aspect of human communication. People talk to each other, real-time or not, every day. Subconsciously, a person reacts on other sounds more than one would expect.

That’s a huge area for research and discovery, and I’m pretty sure there’s a lot of people around me who share this curiosity for sound. In fact, this would be the next step after I have learned enough about conversations represented by text. I’d definitely try to find common interests with these people and do some work together. Teach a machine understand sarcasm? That’s what I’d commit some time to.

What is the best advice you’ve ever received?

The best advice was the most prosaic. A good ol’ friend of mine used to ask the same question, over and over again: So what? From time to time, I would achieve something or get awarded with a new title, and he would say: so what? You should have seen his perfectly straight and motionless poker face when he did that. It taught me that there’s no final point, that there’s always room for self-improvement, and that the game is more important than the win. Simply speaking, he taught me to not take bullshit. That’s quite a good piece of advice, I’d say.

What do you wish you knew when you started programming?

I wish I knew Docker.

Just kidding (but seriously).

I started programming on my classmate’s ZX Spectrum. I wish I knew what is trigonometry back then, so that I would understand what was happening on the screen. We wanted to make video games, but we definitely lacked appropriate knowledge, let alone understanding of how things move one relative to another.

Perhaps if I knew, this would give me some self-confidence to continue. What really happened was that I moved more towards linguistics, literally learning new languages. Well, that worked out well, too, so I’m actually pretty good with the outcomes.

What tools help you be productive?

About 10 years ago, I discovered an interesting tool: it’s a simple calendar where you would mark a day green if you’re feeling it was productive and cheerful; or you would mark a day red if it was stressful and filled with procrastination. Over these years, I have discovered many interesting patterns. For one, now I know that if I have two red days in a row, it’s beginning of a burnout, and guess what, burnout is real. Months of passionless dragging, letting clients down and failing at keeping up with most loose schedule possible isn’t what I want to repeat again in my life.

In our world of AI-powered super smart tools that remove obstacles and make decisions for you, using such a simple tool sounds ridiculous. It’s like brain versus calculator problem: brain is slow, and calculator is so fast, but brain is light years more powerful once it’s trained.

These days, productivity tools focus on future: they plan for getting things done. That calendar thingy only works post-factum, but when you reflect on what was going on, it’s like training your brain to do math. Surprisingly, it works much better on the long run. History repeats itself, and when you know your own patterns and phases, you can easily adapt and be productive all the time, not particularly in getting things done, but more like keeping your body and mind intact so that you’re able to get many more things done once you’re back into convergence phase.

What are you the most proud of?

Just a year ago, I reunited with my ex-colleague. He’s a very strong engineer, but he lacked experience in talking to clients and stepping back to see a product as a whole. We started working together with a client in the US, then another one in Australia, and eventually founded a little agency.

What makes me proud is how madly efficient it was regarding knowledge exchange. I learned most recent back-end development practices, I mean, I did it deeply and in finest detail; while he learned how to talk to a client, manage a product as a whole and deliver bad news when things go wrong without playing with words (like replacing the word “problem” with “issue” and such).

We did extreme progress. I’ve never done anything like that before. Of course it was mostly non-deterministic, we didn’t have a tool belt full of best practices. Yet I learned in a year what I hadn’t learned in ten years before.

And of course it’s still happening, although we slowed down to go through some divergence, generate new ideas, and eventually gain our gravity to get to know and collaborate with other like-minded professionals.

Rishat Muhametshin

Want to hire Rishat for a project?

Get in touch

or Learn more about how CodementorX works!