We’ve talked a lot about software developing so far, but what about other tech jobs in the industry? There are many paths that an aspiring software developer can take when entering or preparing to enter the field. Meet Dmitry Sharkov. He is a very senior level developer and a mentor for developers. But Dmitry’s mentorship is a little different than you might imagine. Instead of training or mentoring people to become software developers, he mentors software developers to become test engineers.
There is an increasing need out there for test engineers and people who can wear two hats at once: software developing and test engineering. So, just what is a test engineer mentorship all about? Listen in to episode 28 of Mentoring Developers to learn more.
Dmitry Sharkov is a software creator, fitness instructor, agile coach, and a digital & martial artist. He can be found on Twitter at @dmitrysharkov. That’s a fascinating set of attributes!
5 Steps To Be A Successful Developer
Click subscribe to learn the 5 steps to success as a developer and a lot more.
Episode Highlights and Show Notes:
Arsalan: Today we have Dmitry Sharkov, he’s a very good friend of mine. He’s a mentor, a senior developer, and a fitness group guru. So, I know a little bit about you and I know that you work with junior developers, but I would like to hear from you what you do, what your background is, and what you are about. How do you describe yourself?
Dmitry: First and foremost I see myself as a programmer and developer. That was my background from the get-go. These days I trained test engineers. In the last few years I’ve started to drift more towards test automation as a focus mostly because while I love writing application code, it didn’t set me apart like test automation does. Focusing on testing wasn’t something that too many developers did. So it gave me an opportunity to move into a mentorship role and to help geeks become bigger geeks, so to speak.
Dmitry: What I’ve been doing lately is leading a program that trains developers to be test engineers. So, they still write code, but its code that tests other code. It trains a developer/tester mindset so that they can wear both hats at once. So, that’s where my focus has been recent, as far as technology goes.
Arsalan: I know that in a lot of organizations, including Microsoft that there is a team of these automated testers. There are these organizations who don’t like to higher manual testers who click around manually by hand and pass or fail a system based on whether or not it’s working, according to specifications. They are these programmers who have that mindset of testing and they write software and code that executes the code that they’re trying to test. That’s very interesting that you’re involved with that. How did you get started with that programming?
Dmitry: I started programming around 10th grade by just writing stuff on our horribly overpriced TI ’83 calculators. Our high school had a programming course that exposed people to writing Basic on those calculators. So, I took classes on programming in high school. Then, we had one in C++ and they offered one in AP computer science, which was just a lot of C++ programming at the time.
Dmitry: The reason I decided to go into that was a combination of three things. It was very gratifying to write code, getting it to work here and there, and then getting to see your product in front of you immediately. It was more difficult for me than other stuff that I did and I found that engaging in a way. I looked at what careers would make sense from a market perspective and technology didn’t look like it was going anywhere except becoming more widespread and needed. So it made sense and I knew it is something that I’d like.
Arsalan: So, you knew that you wanted to do programming but did you know how to proceed? Did you buy a book and try to read it to understand it? Did you find a mentor? Did you take classes? How did you get started in this?
Dmitry: Initially, it was available and it was offered. It seemed like an interesting sort of thing and was different from your typical high school curriculum. After taking those classes, I went down a fairly generic path. I didn’t really pick up any books on jumpstarting my career in software development. I just enrolled in OSU and selected computer science and engineering as my major. So, it started in high school and just continued on past that.
Dmitry: Even in college we had instructors that became almost like mentors. There was a statistics instructor who I kind of viewed as a mentor as well as one who had a software engineering course, which is very different from a programming course because it’s more about the industry and how the industry functions.
Arsalan: Did you find that computer science program beneficial to you. Once you begin your professional career? Did that help you?
Dmitry: A little bit, yes. I did go on and do graduate work after that. What I found most helpful was a co-op that I ended up doing. I started it midway or towards the end of my third year at Ohio State co-op at Chemical Abstracts. I was one of two programmers or developers at their editorial building. I was involved in supporting all of their analytical tools and sort of doing one-off work. It was doing that full-time during the summer and part time as I could, during the quarters when I had classes, that prepared me best.
Arsalan: okay, so you started your career, got a co-op, got a job, and now you are mentoring developers in, I’m assuming, a classroom environment. It’s not one-on-one mentoring. You’re actually teaching a course.
Dmitry: Yes, it’s kind of a combination of several approaches. I don’t take a lot of folks at once because this is work that requires a lot of one-on-one attention. I take a small handful of folks and we start with a classroom component that lasts from 2 to 3 weeks. It also depends on my availability because I’m involved in other stuff as well. We train our trainees on production bound assets. So, they learn not just how to apply the tool but also how to work in a nurturing team environment. It gives me an opportunity to pay more attention to how they work and help them out if they run into obstacles from a technical or management standpoint.
Arsalan: So, is that challenging? Do you enjoy that?
Dmitry: Yes, I do enjoy it and it is challenging in a lot of different ways. Most of the technology that we’re looking at is Ruby Cucumber and different technologies around that. It might be Active Record, Water Web Driver, Cucumber-JS. So, we don’t just focus on Ruby. We look at those different technologies and apply them to test suites and then test suites for applications. So, there are challenges around ensuring that I’m teaching them the latest and greatest approaches because these technologies do seem to involve somewhat rapidly.
Dmitry: There are also challenges with dealing with different personalities, different levels of aptitude, different levels of initiative, more than anything. That’s the one thing that I found very interesting. I tried to pick people who have a high enough aptitude in the first place, but the one thing that’s very difficult to gauge early on and where I see a big spread is an initiative. It’s how much of a go-getter can someone be if they run into an obstacle. Are they going to pursue it themselves or will they freeze in their tracks and wait? That’s one of the most challenging things to coach overcoming is a lack of initiative.
Arsalan: Do you think that other companies should follow in this footstep? This is sponsored by your company, am I right?
Arsalan: So, what’s the motivation for your organization? There is a very small minority of companies that are doing that. What are they getting out of it?
Dmitry: A number of things. You’d be surprised by the number of consulting firms who are starting to go down this direction. One of the reasons that we did this is that there is a need in the marketplace for people with skills in test engineering, automation of end-to-end tests, understanding testing strategy, understanding, quality, and being able to work with developers in building joint ownership of quality across the team. Microsoft went down that path quite some time ago. Google also has a similar kind of role breakdown of software engineers, software engineers and tests, and test engineers. That’s starting to come across into the Midwest and coming into demand, but there’s not that many people with that expertise, not enough people to lead efforts, and not enough people to do all the work.
Dmitry: So, we saw a need and you can’t just hire from somewhere else, as there’re not enough people who can meet that need. The people who have that skill set can charge their time at a premium because it’s in demand and this is a place where there’s a lot of potential for growth. It’s a young discipline in central Ohio and people who get that discipline and it’s our very quickly in a position to mentor others. So, it just made sense for us to start from the ground up with people who had that potential to do this kind of work, up skilled them, and then we get the added benefit of offering something that is in high demand and putting some engagement models around that where we get to lead the engagement. So, it becomes more of a true consulting capacity and we give people a very valuable skill set that then puts them in the position to become mentors quite early in their career.
Arsalan: I appreciate that you’re spending your time and mental energy with your company to do this program. I don’t know if anybody else is offering this kind of program, but I think it’s a win-win situation. You get the talent that you don’t have to pay a premium for and some developers get training. That’s generally not available. It’s very rare for companies to hire without skills and just based on potential. That’s kind of what you’re doing, but your program is designed like training, correct?
Dmitry: Probably the most appropriate way to refer to it is that it’s an apprenticeship. They kind of trained by doing the work. We try to break that cycle of needing the experience to get experience. Do you know what I mean? We tried to circumvent that vicious cycle that people can find themselves in.
Arsalan: After they are done with that. Are they guaranteed employment? Or, is that separate?
Dmitry: The ownership is on us to prepare them for success. So, it is a very rigorous program that last months. The way that it usually works is that we want them to stay with us for a little bit because it is a big investment up front. We hire them on in the first place. They are employees of ours the day they set foot in the door to begin training in the apprenticeship. Then, we spend however long it takes to prepare them for a consulting role. I suppose you could say that they are guaranteed employment barring any issues that any associate for any employer might have. So far we haven’t had any problems and we placed everybody, and they’re doing well.
Arsalan: That’s good to know for all those aspiring developers out there. I think that they will thrive in this programming career. It’s good to know that there are companies out there who are going to hire people without skills currently, but within a matter of months. They are able to work confidently as software engineers, or perhaps junior engineers, but engineers nonetheless. Does that sound about right?
5 Steps To Be A Successful Developer
Click subscribe to learn the 5 steps to success as a developer and a lot more.
Thanks for Listening!
If you found this episode useful, please go ahead and share it with your friends and family. You can do that easily using the social media buttons at the bottom of this page.