Story of my work experience
I have been working as a software developer for most of my life.
I grew up as a talented kid and started to read very early. My first computer was a clone of the ZX Spectrum and it had integrated BASIC, so one of my first experiences was typing some programs from journals into the computer and playing with them. As I grew up, computers and programming remained an integral part of my life.
I think that I wrote my first practically useful software that was used by someone other than me (a small DB app for management of a local warehouse) at the age of 14.
At the age of 15, I got enrolled into a school for talented kids. We had great teachers and this greatly boosted my skills. It also helped me to establish some contacts so by the time I was a 17-year-old student, I started working with a known Russian scientist Viktor Grigoryevich Komar on a project in Computer Vision. We had a shared project with a Korean university in Daejeon that was aimed at the simplification of filming of 3D stereo films. We worked for 2 years (and I was even invited to Korea for a couple of weeks for knowledge transfer), but sadly we eventually failed to achieve results that would be good enough for practical use. The task was very hard and I was still inexperienced.
Later I started working part-time writing articles for Russian journals about computers. This wasn't much money, but I was able to live separately from my parents and travel around the world. I visited Germany, the USA and Taiwan writing articles about events like CeBIT, IDF and Computex. This was a nice experience for a student.
In 2006 I graduated as a Master of Mathematics from Moscow State University, specializing in Computational Mathematics. MSU is a top-tier Russian higher education institution that is consistently ranked as one of Top-100 world universities. I graduated with a GPA score of 3.7 (on a standard 4-scale). My mathematical education gave me a deep understanding of many concepts important in practical computational problems (linear algebra, differential equations, differential geometry, calculus, etc.) and it was combined with good courses in computational mathematics (FEM, FDM and other methods) as well as some courses in software development. I also acquired my first software-related patent (Russian) during that time period.
In 2007 I joined Align Technology R&D division in Moscow as a desktop C++ software developer. I worked on the development of a CAD/CAM system used for medical treatment planning, specializing in optimization-based methods that automated several key processes that previously had to be done manually by humans. Align by that time was an already established company with a well-developed culture of software development and a very good code base - they had really good founders. Soon I learned a lot about software development and realized that I was quite a stupid young boy by thinking that I was a genius in software development just because I started writing programs at an early age :). It was not just practical experience with software - I learned a lot about the role of human interactions and planning in software development and learned how to collaborate with other people.
By 2010 I grew increasingly dissatisfied with my job because I thought that I couldn't grow anymore, and started looking for other jobs. However, my manager suggested trying to move horizontally within the company and try something new in Align. During that time Align was looking for a company that could provide 3D scanning services to feed data into the Align CAD/CAM system, so I ended up on a brand-new integration project between Align and Cadent - an Israeli company that had the best intraoral 3D scanner in the world at that time. In 2011 Align acquired Cadent and I started working on 3D scanners myself.
Since then I participated in the development of 4 generations of 3D intraoral scanners. I started as a regular software developer working on iTero HDU / HD 2.9 scanners, then worked as a team leader in iTero Element / Element 5D where we rewrote almost the entire code base, then worked in an architect role for iTero Lumina where we again had to update the code base a lot because of a very different hardware architecture. The original iTero code base wasn't as good as Align's, so it was a very interesting exercise in rebuilding the product and making it better.
I love my work on 3D scanners. For the last 10 years I have been the guy making presentations about iTero for all newcomers to our branch of the company. It was an interesting blend between hardware and software (and I actually contributed to HW development), plus it was always extremely computationally heavy, so we had to push every possible performance optimization we could in order to create a good, responsive software working in real time. It was also always pretty heavy on math, which was a good fit for my educational background.
My specialization in 3D scanners is SLAM - simultaneous localization and mapping, one out of three components that form the core of any 3D scanner. However, I worked on a very wide range of topics during my 15 years in iTero, ranging from 3D graphics to automatic methods for quality assurance. I often found myself helping various teams to solve problems they were stuck with. I've always been a major generator of ideas, but soon realized that I don't like to be the person who just provides an idea and then drops it to other developers to actually implement. I prefer to own solutions that I suggest and make sure that results are achieved before moving on to another topic, even though this hampered my career growth to some extent.
During my time in Align, I wrote or contributed to 22 US patents and developed two world-class leading-edge algorithms that outperformed every result in the field that I'm aware of (sadly the company did not allow me to publish those or present them on public events like SIGGRAPH). For example, I developed an algorithm for globally-consistent multiple scan registration that greatly outperforms the LUM algorithm (Lu & Milios SLAM) by using some interesting math from differential algebra and geometry. Some of the software I developed on my own initiative ended up as essential parts of our development process or essential features on iTero scanners.
Aside from technical experience, I also got plenty of soft skills by working in a multinational, multilingual and geographically distributed company. I cooperated with teams working in different regions and often acted as a "glue" connecting them together. I got promoted to "Expert Software Engineer" - a position that only a few people hold in Align, just 1 tier short of "Principal Engineer", the highest achievable position on a technical career track. Despite my mostly technical expert role, I also acted as a people manager on several occasions. I got training and plenty of experience in Scrum methods.
After 2022 I was forced to flee from Russia due to the war in Ukraine and associated political events. I ended up living in Armenia, which I think is a wonderful place to raise my kids. However, this increased my living expenses and I found myself helping plenty of people around, both Armenians and other Russian emigrants fleeing from political repression. Align is a big company with a slow and bureaucratic process of raising salaries and I was basically already working remotely most of the time, so I decided to start looking for better-paying opportunities. And while 3D scanners were always a very interesting story for me, it's also probably the time for me to expand my experience.
If you are looking for a hard-working developer with good math skills - I could be your next guy.