November 15, 2011 Career 17 comments
November 15, 2011 Career 17 comments
October 17, 2010 Career, Opinion, Success No comments
Job and happiness
Cheese
Money table
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?
Job of my dream
Questions:
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:
Questions about estimating:
Questions regarding the team:
Questions regarding personnel type policies:
Questions about management:
For the manager:
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:
Questions on the work environment:
Miscellaneous questions:
Hope you liked this blog post. Looking forward to hear from you guys!
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 is list of positions and actions you should take in time to reach your short- and long-term career goals.
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.
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.
Normally positions for Software Engineer start with these three:
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:
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 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.]
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]
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.
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.
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?
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 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!
For the Thursday I had nothing planned for learning, since I spent my night watching Perseids out of the city.
Knowledge Evaluations is very close, so I just reviewed all of the items I should know for it.
To lot leave this post empty, I decided to write at least about something. I feel, that I still have some weak areas like Networking. But it turns our that for .NET Desktop Profile, I need only basic knowledge of it, like understanding networking itself, application layer protocols, IP, TCP, UDP, SMTP, and so on and so forth. So for my luck I have basic ideas how all of that works and glues the world together.
Networking
We often use these abbreviations, but do we always know what they mean?
local area network (LAN)
wide area network (WAN)
metropolitan area network (MAN)
personal area network (PAN)
virtual private network (VPN)
campus area network (CAN)
storage area network (SAN)
Simple Mail Transfer Protocol (SMTP)
Multipurpose Internet Mail Extensions (MIME)
User Datagram Protocol (UDP)
… what more??
In the evening there will be post about how KE went and what are outcomes.
P.S. I feel myself very nervously at the moment…
August 12, 2010 Career, CI, Opinion No comments
For today it was planned to learn SQL and Continues Integration. In this blog post I’m going to express few thoughts on Continuous Integration. Only thoughts, because you can read comprehensive articles on it over the internet, like this one written by Martin Fowler.
My definition of CI:
I took picture somewhere from web, since I like how it illustrates CI |
Few main suggestions on introducing CI:
And some thoughts about blind architectors
When, I came to the project and I faced lot of difficulties that project had, like having sources under different repositories, having not automated procedure of builds, also when someone failed build, everyone knew about that next day and all QA work was stopped; lot of complains about merging sources; dry applying sources to diff versions procedures. None knew what is going with project till next day! I was junior at that moment I did not know about CI, but, hey where our architects have been? Thanks to efforts of new fresh architects we’ve got CI and it applies to our project very smoothly. What is left is to convince devs do committs more often and cover everything with Unit Tests. (But that has also something to do with our project specifics.)
Why didn’t they consider introducing CI earlier? This is mysterious question, I do not understand. There should be definitely something significant (like CI) that we can improve!
August 10, 2010 Career, UML 5 comments
Today is my third day preparing to the Knowledge Evaluation. For today I had DB Design and Modeling. Modeling is about UML diagrams as it is mentioned in sheet I’m using for preparing. In this post I explained each of the diagrams with one simple sentence. Also I drew few of them, have no enough power at this point of time at night to continue and draw all of them. Hope you will like my drawing tries :)
UML: Structure Diagrams
Class Diagram – show classes and their interaction in details.
Component Diagram – represent components of the system, their relationships and contracts they use to interact.
Composite Structures Diagram – show collaboration of instances in run-time and communication links used.
Package Diagram – organizes other model elements into groups for easy understanding of the system.
Deployment Diagram – represent static state of the working system, including hardware and software located on it.
Object Diagram – shows snapshot of the instances of the system to represent how system can look at run-time.
UML: Behavior Diagrams
Activitiy Diagram – represent workflow of the activities in the system, basing on decisions made.
Use Case Diagram – show usage patterns of the system, so they can ideally describe requirements.
State Diagram – shows all of the possible states of the object in the system and conditions when it can change its state.
UML: Interaction Diagrams
Sequence Diagram – show the lifetime of the components/classes and their interaction in time.
Communication Diagram – shows flow of the messages in the system and illustrates basic relationships between classes.
August 9, 2010 Career No comments
Today is the second day when I spend some evident time on preparing to my knowledge evaluation. For today I had Engineering Management, Requirements and OOD.
Engineering Management is something that I read few articles on wikipedia and OOD is something that is not possible to learn per one night. So regarding Requirements I noted only few things.
Requirements
Requirements is very important part of the process of building software. The better and cleaner requirements you get – the better understanding of the system and its design you create; the better you communicate requirements to development team – the better product will be built. And what is the most important as per me – you can evaluate requirements before you started developing something and find out if it is feasible.
So how can requirements look like?
Evaluating the Requirements for the Application
August 9, 2010 Career No comments
I’m preparing to the Knowledge Evaluation, which should let me get next step in my career. Today I spent about 5 hours on learning the Communication area of requirements for me. I read dozen different articles and reviewed many presentations. Very important part of communication is Team communication and Coaching, but I’m off for sleep. Indeed want to write something about it. You just need kick me to do that next week. Here in this post you will see some random lists on different communication items created or mixed from other resources by me.
All of us know how that is critical to be competent in written communications, specially with client, so while preparing I created some lists of things to be remembered.
Be clear in your e-mails:
Requirements
Software Requirements documents consist with:
Questionnaire
Meeting Minutes
Meeting minutes document what occurred at the meeting. They are not an opportunity to present a position or to add new materials and comments.
Format of Meetings Minutes should follow the agenda closely:
Always attach copies of materials distributed at the meeting or note where to find
them.
Proposals
Should have Executive Summary and answer for the following questions:
Conference calls
I’m sure that you can anourmous amount of information on how you can effectively provide your conference calls.
Here is my own list:
If this is bad post, let me know.
August 1, 2010 Career, Certification, Success No comments
I already wrote some posts on certification, where I mentioned why do I need certification and which value does it bring to me. After those posts I almost have nothing to add.
But maybe few things…
How 70-505 differs from 70-536? Questions in 505 are not so wide and after passing 536 + reading training kit it is much easier to pass this one.
How did I prepare? As I mentioned in one of my blog posts, I read training kit on 505 exam. Reading was boring. Taking into account that I already have strength experience working with WinForms it was ridiculous to read about some things like adding controls or something like that. But anyway I found some stuff interested for me. Also I did some research over internet on how other passed this exam. Not enough information exist about this one. Maybe because it is not very popular.
Also I worked on training tests, including demo test on MeasureUp.
Passing Exam
As you see preparation looks very similar to what I had for my 536 exam but I was still worrying about passing exam, since I already failed it. That time I even did not read training kit and was sure in passing exam.
As I was afraid to fail it once again, while testing I was really concentrated on questions and. I PASSED EXAM with score 1000, this means that I answered correctly on all 40 questions. It was really surprising and is pleasure for me.
You can see my transcript using this information:
https://mcp.microsoft.com/authenticate/validatemcp.aspx
Transcript ID: 904316
Access Code: andriybuday
Effect on Career
In post It is time to get Microsoft Certification, I wrote that certification is important for my career growth. Actually in few words my company has schema that defines conditions to be eligible for promoting to the next level.
Here is my current status:
As you can see, I satisfy all conditions for being Senior.
I have just perfect Performance and it was noticed by my managers, also I worked in my company near 2.5 years (looks like this condition is bonus for me, since now it should be 3+ years), also my English is now evaluated as Upper-Intermediate, I did dozen of presentations, and finally I got that certification.
So what is left? – Knowledge Evaluation.
Knowledge Evaluation is meeting when guru guys bombard me with questions to ensure that I’m competent in areas, which are already defined somewhere in requirements. So my next step is to find out my weak areas and get better with them, so I will have more balanced knowledge. I now feel that in some areas I’m competent but some are still very weak, because I do not have experience working with them. You can expect that soon you will see posts on themes I do not know well, but I try hard to figure out them for myself and for you. Hope they will be interested for you!
Please let me know your thoughts on this post.