Success

Throw yourself out of comfort zone

November 8, 2010 Opinion, Success 2 comments

Some time ago I twitted “To be successful throw yourself out of comfort zone”. I had this idea long time ago, but did not write about it. I see that I have to post something about this, since I’m becoming lazy and I do not like this at all.

Fascinating Uncle Bob

Yesterday I listened Uncle Bob’s thoughts on “Pragmatic Podcast”. (Who doesn’t know Uncle Bob is Robert Martin). That was “fascinating”, he is “fascinating” person and I was inspired by this episode. He has that much energy after being in computer field for about 40 years he is still interesting in everything new. He talks about new and old programming languages he understands software development deeply. What inspired me the most is his attitude to all of this and his bright energetic view on programming. He reads science fiction, rides his bicycle every day and has extended family. This all helps him be in good shape. I would recommend to listen to this podcast – just download and listen when you have time.

Yesterday I complained to my girlfriend about my situation and not satisfaction of what I’m doing now. She stated that I do not have enough activities outside of my work. Yes, but my blog is my 3-rd place where I’m trying to find myself. But I also did not post lot in recent time. This means that something is wrong. So here in this post I would like to talk a bit about this “something wrong”.

Finishing tasks in latest moment

I guess this is not a big secret that many people tend to do everything in the last moment. Working in the last moment is hard, but very productive. Many of us extremely enjoy when they have finished something well and when in the last moment you triumph. I had many of such moments and they made me happy.

Of course there are techniques called “time management” where ideologists try to address this issue. At least in one of the techniques it is mentioned about separating all the tasks you have to do into 4 sets. The most important and best known is one where you have important but not immediate tasks. Books on  management recommend to work in this set continuously time to time and soon you will have all tasks that are important but not immediate completed before it is becoming hot. What can I say about this idea? It is indeed good and awesome, but it doesn’t work for me at all, and probably it doesn’t work for many of us.

In recent time I had some posts talking about my future plans, like reading 24 book till end of the year, passing couple of ms exams, becoming senior developer, etc. Yeah, I did huge portion of these, but there is only two months left till the end of year and I still wait for the latest moment when I can pass yet another milestone. For example I’m reading training kit for wcf exam and it goes so slowly that you cannot even imagine. But when I had exam on winforms and I knew that only 1 month is left to it and reading was much more rapid. Same shall be done to wcf exam, I think. Just schedule and this will force me to read and train. Today I gonna schedule my exam for the end of this month.

We have to make us busy

Many of us are very busy at work, we are even often working from home. This is tremendously helpful in moving forward in your career and if this is accordingly to your plan, you are fine. But I guess you have too many other plans that you would love to accomplish. Where do you have them located? In list with lowest priorities? Not written somewhere at all? Anyway unless you have some deadline for task X you are not really hurrying to accomplish it. If you have also tasks Y and Z and you see them “nice to have” you probably will not do them since X will be done in latest moment. What about Y and Z then?

So what do I propose to do? Have external visibility of your progress. If you are person with high responsibility you will do your best to accomplish all of your tasks because you are sure that others keep an eye on you. In my case I can schedule exam and write blog post on this. I will know that you readers are keeping eye on my. Even if this is not so important for you, it is very important for me.

Doing easy or doing complex tasks

When I started learning my university I had extremely strict teacher. He had banished out of university many students (1/3 of my academic group in 2 years); receiving high rates was incredibly hard as well. This challenge forced everyone to intensive learning. Never in my life I had that painful learning. With other guys we spent nights and days on learning, we slept about 4-6 hours for couple of weeks before exams. (I guess there are people reading blog that have finished my university as well: I’m talking Fedyk). If software developers would sharpen their skills and other engineers would work in their field that intensive, we would have artificial intelligence already up and running on the streets :).

So if you feel that you are currently in lucky situation, because you do not have lot of work and you can work relaxed, something is wrong with your attitude to work and your busyness. If indeed that is the case, use that time for your personal development for career and etc. But first please check why you do not have that much work, maybe you are lazy ass.

I also see this to be the way to teach new junior developers. I guess it is great to give them challenging work. It is not always easy to find such work, but that is the greatest you can do for them. In recent time I’ve got new apprentice, if you will. I see it would be hard for him to fit our team and start working effectively in manner of one month term. I have to try different approaches to quickly coach him – kinda throwing him out of comfort zone and then managing stress as one book recommended.


2 comments


Lviv .NET UG, 7-th meeting took place

November 1, 2010 DDD, Opinion, PublicTalks, Success No comments

 

I had chance to speak at yet another Lviv .NET UG meeting. This time I spoke about Domain-Driven Design. It looks like people got interested in this topic.

You can read my feedback post about this event at Lviv .NET UG site by the link “Зустріч #7. Враження, враження, враження…” (it is in Ukrainian).

I will write almost the same here and add some own opinions, so it would be interested not only for those who doesn’t know Ukrainian, but for those who would like to hear my personal opinions.

How it was

It was really great that we’ve got more than 80 people registered for this event. And if company where we hosted this event would provide us with bigger meeting room, we would probably have over 50 near 60 people attending. So as you understand because there was lack of physical room some people just turned around and went home. Crap! I would love to have them all listening to me.

Getting Scrum

Event has two speakers, me and Igor Racyborynsky. Ihor talked about “Getting Scrum”. We all played scrum and formed following product backlog:

PA295635[1] 

It was really interesting, at least not as usual presentation. But he has not covered all about the scrum and at least key concepts. Although it went extremely good.

Domain-Driven Design

I talked about Domain-Driven Design for the 5th time. Yeah! I even don’t need any time to get prepared.

PA295689[1] 

It was late in the evening, so many people got tired, especially me talking over 1 hour bombarding with new and new terms and mentioning lot of information about known concepts and patterns.

This time I’ve got many different cool presents:

  1. Yet another VS2010 bag (exactly as one I already have)
  2. IE9 T-Shirt
  3. Pen and notebook

Do you know what I like about delivering presentation to huge audience? – I always get couple of people that are excited about my speech and interested in my. They then come and talk with me as I’m an expert. I feet bit scary and nervous to show that I’m not that cool :)

Beer

As usual we have small beer party in the end. This time it probably wasn’t that small. You decide:

PA295665[1]

Speaking at JUG about DDD

Today I was invited to Java User Group meeting to talk about DDD again. Thank you guys.


No comments


Interview. Job of dream. Cheese, money and happiness?

October 17, 2010 Career, Opinion, Success No comments

July 25, I wrote blog post called “Interview” and I mentioned that maybe in year term will post yet another blog post with the same title. Now I’m writing post with almost same title. Is this due to the fact that I had interview again? –Yes and no. Actually I had two interviews since that time and did not post about them, and I will have two more interviews next week.
Real reason for this post is to extend the “Remember that you are also interviewing” section. I want to hear what you guys think about what we should ask on Interview to ensure that we get job of our dreams.

Job and happiness

I’ve been trying to find out for my-self what is the job of happiness. What does bring satisfaction from what we do.
I did not read huge range of articles and other resources on this theme, only couple of them. But besides of them I have my own opinion on this topic and will try to express it.
For example, this article states that connection between good job and happiness is overrated (?). As I understand from that article more evident role in job satisfaction is your own optimistic mood, which can be developed not only at your work but at home with you family. I agree with this, I now see that when I have better relations with my girlfriend I do have better desire to work. Also I disagree with this, because I think that everyday activities play very evident role in my satisfaction of my job. Currently everything is more or less good, but I do not get enough “I love this” work.

Cheese

But on other hand are you sure that your cheese is not getting old? And are you afraid to move to other position with new cheese? You have to read “Who moved my cheese?” This book brings into light some very important aspects of human fear to change things around even if their cheese is getting old or even if someone has moved it away. And I understand why those people are afraid. Guys like, Bodo Schaefer recommend to have something (ok, MONEY!) to ensure that you are safe. So unless you bought car or house in credit you are safe and can easily move to another piece of cheese. You know, I agree with them. I cannot buy house here in Lviv for money that I have, maybe some small car, but money that I have with bank interest and including my outgo is enough to live maybe 1-2 years without working at all. That is why I’m not afraid at all. And I would recommend you the same if you are still young – do not buy anything that is expensive and there should be NOWAY for credits!

Money table

Use following money table to find out if you have enough to feel free moving for better cheese; I have it automatically calculated in Excel spreadsheet:
You can put as Deposit MDeposit (e.g. 10000) -be honest
You need per day PerDay (e.g. 100) PerMonth=PerDay*30 -calculated
Per day to be happy PerDayHappy (e.g. 500) PayMonthHappy=PerDayHappy*30 -up to you
Ave. bank interest InterestRate (e.g. 0.12) MInterest=YouHave*InterestRate/12 -depends on banks
You are safe: YouAreSafe=PerMonth*6 YouHave > YouAreSafe ? (“you are more or less in good situation”) : (“Hey man, do you think about the future?”) -if you do not have enough to live half a year, something is definitely bad with your budget
You can live without need to work YouHaveEnough=PerMonth*12/InterestRate YouHave > YouHaveEnough ? (“you can stop working without impact on your life”) : (“it is too hard to reach this since needs often increase ”) months you have to wait to reach this goal:(YouHaveEnough-YouHave)/(MDeposit+MInterest)
You are free, or even rich YouHappy=PerMonthHappy*12/InterestRate YouHave > YouHappy ? (“hey! you are rich”):(“almost none reach this, since they start spending too much when they have enough”) months you have to wait to reach this goal:
(YouHappy-YouHave)/(MDeposit+MInterest)

What do I recommend to help you find out if some job is for you?

Create description of your dream’s job in couple of sentences. Then try to build questions that will help you correlate their offers to your dream.

Job of my dream

I work with newest technologies, designing and constructing architecture/technical approaches with professional team. In my team I have world level professional(s) from whom I can learn something new and really valuable, at the same time I see them and/or other team members to learn from me. All team members are open-minded passionate developers/QA/SM/PO. I’m more or less independent in my work organizing; customer trusts me, so I can do the best for them without their direct interventions. PO, representing customer, really knows requirements and goals of project and doesn’t push team to figure requirements for them. My employer is not afraid to invest money into refactoring/research and into team needs. They express respect to their employees and listen to them. They keep an eye on the project’s future and employees satisfaction, they do the best to keep employees motivated. Employees at the same time are really dedicated to help their customer/employer reach company’s goals.

Questions:

  1. What do you like about working for the X company? Why should I like it as well?
  2. What is the overall goal of the project I will be working on?
  3. Is project new? What are terms and team size?
  4. What are my duties for this project? In percents?
  5. What are the most challenging aspects of this position?
  6. What technologies will be used?
  7. Do you use recent approaches in software development?
  8. How to you measure code quality? Unit Testing? Code Coverage? BDD?
  9. Would it be possible to see piece of already written code?
  10. What methodologies are used for this project?
  11. With whom will I be working most closely? What is their professional level?
  12. Who is my supervisor? To whom would I report?
  13. Will I supervise someone?
  14. Are you interested in my professional development and how will this appear?
  15. Do you invest in refactoring/research?
  16. Do you accept initiative from your employees?
  17. Will I have many meetings per day?
  18. Is there anything else that prevents you from hiring me?

Also I was looking for some other good lists of questions. One is more general and other is awesome list of questions from stackoverflow.

Awesome questions list from stackoverflow

Here below in dark-blue is complete list of questions composed by Rob Wells on stackoverflow. This is copy-paste (!). All rights are reserved for stackoverflow and I do not pretend to be author of any part of it. Please follow this link to see original question.

Questions for development:

  1. What software development methodology do you use, e.g. Waterfall, Agile, Scrum, XP?
  2. Is training provided for the methodology being used?
  3. What parts of the software development life cycle do developers do?
  4. What is the breakdown of a developer’s day, e.g. how much time for support or troubleshooting, how much time for coding, analysing requirements, etc.?
  5. How long does your design, code and test cycle last? Less than thirty seconds, less than five minutes, less than ten minutes, etc.
  6. Do you encourage refactoring if sufficient unit tests exist?
  7. What test bench do you use?
  8. Do you have coding standards?
  9. Are the standards revisited or are they just left, as written, i.e. “carved in stone”, in 2001?
  10. Do you allow time for peer reviews of code?
  11. Can you give me an example of a code review that is done here. Are there different levels of a review, e.g. new system is handled in a day long explanation compared to a quick bug fix that is needed ASAP.
  12. Does the project use continuous integration?
  13. (If they use continuous integration) does your software build and test cleanly right now? What’s the current successful build rate?
  14. Does the project have regular regression testing?
  15. Are metrics kept for the code base? SLOC? Numbers of unit tests? Numbers of regression tests?
  16. How are conflicts resolved between testers and developers? I ask this because there have been times in the past where I see finger pointing of “Well, I interpreted it this way and he interpreted that,” enough to make me ask how is this handled.
  17. How are requests for large changes to be done quickly handled? For example, someone requests a web application that would normally take 2 weeks be done in 2 days for a prospective client that could be a big account.
  18. Do you use a software repository? (If the answer is no, walk out).
  19. What is the budget for tools?
  20. Do you offer your developers any sort of allowance to order technical books?

Questions about estimating:

  1. Do you have a standard template for estimating development effort for new work to make sure nothing is overlooked?
  2. A process for obtaining such an estimate?
  3. What percentage of contingency do you build in to your estimates?
  4. Do you allow time to revisit

Questions regarding the team:

  1. What has the team achieved so far?
  2. What has the team learnt?
  3. What aspects of the team would you like to change to improve the team?
  4. What’s the team spirit like?
  5. Where do team members generally have lunch?
  6. Does the team go out together every now and then?
  7. Do you encourage team members to give presentations to improve their abilities?
  8. Do you do the same with writing?
  9. Can I please speak informally to some of the people in the team I’ll be joining? (Useful to get beyond the management BS and get a feel for the real deal.)

Questions regarding personnel type policies:

  1. Does the company have a training policy?
  2. What were the latest courses that the company sent people on?
  3. Does the company have a mentoring policy?
  4. What kind of feedback mechanism is there for determining employee performance, e.g. how often is my work evaluated and suggestions given on where to improve?
  5. Is there a dress code? Do employees work a fixed set of hours?
  6. Is there any on-call time as part of the job?
  7. Do you encourage employees to set goals and provide incentives to meet those goals?
  8. Is self-improvement a value common to this organization?
  9. What’s your company’s Internet policy?
  10. What sites do you block? (I’ve worked at places where you can’t access various good technical sites.)
  11. Can I work irregular hours if I need to? For examle, at night, all the week’s hours in 2 days?
  12. Can I work from home?
  13. Do you have any policies against employees listening music while they work?
  14. How much work do you expect developers do outside of the normal business day?

Questions about management:
For the manager:

  1. What is your style of managing?
  2. How s/he motivates people
  3. How problems are handled (I leave that open-ended to see what sort of problem they assume–relating to those under them or those over them or issues unrelated to people at all, and then ask about whichever they didn’t cover).
  4. What the company does to help develop their managment skills
  5. What motivates them
  6. How much they work (typical hours/schedule)
  7. What accomplishment they are most proud of (I don’t specify work-related, and if they mention something besides that I ask about work as well)
  8. How they develop team cohesiveness and what they’ve been able to accomplish in that area
  9. What they see as the next big step for the team, for the company, and in dealing with projects or whatever the main mission of the group is

Then I ask them to answer the same kinds of questions for the company as a whole, explaining that I consider there’s such a thing as a company “personality” that usually emanates from the top. I ask how that has changed over the years (if they’ve been there very long).
Further questions on management:

  1. What’s your staff turnover rate?
  2. What’s the worst project you’ve ever been on here?
  3. How long does the typical hiree at my level stay with the company?
  4. How are projects categorized, e.g. changes compared to a small project compared to a big project?
  5. What kind of management is there within the company, e.g. is the development manager also the project manager or are these separate people usually?

Questions on the work environment:

  1. Can I please see my workplace?
  2. And, more specifically, can I see the desk where I will be working please?
  3. What’s the company’s policy to downloading software? (I’ve worked at places where you can download zip so it takes a week to get the help team to download the hex editor you needed yesterday.)
  4. How locked down are the PC’s? (I’ve worked at companies where the PC’s are so locked down it’s almost impossible to do any work e.g. no access to command prompt.)
  5. Do developers have admin rights on their PC’s? (Rule of thumb – The more locked down the PC, the worse the company. The real development sites I’ve worked at give all developers admin rights. They trust and empower them with corresponding rises in productivity.)
  6. What software is loaded by default on a standard developer PC? For example, can I use Eclipse or am I condemned to Notepad hell).
  7. Can I choose my own development tools?
  8. What sort of equipment do you provide to your developers? For example, are all developers given a laptop to work with, do they have access to two monitors, are they allowed to order other equipment (e.g. ergonomic keyboard)?

Miscellaneous questions:

  1. Why did the guy I’m replacing leave?
  2. How can I help you?
  3. What are your biggest needs right now?
  4. What kind of things would you want someone in this position to do?
  5. If you choose me, are there things I could read about your problem domain that would help me be effective on day one?
  6. Why the interviewer(s) work(s) there (or likes working there, or continutes to work there, etc). Their responses usually give me a good feel for the company.

Hope you liked this blog post. Looking forward to hear from you guys!


No comments


I gave up with Design Patterns in Java – I start my book

September 26, 2010 C#, Design Patterns, Java, Opinion, Personal, Success 12 comments

Yeah, title sounds not logically, but you will understand in a few why it is still relevant to this blog post.

It was and it is a good idea to…

In one of my blog posts I’ve decided to have all of the GoF Design Patterns written with Java. And idea itself is very good. Having all of the design patterns written by your own with you own examples gives you understanding of the DP that you cannot gain anywhere else plus to that if you have industrial experience of using all of them you can start think that you are guru of DP.

Process of writing my post on one of the Design Patterns looks like this: I read chapter of the GoF book on the particular DP, then I think up my own example if I do not have it already in my mind and after I’m done with some preliminary ideas I search over the internet for interesting articles on it and probably rethink some of the aspects of my example. After all of that I proceed to writing blog post and source code with Java.

Conclusion: Awesome and probably one of the best ways of learning DP is to have your own example of using it and industrial experience.

Design Patterns articles

One of the intents of having DP written in Java was to familiarize with that language. But it turns out that I did not learn much from Java (except of few things). Also few months ago I started keeping up Tuesday’s Design Pattern on the Lviv .NET User Group Page. Since it is .NET specific UG, I used to do following: 1) translate and 2) translate. In first place it is translation from English to Ukrainian and in second from Java to C#. When with item number one I have to apply some logic and rephrasing I cannot say the same about second item. I just copy code-paste code into Visual Studio and change few keywords. So what do I learn regarding of Java in this case?

I will continue learning Java, but I have to consider better way of doing it. I will also continue writing about Design Patterns, but with examples in C#.

Conclusion: Learning another programming language (Java) is really great idea, but be sure that you choose right approach of doing this.

First free e-book

On the road to Lviv I got perfect idea to start my first book. Of course this cannot be comprehensive stunning author’s book, but I have to start with something. In other words some probing book and this could be this “try it” case. I’m almost sure that there are no books about GoF Design Patterns in Ukrainian. (I suppose that there are in Russian, which can be easily understandable for most Ukrainians…)

How this book will be different?

  • It will be in Ukrainian.
  • It will NOT be a translation of GoF book in any way.
  • It will have my own unique examples.
  • It will be short and easy to understand.
  • It will be really cool kick-off book on DP for starting Developers.
  • It will be free to download.

Why do I need it?

I understand that this book might not be popular at all. But I have to start with something and plus to this it will help me familiarize with the whole process and build my confidence for future.

Also if you have some doubts about my idea I have a question for you: “Have you ever dreamt about your own book? If yes, do you have at least small book written?”

Conclusion: Never be skeptic about starting your first book. It might be a huge step to your success as anything else you are hesitating about but still dreaming about it!


12 comments


Career Plan For Software Engineer. Do You Have One?

August 24, 2010 Career, Success 21 comments

I’m confident that every smart human should have a plan for life, part of which is a career plan. Most of us spend more than half of our lives working. Did you ever think about that? We spend hours working on some projects, solving some problems, interacting with colleagues, creating and modifying things. Are you dedicated to what you do? If no, I have a question for you: Why do you work on xyz? Really! You may say that you could possibly work with more pleasure on another job. If that is your answer, why don’t you plan to change your job?

If you are dedicated to your work, I would assume you want to grow. Right? Do you have an idea on how you should proceed to reach your goals? Do you know exact steps to take and your knowledge gaps to overcome? No? How then can you be sure that you will grow to more respectful position, a position in which you are recognized and admired?

I always ask people about what motivates them and what they would recommend me to do to motivate others. Answers I get are different in formulation, but they all have the same core elements behind: possibility of career growth, recognizing, achievements, possibility to chief. Main question to you is this:

What do you do to reach your professional and life goals? Do you have a plan?

If you are not sure about what you do or what you should do, it is exact time to build your career plan.

Career plan

Career plan is list of positions and actions you should take in time to reach your short- and long-term career goals.

How to build your career plan?

First of all, building a plan is a great exercise and a process of establishing steps you should perform. The process itself allows you to have a critical view on your current career situation. You should know where you are right now, where you want to be and what are your abilities/skills. Answers for those questions are prerequisites for building a good career plan. If you have no clear vision on where you want to be, don’t be upset. Work on that. Try to write a few words that describe you after you as if you already reached your goals. How you see yourself in future might change, but at least you have some kick-off list. For me the list is something like “MVP, Consultant, Architect, Author, Community developer”. Also thinking out loud: “own company, another country, being manager, etc”

After you have some preliminary plan, you can refine it by removing less important items and by adding some additional ones. Also you can rethink some things and then rethink again and rethink few more times. In the end you will have some kind of more or less good plan. But do not expect it to be you final plan. I would say that you should always take a look on it and consider if anything requires improving.

Benefits of having a career plan

  1. Clear vision of the path you want to take.
  2. Possibility to track your progress to avoid getting stuck.
  3. Something you can use when you are trying to establish your life priorities.
  4. A way to communicate with your management on your career and get feedback.
  5. Extra confidence in your life.

You are now different!

After creating your personal career plan you will be different from your co-workers, who just continue to work blindly. There are people who work just to get enough money for a living. This cannot be considered as success, clearly not for me and hopefully not for you. Some other people probably think that simply working hard will lead them to success. Hey guys, just don’t think so! Yes, you are right that hard work is needed and respected, but there are definitely other things you have to add to bake a cake!

Once you have established where you want to be it is time to understand the path.

The Path

Positions path

Normally positions for Software Engineer start with these three:

  • Junior Developer
  • Intermediate Developer
  • Senior Developer

This is the most general part of a path I see in all software companies. What do we have after that? It really deviates from company to company, but generally speaking this depends on the factor of your interaction with other people, with technology and with the company.

The more you interact with people the more you become leader of team, say Team/Tech Leader. The term might differ, but I like the “Technical Team Leader” one. Even more, if you would like to take more responsibilities you can switch to managing positions and become a Project Manager right after being Tech Leader or Senior Developer.

The less you interact with people the more you become an expert (it is even possible to have such position officially in tech industry). Expert is the person with whom others consult and get advise from.

The more you interact with a company the more you become CEO, but depending on your company’s size you might have few more steps here. Of course, position’s title can differ as you climb the career ladder.

Summarizing, your further steps are in one of the following areas:

  • Technical Team Leader – a balanced position that has something from technical and management worlds
  • Expert – way to consulting and architect positions
  • CEO – way to management positions and eventually CEO

Goals in the Path

Why did I say “positions path”? Because this is not whole representation of the path. A good path should also go through you own personal ambitions related to your job to lead you to the established goals. What do I mean by this? Since I want to be recognizable community developer and known over the world, I should commit a lot of efforts in maintaining this blog, in speaking at events, etc. This has no explicit impact on my career growth, but believe me it has huge and tremendous indirect impact. Also, I would love to write a book and I’m planning on it. I still do not have a clear idea on what that book will be about. I only imagine something either on tech or on success. What matters is that I’ve planned it and I’m proud of it. Some remark goes here. I mentioned about this to my friend and he was laughing at me because I want to write a book and planned it but I do not know what about. I can express my arguments against it here, but would love to hear from you. [Edit 2015-Sep-16: I’ve released a free e-book on design patterns in my native language in 2012.]

My personalized “Developer’s RoadMap to Success”

My company as one of the leading outsourcing companies in Ukraine is trying to make employees happier with helping them in their careers. They create more positions and they also establish processes that allow employees see where they can move. (I hear you scepticism here…)

It is well known that one of the biggest motivation engines is visibility of a career growth. Since I’m considered to be a perspective employee (at least my employer thinks so), me with my company almost finished building my personalized Career Plan. It is the path with steps I should take to move from one position to another.

Of course, the company doesn’t care about my non-career goals even if they are dedicated to my personal improvement. It is the reason why the company has only included official positions in my career path. Highest position they’ve planned for me is to be one of the tech chiefs of one of the divisions. Highest position means a lot of interaction with clients and huge responsibilities in developing and advising on solutions. But it doesn’t include any of my desires to become community developer and stuff I would like to do to achieve my other goals.

So here I will present my own Personal Career Plan that also includes a lot of other things. I would recommend you to build something similar. On the left you can see path I built combined with some positions, certificates (officially needed for those positions). On the right side you can see my table of “Where do I want to be in a year“. List of  “where I want to be” is really powerful tool if you keep doing it year after year. (here is list for 2010 & here is list for 2011) [Edit 2015-Sep-16: To see complete list of year plans click here.]

A concrete career plan

You must be thinking now: “Boy, hold-on, hold-on! It is way too optimistic path. Are you kidding?“. I would answer “Shut-up! I know my path and will do my best to stick to it. And, btw, where is your plan?

Even I realize there is some overestimation of my possibilities/skills/efforts I would love think I can do all of this. Thinking in such a way is movement to The Success!

[Edited 2011-Jan-10: grammar fixed and few links added]

[Edited 2016-Jan-20: some grammar fixed]

2016 Follow Up?

As this post receives a lot of traffic, I decided to fix some grammar. I’m not changing the story though. I want to keep it the same so I can compare my old plan with my current achievements. Probably it is something you would like to know as well. Therefore I’m planning to write a follow up post in coming months.

2021 Update

Just for fun, here is my 2021 career update: I’m a Senior Software Engineer at Google working in Vancouver, Canada. Before Google I worked for Amazon as SDE3. I don’t know if this is an indication of any success or progress. I definitely had greater plans for myself in 2010. My ambitions subsided significantly and I tend to appreciate diversity of life much more than before. I feel like I probably need a new plan.


21 comments


Book Review: The Brand You

August 23, 2010 Book Reviews, Success No comments

I read this book on the fly. Couple of hours and done. Book is written in very specific way, that allows to read it quickly. It spreads very interesting ideas.

One of the main concepts is that you are General Director of your life and your name’s company and that is real place where you must do the best. You should have something like a new title of your current position in Company-You, like “Catalyzer of progress”.

Book just throws into you lot of gripping mottos that make you double think if you do the right things and if in right way.

Book’s author is “COOL” and he wants you to be “COOL” as well. You should make yourself a “dude with power” and then sell yourself with high price.

For some reason book is also concerned about building professional network. Intent is to be aware of the best people around you, so this could help you move forward. Few weeks ago I started looking around for cool people to have lunch with them. During lunch I’m trying to familiarize with that person and understand what does he thinks about the job. Mainly I talk with Software Developers. To some extent this helps me be known and get interesting information from them. Probably it worth to consider meeting with people of other professions.

Regarding what it talks about your job, ideas are great and are very applicable to my current position and current team work. I would love if we use following motto: “Work with what you have, and make it awesome‘. There is no room for complains, there is only room for getting it done.

Be the best!


No comments


Windows Communication Foundation – Getting Started – Developer’s Meeting

August 19, 2010 DevMeeting, Presentation, Success, WCF 1 comment

Hello, today I performed presentation on Windows Communication Foundation and it went extremely well. People were interested in topic and it smelled in the air.

Why am I happy with this meeting?

People were listening very-very attentively! It is the best gift to the speaker. Many thanks to today’s attendees! You made this presentation awesome!

What was the agenda?

For today I planned to have “Getting Started” session, where I decided to talk in general what is WCF and then proceed to basic concepts of it, like ABC.

In DEMO 1 (Damn it! Let’s write some code!) I created ever simplest WCF library and simple Contract that exposed todo list functionality. Then I brifly showed configuration and we started wcftestclient.

In DEMO 2 (Damn it! Let’s configure it!) I talked a lot about endpoints and how we can configure them. After I created a lot of them it was highlighted that changing the way how our service works by configuring and not changing the code is the key feature of WCF. WCF is indeed unified framework that allows us has one logic, but different exposing to the real world.

In DEMO 3 (Damn it! Let’s use & host it!) I created very simple console application that was able to send todo item to the service. It went with some exceptions thrown into console, but people liked it and besides after that I created SuperTodoServiceClient and it worked well. Also we voted were do we want to host our service for the long time. Most decided to host it under IIS. Till the actual hosting all went well, but then suddenly it didn’t work under IIS. Reason was very simple – since my machine has brand new OS, IIS was not configured properly.

What’s next?

Also I’m planning to have another meeting on the WCF. This time it will be “Advanced”. In that session I would like to show some real-world examples. Also I’m going to prepare to the 70-503 exam (on WCF), so I might get some interesting topics from the training kit to show on the meeting.

Presentation

More and more I start disliking ppt files. But anyway to have some visual appearance of presentation I created ppt file (maybe finished with it at 5:30 am so don’t kill me if it is “poor”). Btw, having ppt has some plus – I can put my blog’s logo and URL :)

View more presentations from Andriy Buday.

Guys, looking forward to hear from you! Will appreciate any of your comments.


1 comment


Book Review: It’s Not Luck

August 15, 2010 Book Reviews, Success No comments

So far I read another book on business and management. Now it is called “It’s Not Luck”, and is written by the author of “The Goal”.

Honestly, I liked this book, less than “The Goal”, because now I knew what to expect. I knew that all of the problems will be solved and that the hero will be promoted to the general director of Uni-Co.

The main and huge difference is that in this book author represent to us new way of thinking to resolve issues.

I will try to summarize it here from my perspective and my understanding.
So, first of all you have some conflict. You write it down with good formulation – that is the main thing you need to resolve. After, you should build some tree of dependent reasons-effects. To do that you need to write them all down and dive into intensive thinking to find out all of the dependencies. Book, states that in most cases reason of the main problem is just one of the reasons, you listed. If you commit lot of effort in building your dependencies tree, your reason will be obvious, so after that, you can proceed with building your plan to resolve that. Plan is path from root reason to the main problem, you should solve.

Book is very gripping and is written in way that gives us touches of both personal and business examples. I liked it, and maybe will try to use some of the technics to solve problems in my life.



No comments


Friday the 13th – Knowledge Evaluation

August 14, 2010 Career, Success 6 comments

As I promised, here is post on Knowledge Evaluation for the Senior level.

Definition of a Senior Level Developer

In most of the sources, Senior level is defined as level on which person is responsible for building complex components with minimal guidance and being unsupervised. Also person is an expert in language and has experience in business areas. I personally like definitions, where they additionally indicate person’s interest in software and bringing business value to the client.

So, who is Senior Developer?

Senior Developer is guy, who can and likes to code on any level of complexity, therefor he is able to build certain project parts, taking responsibility for the work being done. He can and likes to mentor and teach other members of the team; keeping his skills up to date and bringing this knowledge to the team he is leading by example.

For me being Senior Developer isn’t just label, that is indicated somewhere in the company by HR. It isn’t only list of responsibilities/duties I will be stick to. It is significant breakthrough in my career, that blesses me to move on. Moreover it is another step to self-actualize myself by accomplishing my life goals. Again, it is part of my RoadMap (I feel, that I need some post on it, but cannot till map is rolled in one or few places.)

Knowledge Evaluation

Except of taking into account my performance, company should always evaluate my knowledge to proceed with promotion.

My theoretical knowledge of programing and language isn’t under question

For some reason, my evaluators were not concerned about my theoretical knowledge of the core programming and language. That is why I got only few questions about database access, code quality and few other. Btw, for Med evaluation, most of the questions were exactly on core .net and surrounding things.

Non-coding aspects played more evident role in evaluation
Our meeting was about to find out if I’m able successfully communicate and work with team/client, if I’m competent in mentoring/coaching more junior staff, also how would I proceed with project management, like evaluating requirements, managing risks, doing proposals, and providing estimates on difficult matters. Of course there were some questions on configuration management and product deployment and brief go through surrounding project developing stuff.

Personal outcome

For me it was good time and my personal outcome for myself is that complete understanding of engineering management and requirements will come only with facing more real world situations, since simple theoretical knowledge isn’t enough.

Feedback

They did not give me official feedback yet, but I feel confident about positive one.



How will I proceed with new position?

First of all I will do all possible to not disappoint my management. Also I will work hard on keeping my brand up to people expectations and higher. Of course I will continue doing more than it is expected from me. 

Any congratulations and comments are welcome!


6 comments


English classes in outsourcing company

August 7, 2010 English, Opinion, Success 1 comment

Since each software company wants to develop into huge one and be evident player in the IT industry, managers work on improving skills of the personal. For not English speaking country, as Ukraine, it is quite critical for the employees to know English well. That is why many companies are investing money on creating English courses.

Half of the English courses, I’m attending are left and I would like to provide some feedback that can be useful for my teacher, for people who are attending courses, and for anyone else who is working in outsourcing software company in non-English speaking country.

I’ve been attending regular Upper-Intermediate course for about 4 months and I see many advantages of it, but classes do not bring as much value for my work, as I’m expecting to get.

Difficulties

Why don’t classes bring enough value for my everyday work?

First and the major reason is that subject of our studies is completely unrelated to matters we are encountering during daily work. For example one of the latest chapters of our student’s book was “Literature”. For me it was the worst chapter in that book. I’m not keen on literature, so maybe that is the reason why I was so much bored with that chapter. Maybe, but if we take a look at this from other side asking ourselves question “Which value does chapter about literature can bring to software guys?” my statement about that being worst chapter doesn’t look ridiculous. Except of some out of the common situations, like dinner with client or library software solution, literature topics bring small value. I do not say that it is bad to have such topics; I say that to some extent it is waste of time which could be consumed by learning other more interesting stuff.

Gap between engineers and English teachers

More over I think that I understand why this gap exists – because people who created study books are from another life area than software guys are. They are academic guys, they write articles and some fiction stories. On another hand we have software engineers who develop programs and discuss them, who look bit prosy for others, but we know what we know.

For example, I often watch different programming video. Guru speak about new frameworks coming soon, about mature approaches to building software, they show best practices and design patterns. Surprisingly I understand absolutely everything from their speech (maybe 1-2 words per minute missed). Why? Because they operate with words and terms I’m using in everyday work and because I’m interested to hear things they say. On one of the lessons we had listening practice, where guy talked about the train in Asia, and how some lady brought insects on plate for eating and about wooden sticks and bla-bla… Question is: why on earth I need this?

Advantages, Improvements, Thoughts…

Is everything so much bad?

No, of course, no! Main point of my previous paragraph is that classes are not 100% concentrated on needs of software engineers.

These classes bring lot for my general understanding of English Language. I now feel more confident in using perfect tenses and different grammar. Classes are great revision of the grammar, that you learnt at some time and then have forgotten.

On my previous Performance Appraisal I got remark from client, that my English has improved. I should thank my company for giving me opportunity to learn English.

Improvements to regular courses that I see are:

Have brief review of the upcoming topics and find out if people are interested in them. If not maybe it worth to provide one-two lessons that do not belong to regular course, like one lesson of “listening & speaking” one lesson for grammar one for video, after that proceed with further chapters. Get feedback from people. Btw: I really appreciate, that my teacher asked for feedback. You rock! I know that feedback is the most reinforcing way of improvements.

Course I’m attending is comprehensive (learnt this word at classes :)) set of activities, but I would really like to see more speaking. Make people speak more, and provide feedback on that only after person finished. I would like to see it more regulated. Make everyone speak.

Make some friendly-competitive environment. I’m kind of person who would like to win some rewards, like “Best presentations deliverer”. For now I would win only “Most Thursday lessons missed” – 9AM is too early for owl.

Have some home activities that differs from usual, like ask for watching some film and provide review for the students. Or simply let people introduce and explain their duties in company. That should be interesting.

Additional learning is needed

As per me it is required to work on English by your own and simultaneously attend classes. How does it work?
English teachers are the best in their understanding of grammar. Particularly my teacher can explain tenses just terrifically. Your everyday work doesn’t require complex grammar to be used, but nothing restricts you from doing that. Simply start listening to your clients more attentively and catch the smallest matters they say. Write more clean and sophisticated letters. Now you have theoretical knowledge, go and use.

My list of activities I do for learning English:

  • Attending English classes and catching grammar at daily work
  • Using theoretical knowledge in your daily work. Why not write two-three words to build more complex and correct sentences that can emphasize your e-mail.
  • Reading huge dozen of articles. I read technical only, and tech books in original.
  • Watching tech video. I just love watching it.
  • Watch with beer and friend movies you have already seen translated.
  • Watch without beer movies for the first time. Even if you understand little; low of average works – the more films you watch the more words you intuitively understand.
  • Find someone who will likely be talking with you in English during the day. I’m happy that I have colleague, who talks to me in English. We have fun. 
  • Write something. I write blog posts, that is also asset to my learning.

Conclusion

English classes are definitely needed for the software company. And I really enjoy attending them, but hate that they suck time that I need for my sleep and dislike that they are not software-related, but I try to understand this. I see some improvements, biggest part of them are applicable to our courses, but not necessary near to wishes of other students. As always everything depends on your desire to work, so I have my own list of activities I do for learning English.

Please let me know your thoughts about said above.


1 comment