August 24, 2020 Career, JobChange, Personal, Success 4 comments
August 24, 2020 Career, JobChange, Personal, Success 4 comments
Disclaimer: opinions in this post are my own and do not represent opinions of my current employer or any of my past employers or any of my or their clients.
Time for some big news: as of 24th of August I’m a Googler or rather a Noogler, as newly joined employees are being called.


It has been almost a month since I left Amazon. Here is a “mandatory” badge photo. Amazon was a place of rapid learning on multiple fronts, not just from engineering perspective but from many other. I learned Java or at least enough so that I can write code in it (not that is is much different from C#, which I knew before) and I learned how scalable and resilient solutions are built. But other than that and most of what I learned wasn’t programming related but more of understanding on how truly data-driven, customer-oriented (or let’s say “customer obsessed”) company is run. Seeing this machinery crunching from inside was absolutely astonishing. Probably what’s the most prominent about working for Amazon is its strong prevalent culture embodied in 14 Leadership Principles. Each and every aspect of work is guided by those principles. It starts with your interview to be an Amazonian. It takes you through working days, your promotion, decision making and anything you could think of. People live by these principles.
During 2.5 years I worked on retail project to launch and scale a fulfillment channel in one of the rapidly growing markets. The time allowed me to meet and work with amazing and smart people. The team I was on was awesome and my manager was a boss you can only dream about. I liked the vibe of Vancouver’s office, maybe because it was much more multi-cultural and diverse compared to Seattle (though I might be mistaken). I was promoted at Amazon to SDE3. The project I was on was and probably is gaining more and more of momentum.
Some of you would be curious why I left Amazon if things were going so well. (Just look at AMZN stock price for one data-point). As every job there are negative aspects. Amazon is somewhat notorious for those, but I didn’t leave Amazon to leave Amazon. I am not excluding joining Amazon again some years from now. Current decision is more to learn about another big company, its culture and processes, especially when we are talking about Google.
I don’t know what exactly to expect from this change. Many software engineers see Google as the most desirable employer to join. The company is famous for its high engineering standards, googley culture and so many other things. I’m excited to the core to embrace what is coming at me.
Among 24 checkboxes in my 2020 plan working for Google will tick few of them. This includes double-tick on meaningful work-related change, learning a new programming language (will be coding in Go and Python), and unexpectedly might change my coffee and sleeping habits (if I succeed in regularly getting up before 6AM and not having coffee :) ).
April 4, 2020 Career, Success 14 comments
Disclaimer: opinions in this post are my own and do not represent opinions of my current employer or any of my past employers or any of my or their clients.

Señor Engineer
I just had to put this picture for few friends of mine ;)
Recently I got promoted to Senior Software Engineer position at Amazon. This post starts with my career story leading to the place where I am now and finishing with thoughts on titles, their meaning, and further thoughts on professional growth for software engineers. Bear with me, this is a long post with no conclusion.
My first job was with a Ukrainian outsourcing company, Softserve Inc. I started there in April 2008 and left the company in December 2011 to pursue new experiences in Western Europe. During those 3.5 years I got promoted twice. When exiting the company I was titled “Senior Software Developer” leading a team of 8 developers. Most of us were young software engineers just some years out of college, we were in a different kind of business than all of my next jobs (outsourcing vs. product).
My first job is still an inspiration on how I should be approaching my career. Being career driven, ambitious, and overly eager to learn non-stop were the main characteristics of me back then. I was brave enough to speak at user group events, and teach others. I’ve just read old post on leaving my first job and it inspires me. My English is horrible, but the meaning is everything:
I joined my second company in Austria as a Software Engineer (intermediate level) and was extremely happy with the quality of software we were producing and everyone’s skills. This was the first time I started learning about distributed systems and just loved working there. I hammered the keyboard non-stop and was happy. As it always is, every story has its end. I left my second company banally to earn more money. Sad but true. They tried to keep me by offering some XX% salary increase, and… drumbeat… a “Senior Software Engineer” title. I rejected. I don’t know if that was the right move, but that clearly was time when I chose money over title or even over happiness at work. Below is a blog post about leaving second job and reasons why I chose money, if you are interested:
I spent only 1.5 years with second company after which I had long 4.5 years with United Nations (well, the IAEA, which is international organization associated to UN). I started as a contractor Software Engineer – my title didn’t really matter as at first I was self-employed, I could probably have called myself “God Of Software Engineering” at “Greatest Software Company In The World” and it would not matter as for the IAEA I was just a contractor and they made me go through airport-like security each and every day for few years. In the end they hired me as a Staff Member with a cryptic title “Systems Analyst / Programmer” putting me in charge of a team of contractors :). This was another bump in my income as suddenly I didn’t have to pay taxes (yes, let me repeat it – I legally did not have to pay any taxes at all).
The place is definitely unlike any other workplace. There were over 100 different nationals working in the same building with me. I worked directly with people from Iraq, Zimbabwe, Azerbaijan, UK, Australia, Canada, China, India, and so many other countries it was virtually impossible to know who is from where. There was so much learning about different cultures. This alone was awesome. There were tons of other benefits related to working at that place. Not everything was great. For instance, I had to come to work in a suite – yes, software engineer in a suite. More seriously I was looking for more growth. Even if I managed to get promoted that would not make any major difference. Maybe, I would just start wearing a tie in addition to suite. Unfortunately, I don’t have a blog post about leaving that place, even though I have so much to share. All I have is this picture of me getting out of a nuclear reactor and tweet:

Up until 2018 I was mostly .NET engineer with desktop, distributed, mobile and web skills. Starting to work for Amazon meant dropping good portion of that knowledge and learning Java and many things from the “dark side” (oh, sorry, that’s the other way around). I’ve joined Amazon as SDE2 and I didn’t mind joining on an intermediate title as I knew that working for one of FAANG sets me on a totally different growth path that brings challenges of a different magnitude. I cannot talk too much about work at Amazon other than what’s public. But it is not a secret that one line of code change could mean MM$ of loss or MM$ of revenue here just because of enormous scale. This is why Amazon always tries to raise the engineering bar. Amazon is a place of insane growth. Love it.
So where am I going with all of this? If you followed me so far, you would notice I always skipped titles either for new experience, more money, or growth opportunities.
So do titles matter? I think it depends on how you look at them. You can be “CTO” at company of 10 people making 100K a year, or be a fresh grad Junior Engineer at top company in bay area and make twice as much. But “CTO” might have a chance to grow her company to giant and make millions because she is in a different growth position. It is not only about titles but what they really mean, what level of responsibility they bring, what is the pay band, what impact, knowledge, and skills are expected. Most often companies define levels boiling down to some kind of seniority and scope of responsibilities and then would define different titles having technical track, management track and maybe few more.
Long story short, I think titles do matter but they matter in a context.
When I look at titles of people whom I knew from my first job I get humbled – some of them got promoted 6 times to the likes of “Vice President of Something” or “Senior Solutions Architect” or even something more pompous. Not all of them, though, some of them who were less ambitious or had different goals took different paths. This makes me wondering where I would have ended up had I stayed. I will never know, but should I even care? Should you care about your past decisions and think too much? We should not! Regret is a painful emotional state to avoid. We need to always try to minimize potential regret.
Everyone of us has a different path in life and in our careers and that is just the way it is. We care about ourselves, our families and people we know and relate to. So for the most part you don’t care about me or my title the same way as I don’t care about your title or other engineers’ titles. That having said, you might be interested in this post as you might be wondering how you can get to your next level or what you can learn. Human nature is not to be happy with what they have and I am ok with this. This is normal.
Here are original bullet points from me:
This is a difficult question. If I take philosophical approach I would say that a lot is due to luck – we just pop up like little candles in different parts of the world and then we fade away, you might have been unlucky to be born in poorest country in the world or your parents might have started preparing you for Stanford in elementary school. You might have worked on a project that suddenly started making millions of dollars growing and riding everyone’s careers with it or you might have worked on failed project and got laid off.
Another cold-blooded view is absolutely deterministic. You are worth exactly what you are worth, meaning that if you somehow think you deserve higher level this is simply wrong as you were not able to determine what it takes to get that what you want and therefore you don’t deserve it. Big companies have data-driven approach to promotions. If you have the data for the next level you will undeniably get it.
My overnight promotion was years in making.
This was just a story. You can make your own conclusions. I’m just encouraging you not to give up. Feel free to leave me a congratulatory or any other kind of comment.
Among other things, this promotion completes one of the important parts of my 2020 new year resolution. I’m now 12.5% done and more is to come.
January 5, 2020 Career, Opinion, Success No comments
How we approach problems often defines whether we succeed or not or how hard success comes to us!

This blog post is my humble attempt to come up with some of problem solving advice for software engineers who are starting in their careers. Why would you listen to me? – You don’t have to. In fact, I would argue, that you shouldn’t take anyone’s advice at glance and at the same time be open to evaluate everyone’s advice and then make up your own mind. I do not have many credentials, other than 12 years of experience as a software engineer in various roles (SDE, Sr. SDE, Tech Lead) and various industries (outsourcing, online entertainment, nuclear energy, e-commerce). My experience is different and success is questionable. I am guilty of making career mistakes and solving problems the hard way. My hope here is that the below could save you from making same mistakes.
The worst mistake of all is to die with regrets but, as not to get too philosophical, we are talking about software here. So…
It is totally normal to get stuck time to time on problems. If you never ever get stuck it might indicate that you are staying in your comfort zone impeding the speed of your progress. Therefore, imho, one of the worst things you could do to yourself at work is to let yourself stay stuck on a problem without any progress or learning and as a result with no advancement to your future career.
The first step to approaching a problem is understanding. You’ve got to identify the issues and envision how the success would look like. Sometimes this might be referred to as “working backwards”. More often than not, there will be preprocessing done by business analysts / project managers / senior engineers which results in some kind of requirements (stories, documents, tasks, etc). Your job as a software engineer is to first understand what is wanted from you. Simply state back to requirement givers in your own words what it would solved problem mean. Once you understand the problem completely proceed to the next step.
The second step is strategizing. You need to come up with a potential solution. You might want to brainstorm on options, evaluate them and try to come up with the best one. Decision matrixes and other techniques might help, but don’t bug yourself too much. At this step you might want to create a plan by breaking problem into smaller tasks. You might work on proof of concept or try one or few things out. I do not believe in plans themselves, but I do believe in planning as it makes you think hard about the approach. It is important not to get stuck in “analysis paralysis” mode, so once reasonable time is spent, move on to the next step even if somehow you don’t feel ready. You will never be fully ready. Take on the problem you’ve got. You might learn some new things when doing so which you didn’t anticipate.
The third step is approach execution. Doesn’t matter how great plan you had, if you fail to execute you fail. Say, you picked option x and it didn’t work out for you, do you continue to push for x or do you switch to option y, do you give up, do you seek help? What do you do? Do you feel how anxiety creeps in?
From my personal observations generally there are two types of execution: erratic and systematic.
Basically you just start bashing the keyboard, throwing different copy-pasted blocks of code and praying it is going to work. This is that kind of approach when “<” didn’t work, so you replaced it with “<=” and it worked, but then you realized that your loop had to start with index 1 instead of 0, and so on. Eventually you arrive at the finish line. I bet that most of us, software engineers, have used this approach and it worked at times but then we felt uneasy about it.
You think about each piece of code you write and consequences it is going to have, questioning each line of code and thoroughly testing the code. Why do I use “<” instead of “<=”? Why does the loop start at index 0? Should have I used thread-safe data structure here?How would this button look on small screen? Why does this API accept any number of items? I don’t know about framework ABC, so why not read a doc reference first? And so on – you question everything! This approach might seem like taking much more time and it does, but eventually written software has less bugs, is much more maintainable and truly solves the problem. Arguably, maturity of a software engineer can be recognized by observing them solving problems in this systematic way.
It is in my personal view that approaching a software problem consists of 1) understanding the problem 2) strategizing about solutions and 3) execution of the strategy. Observation I have made over the years is that engineers tend to solve problems erratically or systematically. More systematic approach supplemented with the above bullet-pointed guidance might be helpful advice for starting software engineers, but be skeptical as this is purely an opinion. Enjoy and let me know if it helps.
October 11, 2015 Career, Success 2 comments
A first glance look at your resume will rest assure a potential employer that you are not worth hiring if it looks like a crap.
Even if you listed tons of technologies, badly looking resume hints that you don’t care about the quality of things. Employer might think: “He must be writing his code in the same ugly way.”
In this blog post I want to share few things I did to my resume.
Actually, I have more of a CV than a resume. After recent changes I created two different versions of my CV. One is more concise two pages that I would normally use and another is extended 4 pages version. Four pages version contains detailed information on projects I worked on, so it can serve for my future editing, should I need more information.
Probably, the main thing anyone should do to their CVs is to ensure your future employer will have a clear idea on what you had done before. Obscure general phrases are just destroyers of a resume or CV.
For my own resume I completely rewrote everything into smarter format. I used past tense bullet-point sentences to clearly describe what I did. Let’s have a look at before and after of one concrete example.
This is what I previously had as a summary for my experience at bwin.party company:
“Developing and extending large set of back-end services in scope of enterprise SOA architecture in large betting company. Scalability and performance were top most requirements.”
It was followed by a list of projects I worked on. One of them was statistics service I created. I described it like this:
“Service which fetches huge amount of statistics data from external provider over FTP and transforms it for internal consumption.”
Obviously potential employer looking at this description wouldn’t have any idea at what my contribution to this project was. Was I implementing it from scratch or was I fixing bugs? Or, maybe, I just know something about the system so I listed it.
After editing, the summary became:
“Bwin.party is an online betting company. I worked in the company’s sports branch, with a team responsible for backend services. Scalability and performance were the top most requirements. Most services were exposed through REST API; they had to be available 24/7 and withstand extreme loads during championship events.”
Then, I came up with this description for the statistics project:
“Designed, implemented, and launched a new sports statistics system. This system imported data from an external FTP location and made it available on our website through AppFabric Cache.”
This description exactly says what I did and even provides a glance look at some of the technologies used.
Another thing I had to improve was my writing. I’m not native English speaker and I’ve never took any English grammar classes. I make many mistakes.
I hired an editing and proofreading company to go through my CV and fix mistakes. I only paid 31 Euro, but my CV became English language error free. Plus they provided a few general suggestions on improving my CV.
You have to be really careful with someone editing your CV, as they might change the meaning unintentionally. For example, they wrote “Fixed a serious performance problem using search engine…” when it really had to be “Fixed a serious performance problem in the site’s search engine…”
There were obvious problems that made their way from times when my English was even weaker. For instance, sentence “I was awarded in nomination “Best Rookie Developer of 2008” in my team of 50 people, so am proud of this, because at that year our team got a lot of new people.” sounds horrible to me. Now it just says: “Was awarded the “Best Rookie Developer of 2008”.
I completely changed the format of my CV. I’ve borrowed styling and formatting from my friend’s resume. He’s hired a professional technical writer to create a CV for him.
Previous version was grey 4 pages wall of heavy text with odd formatting.
![]()
The new version is just two pages. It is nicely formatted and is error free. It is available here.

It’s very important that someone reviews your CV. I asked my colleague who does a lot of interviews to review my CV. He said that if CV is short, screener reads through all job posts, but if it is long screening ends at your last job post. So it depends what you want to show. Other thing he thought of, was adding skill grades for different technologies, like C# (major skill), F# (minor skill). I didn’t incorporate this advice, but I’m still considering it.
I added a new photo to my CV, not the one you currently see. After I showed my CV to my wife, she said that she would never hire someone who looks that frowning and sad. I had to make a new picture with a hint of a smile.
I already have official recommendation letters from two of my previous companies. I’m planning to include those when applying for a job. A recommendation letter for a software developer is not common in Ukraine where I had worked before moving to Austria. But here in Western-Central Europe it is almost a must. I think that it doesn’t do any harm to ask for an official recommendation letter even if it is not common in the country where you live. Ask for it now, otherwise it could be a difficulty to get it few years later.
I’ve never used a cover letter. It has never came to me that this might be a useful technic. But it might, especially if you are looking for a specific job and want to outline exactly why you are the best match for it. Should I find my “job of dream” I might consider creating dedicated cover letter. For now, I won’t create one. Have you ever used a cover letter? Did it work for you?
I haven’t done this. I also have mixed feelings about hiring someone to write my CV completely from scratch. Probably, they can do a great job. But finding a really worthy professional might take lot of time. Also a good one would cost you few hundreds $. Though, it is definitely a great investment, if you resume looks terrible at the moment.
My resume wasn’t looking good. It isn’t extraordinary great now, but I think I’ve improved it significantly. Main things I did to it, was rewriting it in more concise and descriptive manner, fixing mistakes by hiring a proofreading company, and changing the styling.
Hopefully, this post can be of some help to make your resume look better. I would be really happy to know if it helped.
If you have suggestions on further improvements to my CV, I would really appreciate it.
There is more to having professionally looking CV / Resume. You should consider having market oriented resume versions.
For instance, described above two pages CV with a photo is common for EU, but it is not a great thing for US market.
In US it is more appropriate to have 1 page resume without any personal information.
As a result I created US oriented one page resume.
October 3, 2015 Book Reviews, Career, Success No comments
After going through short free blogging e-mail course by John Sonmez, I didn’t sign up for the marketing course. I was a bit sceptical about paying few hundreds for the course. But not to miss on the opportunity to learn from John I decided to read his book “Soft Skills”. (Actually I listened to it via Amazon Audible.) The book wasn’t exactly what I expected it to be – it was much more. It’s kind of a book I would like to write myself someday. The book isn’t just about soft skills needed to perform your everyday tasks at work, it is much more generic and broader in topics. The book is about skills you need to succeed in your life as a software developer. “Soft Skills” includes advise on career, productivity, finances and even fitness and nutrition.
There is a lot of unique in the book, but probably you will find yourself familiar with some of the recommendations. For example, in one of the chapters on productivity John suggests using pomodoro technique. Obviously, it isn’t something new. But the author explains how to make it work and also adds few of his own practices. Everybody knows that their health is very important, but unfortunately too many of us neglect to do anything about it. I think emphasis this book does on fitness and health in general is something that makes the book special. Personally, I didn’t really enjoy some of the chapters on finances. Maybe that’s because I’m almost done with my goal of reading 13 books on finances and investing this year. But, still, I think that others might find it useful, plus it is interesting to know about the financial experience of the author himself.
I’ve certainly learned few concrete tricks and technics I’m going to use when searching for my next gig, like creating a resume that stands out, applying for a job, hacking the interview, negotiating effectively and other.
I will also apply some of the productivity recommendations at my current work.
A lot from the section on learning is very practical. Hopefully, concrete steps this section is offering will help me overcome some of the inefficiencies in my learning process. I have to admit that I often learn incorrectly. For example, frequently I first read a book and only then try things out. Intuitively it felt to be an inefficient way of learning, but I continued to do so.
The other big takeaway is health related. This year I started to run (well, again), but this is not enough to feel myself fit and full of energy. The problem is that I’m not consistent in my runs. I will add some scheduled fitness exercises to my runs and will try to follow John’s advise on the topic.
John has managed to retire at age of 33 and even I’m 5 years away from that age I have less aggressive target of retiring at 41. Best takeaway on the financial side was realising that I share same opinions on the matter and have already taken few of the first steps on the way to financial freedom.
“Soft Skills” is up to date book with very sensible, practical and actionable advice for any software developer. It has a potential to greatly improve your life – not just your career. I would highly recommend to read this book. I’ve even ordered a printed copy of the book as a gift for my friend for his birthday.
See the book on Amazon or buy it using my my referral link below.
September 15, 2015 Book Reviews, Success No comments
I think I’ve read “The Passionate Programmer” for the second time. Otherwise, I cannot explain why almost everything I read in the book sounded like a “Déjà vu”. Well, even if it was a second time, it’s worth it. Book itself if very easy to read. It is nicely organized in small chapters and contains short real-world stories from different people. I liked reading the book very much. Besides, since recently I started working on getting back on track with my career and blog writing this book came very handy.
Author, Chad Fowler, does really great job advising software developers on their career. This book definitely makes you think about your current position and gives sensible suggestions on possible actions to improve the situation.
The book helps you realize that your skills are just a product. A product that is highly demanded. For any high demand product there is high supply. And it is only a question where you find your product in all the supply available. Is your product a quality one? Are you sure your product won’t become obsolete over time? What is it you do to stand out from the crowd?
There is one take away from the book that I took action on already. I started writing Monday weekly e-mails to my direct manager with list of last week’s completed tasks and the goal for a current week. This is not to make my manager happy nor to make me look nice. I’m doing this for myself. For sure this will keep me focused and provide additional push for completing my work.
These below are some other action items from the book I want to take:
Go ahead, read the book and create a list of action items for yourself.
Just Be Better Than Yesterday!