Success

Intimidated to try something new? How discomfort opens doors

November 2, 2024 Opinion, Success No comments

Everything in life happens for the first time (and last time for that matter), but some things don’t happen at all. First kiss, first job, first home, first kid, first gray hair. Success isn’t guaranteed and failure isn’t unavoidable.

There is this martial arts dojo next to where I live. I used to walk past it and see people practice.  I never did any martial arts so it was very intimidating and uncomfortable to sign up there. Everyone appeared many levels above me, and true I would get punched in the face during sparrings. Year and a half past that I have fun and feel super comfortable during our light fights. Outside of the gym this gives a psychological sense of security (it is a false sense to some degree, though, but the effect is there).

Me with Kathy Long in Intention MMA DoJo in Vancouver

I have never been to any sauna until maybe 30 years old. I always thought of saunas as some weird place where completely naked people sweat, so it was very uncomfortable to go to sauna at first. Now I can easily outsit many people there. I love saunas.

On one of my recent work trips there was a junior engineer on our team who would strike up a conversation with everyone, literary. It was amazing for me to observe this person: while buying coffee he would chat with a barista, he would join a random group of colleagues to chat about whatever. I mean, I have seen many extraverted people, but this was another level, so I followed his example and pushed myself to talk to strangers. On the flight back I started talking to a person next to me and had a great pleasurable chat that killed the entire flight’s time. This is because I pushed myself into discomfort, not because it was natural to me.

Being in a senior position at work requires stepping outside of comfort and talking to a lot of people I see for the first time. I have been observing how other leaders are doing this. I found that for myself I need to imitate what they are doing. The behavior appears to have common and fairly simple patterns: being respectful, thanking people for what they do, catching the essence of the message, speaking but also giving others opportunity to talk, etc. Topic for another discussion, but pushing yourself to be more like a leader makes you a leader.

You need to sign-up to give that presentation at work, you need to have that uncomfortable discussion, you need to pick that daunting project, you need to step outside of your comfort zone and embrace the challenge. Growth only happens when you stretch beyond what you already know or what feels safe. Biggest successes in life come from risk taking and discomfort! (yes, there is a chance you will fail, otherwise it won’t be a risk).

This blog post is mainly a short self-reminder about the importance of embracing uncertainty and intentionally stepping into the discomfort territory. Do it – you will emerge stronger on the way out.

I signed up to showcase my rock climbing hobby at work during DEI&B fair next week. This is a bit uncomfortable, let’s see how it goes. More to come…


No comments


Is Being a Generalist Software Engineer a Good Thing?

September 7, 2024 Career, Opinion, Success, Uncategorized No comments

It probably doesn’t compile otherwise why be so unhappy?

Somehow I became a generalist software engineer with a diverse domain experience. I started career with C# and moved to Javascript and then to Java and now C++. I worked for healthcare, online entertainment, nuclear energy, e-commerce, and advertising industries. In this blog post I want to share some of the details of these experiences and conclude on whether being a generalist is better than being a niche engineer.

Technology Lens

The very first program I ever wrote was in QuickBasic in grade 6 (1999). The school computer I wrote this was only capable of running some version of DOS. Computers at university ran Windows and I learned to code in C/C++/C# + some more obscure languages (Prolog, Algol, Pascal). In my first job I wrote desktop and mobile solutions using MS technologies, mostly written in C# with WPF & WCF. My next gig was all about performant backend services with a mixed technology stack backing a multi-million user website. At my next job I found myself translating nuclear material accounting code from the 70/80s written in PL/I that ran on mainframe into Javascript or C#. Most engineers who wrote the original PL/I code either retired or died. This job taught me that I can love a dynamic programming language. Then I moved to work for Amazon, it was all about launching new business workflows and scaling it with Java services backed by AWS and ReactJS frontend. Now at Google I mainly write in C++, but from another perspective for me there was a big shift from working on products towards working on infrastructure that supports traffic for billions of users.

Domain Lens

Now I want to have a look at all of the same jobs but from a different perspective. The first projects I worked on were for healthcare providers. Honestly, I didn’t give myself much thought about the morbidity of the things, the fact that much of the software was for hospices didn’t bother me as I was operating on the level of tasks. It was only later when I was working on a mobile app for nurses to visit patients at their homes did I internalize what this all was for. Next job probably wasn’t that noble – it was in online entertainment, more specifically sports betting. I even had an account with a competitor and placed small bets on sport events to understand how they do things compared to us. Saving the world from making more atomic bombs? Yep – that was my next job, kind of. On the ground what I was doing was merely software for IAEA (UN) and its agents who went to nuclear facilities and collected nuclear material data, performed different checks and recorded them in the app for later analysis. I got a chance to visit a nuclear reactor and learn how it works. Next gig was about enabling small companies to sell more stuff at Amazon. This was about enabling an entire channel of dropshipping for the India marketplace: loading inventory into Amazon systems, processing customer orders, invoicing, etc. This allowed me to have a good view on how e-commerce works. These days I work on supporting online advertisement from inside by working on infrastructure and tooling that allows other engineers at Google to deliver solutions to show you relevant Ads. I know ads may sound like a bad thing, but the free internet exists thanks to ads. Ads pay for those transatlantic underwater internet cables and all the other things that power today’s internet.

Cultural Lens

All of the companies I worked for were very different culturally. First job was a very homogeneous environment, all of us were Ukrainians, fairly young and we worked for our American customers who on their side were also culturally similar among themselves. I think communication gaps existed due to time zone differences and English language skills on our side. Next job was maybe half Austrians and another half of East europeans. The product we worked on was our own so I think we cared about its success a lot. I am actually not sure if I fit into this environment culturally, but I thrived on the technical front and delivering results. At the same time this was when I made many new friends who remain friends until now and I even stayed at their home on my recent trip to Europe. The United Nations is definitely a culturally most unusual environment I had to work in, mainly because of the diversity of nationalities and backgrounds. Any day at the UN premises there were people from over 100 different countries, my team alone had people from all of the continents. Something that was a bit less diverse was age, as many of the people who work for the UN are accomplished individuals with some years behind their backs. This was the place of internalizing that not everybody has the same life views on it and it’s all ok. It was extremely fascinating to learn from my colleagues. I would say that on a macro level both Amazon and Google are culturally similar – we are ambitious technically savvy individuals striving to make an impact. Though on another level Amazon is a fast paced, high intensity, customer centric, and deadline driven company whereis Google is more mission driven, long-term oriented, with more emphasis on innovation.

Conclusion

I can probably wear many other lenses to look at my past experiences, such as, Impact, Scale, Learning, Personal Fulfillment, WLB, Collaboration, Communication, etc. But even with the 3 lenses above it is clear that the diversity of technologies, domains, and cultures pushed me to become a generalist software engineer. Arguably, this isn’t necessarily a good thing, being extremely deep into one technology and domain can land you a ludicrously high paying job. I saw people sticking around and climbing corporate ladder rapidly, something that I couldn’t do with all the switched I did, and at the same time I saw directors being laid off just because there is no need for their role any longer. In today’s economies of scale the winner takes all. If you are at the right place and time and win the game – it is all yours. On the other hand, if you are not that “winner”, adaptability gives you an advantage of switching when needed and grabbing at least some piece of the pie or, maybe, a chance to win another game next time. I don’t know what is right, the above was my journey and it continues. What are your thoughts on going broad vs deep in your software engineering career?


No comments


From Fish Tanks to OKRs: Measuring Impact

September 1, 2024 Opinion, Success No comments

“They reproduce – that’s how you know!”

Office Fish Tanks

During one of my business trips, I had an interesting encounter with a person responsible for maintenance of the fish tanks in the office. As we chatted about his work, he shared an insightful moment. His employer wanted to measure the results of his work and had once asked him, “How do we know you’re doing a good job?” He pointed to the fish tank and proudly said: “See those little fish? Fish in this tank reproduce in captivity and that’s how you know I’m doing a great job.”

In this post I would like to go over my experiences with measuring success and work results in the context of different jobs I had. I want to highlight some personal learnings from each of these experiences.

Experiences

In my first role I didn’t care about the business metrics or showing the results of my work, I was a grinding machine – I had a job and I had it done. Did my management care about the work I did? I bet they did, otherwise they wouldn’t put me through two promos. With my first experiences of leading a team I started looking at things like tasks completed, sprint burndowns, etc. In retrospect I was very focused on tracking “work completion” for myself and my team that I might have overlooked connecting this work to actual business impact. I was lucky someone did this for me and our work delivered results but if I was there now I would have spent more time understanding the business.

At my next job, my team owned multiple backend services where performance metrics were critical. “We need to handle 7TPS on a single node, how many nodes do we need to handle the entire traffic?” “This API is slow and has weird behavior of being very slow for some of the requests. Can we figure out the bottleneck and get P99 of requests <150ms?” I think this was the job when I truly understood how technical solutions connect to business success. I found the performance bottleneck and this allowed for a “bet from autocomplete” feature launch which improved user engagement by xx%. (Btw, the bottleneck was a forceful garbage collection as a way of reducing memory, instead I got rid of this memory optimization and instead asked for more memory on servers hosting the service).

Things were somewhat strange at my next job. At first I worked on an app for IAEA agents to use to record their activities during their visits to nuclear facilities around the world. I didn’t know exactly how they measured their success even though I was curious. But later I had a chance to work on a scientific/statistical tool that would take raw nuclear material accounting data and perform all kinds of analysis of the data, come up with reports and KPIs. In a way this was a measurement product by itself.

Amazon is famous for being data driven and measuring everything. When I worked there everything had to be backed by data. And this wasn’t just for engineers. Same standard applied throughout the entire company. My promo had to be backed by the list of all the projects I completed, impact they had, stats on code, etc, etc. Dates mattered a lot as well. Market is ruthless and requires things to be completed before the deadline (think Prime Day, Re:Invent).

Google is another example of an extremely data driven company and I have had a chance to work on things related to how Google makes decisions based on data. Effect of any smallest change is measured on a small percentage of traffic in order to make an informed decision. There is an experiment almost behind any code change. Google taught me to always add a section “Landed Impact” at the end of every design doc and then populate it post launching the document with specific realized impact. Google had so much impact on my life that I’m setting my personal goals using OKR methodology. If you want some related reading, consider reading the book “Measure what matters”.

Conclusion

Understanding the success of a project is about aligning technical results with business outcomes. For example, if you’re optimizing code for faster processing, link this improvement to reduced server costs or increase in revenue, and then measure all of these components. And from a career perspective, you always want to be able to say what you did and what impact it had. The impact has to be stated in numbers and should have some meaning behind it. People should care about your numbers. If no one cares about your numbers, think again if what you are doing is worth doing.


No comments


Consistency is Hard: connect periods of inspiration to achieve durable consistency

August 24, 2024 Opinion, Success No comments

This is original content by Andriy Buday.

Rock climbing a high mountain consists of connecting multiple single pitch climbs, thus called “multi-pitching”. This is me on Stawamus Chief mountain in Squamish, BC, Canada.

Inspiration doesn’t last

One of my observations both in myself and in others is that being consistent is hard, especially in starting something new or in high effort activities. Think about when you get inspired to go to the gym every other day only to discover it is hard to find time, or think about when people talk about yet another self-help book that promises success if you just follow some simple morning ritual and “x rules of success” only to realize following those rules is unrealistic, or think about someone who fell in love and puts effort into looking and behaving exemplary only to revert to the baseline after some time.

Arguably, it is in human nature to have waves of inspiration, attempting something, and abandoning it if it doesn’t pay off instantly or after it has paid off. Lack of time, competing priorities, procrastination, laziness, waiting for a better time, just not feeling like it.

In this post I would like to document for myself and to share some of the instances of things that worked for me and didn’t work for me. I will try to analyze my own behavior to see if any of this can be generalized and if there is a way to figure out a way to make things work.

Consistency fading away

Let’s start with some scenarios where I had success but then consistency faded away in a very long run:

  • Consistent blog post writing
    • I have 328 blog posts over here. The majority of posts are old ones from 2010-2013 with a monthly average of 5-10 posts.
    • Inspiration: blogging was popular around 2010 (no gen AI, no insta, not much of twitter) and it paid off in terms of people getting to know me, building connections. I would have not done well in my career without this blog.
    • Reason for less blogging? I no longer feel that the benefits justify effort, anyone can use Gen AI to create a blog post a lot better than this one diminishing my enthusiasm, no one really reads posts these days, internet is just over-saturated. And frankly “I got tired” as was put by one of my early role model, Scott Hanselman, after 20 years of blogging.
    • Conclusion: blogging helped me in the past; it can be useful even now to organize my thoughts in an environment outside of work, but does it pay off?
  • Reading books
    • I don’t know the number of books I read, but I had multiple annual goals of reading, say 24 books a year, 6 tech books, or 13 investment books, etc. and I succeeded in many of those annual goals or had partial success (hard to do a book every 2 weeks).
    • Inspiration: eagerness to apply knowledge to advance in life, bright eyes thinking that books have all the answers, falsely thinking that book authors are another breed.
    • So I don’t read books now? Well, I do, but a lot less. Over time to me many books became repetitive and boring, especially, if they are on the same topic (say, productivity) plus it becomes annoying to spend time listening to non-original content and authors citing all the same research over and over. Another issue I have is that I don’t have a proper mechanism for remembering things, so often it is wasted time. You read a book and a week later you have a hard time recalling what was there.
    • Conclusion: no doubt reading books is beneficial, everyone should do it, but is it so hard to continue to find inspiration, time, and satisfaction in reading them.

Cyclic consistency

Now let’s look at some of the cyclic scenarios when I returned to the old consistency for some periods of time:

  • Interview prep
    • Arguably one would say that everybody prepares for interviews when they change jobs, but I went through a few instances when I was preparing for half a year or so without any interviews lined up or even thoughts of changing jobs. Yeah, just doing some 5-10 leetcode every week for fun.
    • Motivation: sense of importance of advance preparation and always being ready, but also I just like coding a tiny bit of something and feeling completeness.
    • Conclusion: cyclic approach worked great for me in the past, but after multiple months it becomes less fun I start to question my sanity.
  • Waking up in the morning
    • I’m likely an evening person (if there is such a thing). I had many periods of being an early morning person. You know “new you” waking at a crazy morning, “deep work”, and all of that, but it doesn’t always work like that, very often I feel like a zombie and after multiple “zombie” periods I gave up on the morning thing. Ironically, I started this blog post 6:30AM and am almost done by 9AM.
    • Inspiration: there is like a barrage of books, articles, gurus, whatever telling that if you claim morning to yourself you will have done more till noon than most people in a week. Lol, I wish that was true.
    • This one is painful. I had so many failures after attempting this that. Something that also bothers me is that I was extremely productive at some of my previous jobs when I would come to the office like 11:30AM after barely waking at 10:30AM but then would work till very late.

Consistency on the raise

And now I want to examine two cases where I consistently improve consistency if that makes sense.

  • Physical exercises
    • One of the things I did not pay attention to in childhood and early adulthood was health and physical exercising. I was healthy for the most part, I didn’t care how I looked. In 2016 I started having periods of running, then I discovered rock climbing, and in 2021 I went nuts and worked out 365 days, including 148 rock climbing gym visits (my climbing stuff), 78 runs, 87 hours of weight training, and many other activities.
    • Inspiration: this came naturally, originally motivation was establishing challenges with friends, later I found it could be fun to beat personal records and socialize in a bouldering gym, a also noticed how it helped dealing with mental stress and my back pains are gone.
    • Conclusion: consistent payoff and little downside made this ever more consistent activity. I might not hit 366 days this year, but will be very close to it.
  • Financial goals
    • As a disclaimer, I work for FAANG company but I work in Canada and started fairly late, so I’m not one of those multi-million net worth guys advising on life. Instead, while making regular (still high) software engineer money in Europe, I’ve been very consistent and deliberate in management of money. I have a custom spreadsheet I update every month since 2012. I read multiple books, tried a bit of more active trading and switched to super-simple strategies. All-in-all just grinding a consistent approach to money. Not that I didn’t make mistakes, purely from financial perspective I should have moved to the US, I bought a townhouse in Vancouver at the worst time possible and some other mistakes.
    • Inspiration: I guess sense of security and thoughts about the future are a great driving factor, but a lot of actual inspiration came from reading popular financial books, like those about Warren Buffett.

Conclusion

It is great to get inspired and I recommend deliberately looking for sources of inspiration: read books, look for mentors, create plans for yourself. With that having said, inspiration lacks durability and this is where work to build and maintain habits starts, it is hard and often results in failure. In my experience, starting something and then failing is OK as long as you start the cycle again and again, pushing the time of a failure further and further away in any given cycle. It is critical to ensure that your cycles are the right ones (another topic), but eventually your cycles will connect into one uninterrupted wavy line that takes you to your goals. Don’t give up!


No comments


2020 Recap / 2021 Plan

January 1, 2021 Success, YearPlanReport 13 comments

My life in 2020 continued to be boring. With notable career changes (SDE3 promotion at Amazon; move to Google) the year was mostly uneventful. It was not an easy ride emotionally though externally for the most part I lived the life of a fisherman from the “Business and the Fisherman” parable.

I’ve been making new year resolutions and publishing them online since 2010 and learning the hard way what you might have guessed: I failed miserably so many times I should have already given up on them :) but no, this is yet another one. Oh… and wait… this is the first time I succeeded in my new year’s resolution.

If you are skeptical of the new year resolutions I accept your point of view as resolutions don’t generally work (90% of people fail) and I admire you if you manage to succeed in your aspirations despite not having a plan. Someone said that you have to be inspired or desperate in life. If you are neither at the moment, creating a plan and following through might be the best option until your enlightenment.

2020 Recap

TL;DR: promoted to SDE3 at Amazon; moved to Google; ran, skied, climbed much more than planned; still on a gradual trajectory of healthy and early retirement; didn’t read or learn as much as I wanted; traveled locally.

My last year’s resolution was to complete 12 of all 24 of the items on the list I had. Succeeded in 14 of them and if I add up percentages completion goes all the way to 94%. Here is the list:

  1. [Edit 29Jan2020] Spend more quality time with kids in 2020 than in 2019 as measured by wife’s opinion
    100%
    1. Although I usually don’t put private and family goals in my plan I had to include this one for my fellow Austrian friend ;). This one is subjective, but accordingly to my wife I can count this one as completed. Coronavirus made me stay at home so a side effect of WFH I’m spending much more time with my kids. Luckily they usually stay away from participating in my work meetings.
  2. Travel a distant country (candidate New Zealand, other places count) Changed thsi to be a long 2+ weeks roadtrip.
    100%
    1. We had an amazing 2 week camping road-trip to the north of British Columbia crossing into Yukon and coming back via Alberta. We managed to see the Northern Lights, wild bizons, 17 bears in one day, glacies, waterfalls and other things of beauty. We even went hunting for dinosaur fossils. More details in my wife’s blog post over here.
  3. Write 24 blog posts, of which at least 12 are of a technical content
    50%
    1. I wrote 13 blog posts. Only 5 out of these posts are of technical content. Counting this item as half completed.
  4. Listen to/read 24 books
    75%
    1. Read 16 books:
      • Why We Sleep
      • Algorithms for Interviews
      • Competitive Programming Guide
      • Freakonomics
      • Atomic Habits (once again)
      • Switch- How to change things when change is hard
      • The Phoenix Project
      • Feeling Good-The New Mood Therapy
      • Limitless-Upgrade your brain
      • Software Engineering At Google
      • The Alchemist: A Fable About Following Your Dream
      • Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs
      • The Psychology of Money: Timeless Lessons on Wealth, Greed, and Happiness
      • Shoe Dog: A Memoir by the Creator of Nike
      • Super Human
      • Clean Architecture
    2. 5 books are still in progress and I’m likely to abandon reading some of them:
      • Finite and Infinite Games
      • Deep Learning with Python
      • Effective C++
      • The Go Programming Language
      • ***
  5. Run 52 times and take part in a race (candidate VanSunRun on 19April)
    211%
    1. I ran 110 times out of those planned 52. Does it mean 211% completion then?
    2. New PRs: Half 1:58:07, 10K 50:50, 1K 3:47
    3. Total run distance: 792K
  6. Ski 12 days (night skiing after work counts)
    142%
    1. Went skiing 17 times. Could tell that I improved my skills a bit.
  7. Improve swimming by going 10 times to swimming pool (consider a course)
    0%
    1. This one is a complete failure. I postponed signing up for classes and then COVID hit and then I didn’t bother. Not counting lake swimming here as that is not what I meant when creating this plan.
  8. Learn to walk on hands
    25%
    1. Although I failed to learn walking on hands and even handstands I made good progress towards it.
    2. Can do controlled headstands (see the picture above).
  9. Work out 104 hours
    66%
    1. I’ve done 69 hours or workouts. These workouts are mostly weight lifting and calisthenics including occasional stretching sessions. This does not include running or rock climbing.
  10. Gain another 7kg of pure muscles (70kg, BMI of 22, fat 11-15%)
    28%
    1. Max measured weight was 65.8, but more realistically I weight 65. This once again proved that it is difficult for me to gain weight.
    2. Although I am confident these +2KG are musles as I can effectively see musles I have never seen on my body :)
  11. Drive a racing car
    100%
    1. I drove race adapted 8 cylinder mustang on a racing track in Mission. link
  12. Go indoor climbing 10+ times, learn to do 5.10+ YDS and V4+ Hueco (USA)
    500%
    1. This is similar to running in a way that I overachieved this goal. Unfortunately I don’t even know how many times I went rock climbing but rough approximation brings me to ~50 times. In fact right now I’m a member to two different climbing gym networks with access to 6 locations.
    2. Completed 5.11 and one V5.
  13. Some adrenaline rush thingy (skydive, bungee, paraglide, etc)
    0%
    1. This is one of those things I didn’t get to. I didn’t really want to bungee jump again or skydive as I’ve done those in the past and couldn’t find anything that would suit. Probably another jump would have done :(
  14. Learn a programming language (tiny project counts ~3 blog posts)
    0%
    1. Probably need to count this as a failure. At my current job I’ve already written code in Python, Go, C++ – all are languages I’m not comfortable with, but I don’t think I can say I’ve “learned” any of them.
  15. (re)-introduce myself to Machine Learning (basics + TensorFlow)
    0%
    1. I am not doing anything related to ML and therefore it is hard to push myself to learn anything in this area. Failure.
  16. Sleep 8-9 hours, but learn to get up with damn alarm instantly (15 sec). This one might be the most challenging as this is a horrible habit of mine (hitting “snooze” for 2 hours)
    60%
    1. Definitely succeeded in getting enough sleep but still failing miserably in waking right after the alarm.
  17. Limit read-only social media activities to 2 hours a week (scrolling Facebook/Twitter/Instagram/LinkedIn, excl. posting and messaging people) as to produce instead of consuming
    80%
    1. Although I almost never open Facebook or Twitter, my instagram is still a lot of timewaste. In any case I probably should count this a success as I managed to controll how much time I spend here. For instance, those apps are blocked during my working hours and outside of working ours time is limited by digital wellbeing by Google.
  18. Meaningful work related change
    200%
    1. Got promoted at Amazon to SDE3
    2. Started working for Google
  19. Solve 100 leet code problems
    67%
    1. Solved 67% of problems. Here is a link to my profile.
  20. Visit a tech conference and/or some tech meetup(s) (2+ counts)
    50%
    1. Attended one internal virtual Google conference.
  21. Quit regular money wasters (going out for lunch, 5$ coffee, etc, max 1 a week or 52 in a year)
    100%
    1. Due to COVID I’m not going out for lunches or coffees. I do not smoke or drink alcohol. On average I probably had 1.0-1.5 coffee outside per week. I think my new regular money wasters are useless things bought at Amazon.
  22. Reduce coffee (max 1 per day); best if I could go cold turkey
    100%
    1. March started drinking coffee every day at home again (damn due to COVID-19). In August maybe had 1-2 coffees. 1 in September. Few in October. Some in November. To generalize I would say I definitely reduced my coffee consumption, though I didn’t manage to go cold turkey.
  23. Increase focus at work (track screen time and distractions)
    100%
    1. I’ve done few things to achieve this: 1) limited my social apps on phone; 2) separated physically work laptop and access from private laptop and access; 3) organized my home office. More here.
  24. Invest 20% more money in 2020 than in 2019
    100%
    1. Portion of my RSU started vested in Jan putting me ahead for that month; Feb just regular contributions; March invested lump sum of 10% of my base salary into what was a crazy bear market (call me crazy) maybe recession and it turned out to be great timing. Didn’t invest in April other then regular retirement contributions. As of September maxed out my RRSP and added some money to my investments. Plus I got my next portion of Amazon shares which I didn’t sell. Not selling my GOOG stock.

2021 Plan

TL;DR: more quality time with family; more sport; more health; more of professional focus and learning; some travel; less reading; more passive money.

So what’s on the cards for the year 2021? I already have a good life so it is reasonable to maintain the things I learned to do, slowly improve the things I would like to. The complete list is below:

Updated: 26-Dec-2021

  1. Read all 7 Harry Potter books to my 7y old daughter. That’s 199 chapters making it roughly 4 chapters (65p) per week.
    1. DONE
  2. Teach my daughter basics of programming. Snake game seems to be a good candidate for a year’s project goal.
    1. We had two sessions with my daugher where we created a simple “food” for the snake and are drawing grid.
  3. Teach my 4y old son basics of skiing. Let’s see how many times I can take him out skiing.
    1. Mar: Took him 3 times in total. He alreay learned to ski “pizza”-style. I guess I’m better teacher this time. I’m using ski-wedges (rubber string to keep front of the skies together) and I’m not making the mistake of holding him so that he learns to keep the balance right from the beginning. I should probably classify this as failure, even there was some progress?
  4. Travel outside of Canada and have a boring beach vacation. Fingers crossed.
    1. Not happened.
  5. Have two camping road-trips (long weekends count, but a week+ would be awesome).
    1. DONE. One weekend long and another almost a week long, though with hotels in between.
  6. Set new personal running records (considerations 1K, 1Mile, 5K, 10K and Half-Marathon). Consider running a Marathon (that’s not a healthy distance imo, but people keep asking me if I ran it and I cannot say yes… ogh…).
    1. 79 runs. Set new 5K – 22:43, 10K – 49:49 PR. I will consider this done.
  7. Improve VO2Max to 60 ml/(kg·min) from the current 54. This means I will have to specifically and properly train. Just running 100 times won’t cut it. In combination with my other goals of gaining muscle weight this goal becomes even more difficult.
    1. Max achieved 56. (It seem to be unrealistic to achieve 60 or it would take a lot more dedication for me).
  8. Try out at least one other sport activity. Considerations are: mountain biking, martial arts, archery, whatever, anything counts as long as I try it out.
    1. DONE. Tried real rock climbing, kickboxing, and pole-thingy, bought a bike and biked super-easy mountain trails.
  9. Learn free handstands and snap some cool pics for the next year’s post.
    1. Failed. I made some progress – few low control seconds.
  10. Strength train for 100 hours inclining towards climbing specifics (finger strength; pull-ups; core). Set new personal pullup (19+) and pushup (102+) records.
    1. Way over 100 hours. I calculated > 83hours of separate strength training time, plus there would be maybe another 50 or more of those coming from my climbing activies. New pull-ups PR 20. Didn’t do the pushups.
  11. Gain 5kg of pure muscles (70kg, BMI of 22, fat 10-13%) and post a shirtless comparing pic.
    1. Max achieved was 68. I’m 10.3% body fat. I will delay posting a comparison pic to the next year.
  12. See how far I can get in climbing. Target sending one V8 (7B Font, HEX-5/6) bouldering problem. If this doesn’t say you anything, it is a super-ambitious goal as I can currently do V3s, some V4s. Normally V8 requires years of training and lots of strength. Likely to fail. Shoot for the starts.
    1. DONE (kind-off): rock-climbed 148 times. Sent a couple of HEX-5 (V6-V8, probably these were 7A and not 7B).
  13. Continue sleeping full 8.5 hours.
    1. DONE (based on garmin data I kept sleeping 8.5+ hours for entire year with few exceptions).
  14. Straighten my teeth to a perfect arch :)
    1. DONE. My teeth are straight now. I’m still wearing last sets of aligners and then will need to wear retainers for some time, but the work is done!
  15. Further reduce coffee. Cold turkey is a real option this year.
    1. Had 2 months with 0 coffee intake (Jan, Feb), and many months with few coffees. By the end of the year I’m basically back to daily sonsumption. This means I’m a coffee addict.
  16. Build a strong disciplined morning routine, that includes among other things waking within 5 minutes of alarm going off, drinking full glass of water, short meditation and a full breakfast.
    1. No real discipline, though I do have some kind of routine. I stopped having an alarm. Yeap. I do not have any alarms set and this makes me feel great.
  17. Write 10 blog posts, of which at least 5 are of a technical content.
    1. 1. That’s a failure.
  18. Listen to/read 10 books, of which at least 5 are technical/career ones. (Harry Potter ones don’t count).
    1. Books done: “Time Smart” “Effective C++” “Effective Modern C++” (partially) “Change by Design” “The Manager’s Path” “The Body Keeps the Score” “Fifty Inventions That Shaped The Modern Economy” “Sapiens” “The Art of Thinking Clearly” “The great mental models: Vol 2” “The Ride of a Lifetime” “The Pragmatic Programmer” (relisten) “Finding Flow”
  19. Solve 100 leet code problems (min 10 hard; min 50 medium). Got to keep myself in a good shape, right?
    1. Solved 44 problems. Not much. (total lifetime solved 565)
  20. Deliberately work on loosing my eastern European accent for at least 10 hours. A course with a real teacher would be great.
    1. Failed.
  21. Create a monetizable content and earn 1$. This can be a course on programming, an e-book, a problem solving tutorial, anything really.
    1. Failed.
  22. Become fully proficient in one more programming laguage.
    1. DONE: Gained C/C++ readability badge at work. It kind of means Google now trusts me to write C++ code :) I also finally fill more-or-less comfortable in this language.
  23. Learn Linux. I use Linux every day at work, but I’m limited to basic things and have never deliberately tried to understand this operating system or become proficient in it.
    1. Failed. Linux is now my main non-work operating system. Though still not what I meant.
  24. Learn to complete all work within strickly 8 working hours. Less of stretching of time, less of inefficiencies, less of distruction, more discipline. Efficiency. Time is our most precious resource.
    1. Mar: March was probably one of the most efficient months for me at Google so far. Feb: I’m tracking my time super-precisely and can tell there is close to 0 of time-wasters (news, social, etc) during work hours. Oct: This goes “oke-ish”. Calling this a success even I don’t feel I work enough. My employer seems to be happy, though.
  25. Better track money. I’ve been tracking money since my first paychecks, but in the year 2020 I lost my routines so need to reestablish them.
    1. Mar: on track. Feb: Back on track. Rewamped my “balance and net worth” sheets. Oct: Not sharing too much but I have a hold on money tracking and investing. It is just maybe I can make more if, say, I worked in US or something.
  26. Make or lose 1000$ in a risky investment. Failures are learning experiences.
    1. DONE: I have some crypto ETFs that jumped like hell and I didn’t budge. Jumps were X*1000 so I’m covered for this goal. I have some confidence in risk tollerance now. And no, I do not believe in all this crypto hype.
  27. Invest 20% more money in 2021 than in 2020.
    1. DONE.
  28. Create a painting and/or a drawing. I already know some basics. Just want to do something to really like.
    1. Failed. I just didn’t feel like doing this for entire year. There is still tiny chance before 1 Jan I do this.

Same as last year, I will consider succeeding if I complete at least half of the items on this list.

To make sure I succeed this year again I will be tracking my progress each month in a spreadsheet (already prepared it) and posting occasional comments below this post, much like I did last year. I’m also tracking a couple personal goals I’m not too comfortable posting publicly.

Happy New Year!

Dear reader, what’s your plan for the year 2021? Do you have one? Share your plan and keep on! If any of you wants to run occasional challenges with me, just ping me. I’ve ran them in the past with few folks and though we failed to stick the outcome was noticeable progress for participants.

Happy New Year!


13 comments


Goodbye Amazon; Hey Google

August 24, 2020 Career, 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.

Aligned few T-shirts for my first working week

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 :) ).


4 comments


Becoming Senior Software Engineer and Career Path

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.

Career Path so Far

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.

Do titles matter?

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.

So how to get to the next level?

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:

  • Do your job and do it well. Really well. Master the tools. Balance delivery and long-term perspective.
  • Never ever stop learning. Improve yourself in all areas. Soft and hard skills.
  • Work on projects that have impact and could grow to something big. If you don’t think you are on such a project change the project or change the project.
  • Find a mentor and work with your manager and others to get you where you want to be.
  • Look at what next level implies and do those things. Take responsibilities. Now.
  • Make your work visible and document what you’ve done.
  • Stay healthy. Sleep well.

How much in a promotion is luck?

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.

Conclusion?

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.


14 comments


Approaching a software engineering problem

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!

Me ice climbing

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.

Worst mistake

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.

Understanding the problem

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.

Strategizing

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.

Execution

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.

Erratic

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.

Systematic

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.

Some other bullet points

  1. Reiterating is fine. Although systematic approach wants you to think about each line of code, you might be overwhelmed to do so at once for larger project. In this case coming up with a “skeleton” solution that does something and then building on top of it (maybe changing few “bones” here and there) is totally fine. This goes along with agile methodology as well. Just don’t scarify quality with “oh, this will be one in the next iteration” and eventually never being done.
  2. Do not just copy-paste. As the joke goes: “Dev1: Damn, copied this from StackOverflow and it still doesn’t work. Dev2: Did you copy from the question or the answer?” Although copy-pasting from other parts of the project or SO, for that matter, is totally fine, what’s not fine is not understanding what you are coping or not questioning the quality of the piece of code you are copying. If the code was written by more senior developer or if most of the project is written “this was” this is not a valid justification to not try to see if anything about it could be improved. As a simple example, a developer before you might have took a shortcut by defining style right in html instead of moving it to a css class in separate file.
  3. “Don’t work hard – work smart” – although true, stinks. Most often I heard this from people who were lazier than others. There might be two types of laziness – a) the one that makes you procrastinate, and b) the one that makes you ingenious in problem solving. I’m fine with b) as long as it doesn’t come at cost of quality of your solution in terms of maintainability. Think of someone doing a+=b; b=a-b; a-=b; to swap two integers because they didn’t want an extra variable and now extrapolate this on on system design of your software where no-one could understand what the hell is going on. Long story short, you need to work hard and there is no way around it.
  4. Pause to learn and deliberately practice. At times you might come around something you haven’t worked with before. Stop! Take a moment to understand what it is. Reading one of two pages of documentation or going through “hello world” tutorial might save you a day or few. As an example, you might need to integrate a library into your project and it may look overwhelming as the project is huge. At this point it is best to implement simplest possible project with the library to understand how it works before spending days integrating it and then not understanding why it isn’t working.
  5. Seek help but do your due diligence. It is totally ok to ask others questions – this is the way to learn. At the same time it might not be appreciated to ask something that can be found online or in documentation with a simple query. Also learn to ask how to ask help http://xyproblem.info/
  6. Time bound. Never get stuck on something for too long. Put some boundaries for specific tasks. If x isn’t working, look at your strategy and unstuck yourself. You might need to escalate this with your manager.
  7. Clearly communicate. Very likely you are working in a team and have a manager. Work on improving your communication so that you can convey your status and whether you are blocked and need help. I would advice against obfuscating your status with needless information – just be honest if you are having difficulties.
  8. Retrospect and analyze if you can improve something for the future. Don’t just take everything at its “status quo”. Say, if environment setup for your project is difficult, and always takes time for engineers go ahead and improve it.
  9. Reasonably document your work. Chances are that someone will have to solve a similar problem or that you will need to explain your work at later stages. Documentation is just a tool to help you out in these situations.
  10. Add your bullet-points/thoughts/disagreements in comments!

Conclusion

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.


No comments


Does Your Software Developer’s CV look Professional?

October 11, 2015 Career, Success 2 comments

imageA 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.

Being Specific about Contributions and Achievements

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.

Before

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

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.

English

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”.

Formatting

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.

Before

Previous version was grey 4 pages wall of heavy text with odd formatting.

My old CV formatting

After

The new version is just two pages. It is nicely formatted and is error free. It is available here.

Andriy Buday's CV screenshot

Review

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.

Photo

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.

Next Steps

Recommendation Letters

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.

Cover Letter

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?

Hiring a Professional Resume Writer

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.

Conclusion

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.

Update April 2016

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.


2 comments


Book Review: Soft Skills: The software developer’s life manual

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.

My takeaways

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.

Conclusion

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.


No comments