Developing Your Career Part 4 – Control your Ego

Do you seek attention and praise for your work?  If you do a great job on something, and you aren’t noticed for it, does it lessen the value of what you accomplished?   How about if one of your co-workers does something and is recognized for it.  Do you envy the praise that person received?  If you answered yes to any of these questions, then your ego may be playing a bigger factor in your life than you think.

Our ego can be the driving force behind our success.  If left unchecked, it can also be the downfall of one’s success.  Ego can be defined in many ways, but simply put it is  “one’s sense of self-esteem or self-importance”.  It is important to be confident and sure of oneself.  However, when starting to compare yourself to others, this is a warning sign that you are putting too much emphasis on how others view you.  Don’t get me wrong, we all seek approval and validation, but what levels are we willing to go to seek it?

In software development, there are so many different areas to learn it is impossible to know them all.  There will always be something that you do not know, and you must be willing to accept that and ask for help.  Earlier on in my career, I struggled with this and was trying so hard to prove my skills that I lost sight of what should have been my focus (self-growth).  I wanted to reach the next level so much so, that I failed to notice how well my progression was advancing.  As a junior developer, I wanted to be considered on the level with the senior developers around me.  I knew my skills didn’t match theirs, but that didn’t matter in my mind because that is what I wanted.   I just was not content with being a great junior developer, I just wanted to be a senior developer.

As time progressed, I started realizing the only way I was going to get those skills I valued so highly, was to just do it.  Those skills could only be obtained through experience.  The only way that was going to happen was to build software and not by myself, but with others.  I had to lean on other people’s knowledge to help push myself beyond my boundaries.  The only ones who could help me do that were the senior developers I wanted to be like.   So I began to ask questions and take their advice.   I learned, I studied, and most of all, I accepted that my ideas were not always right.  One technique that I started doing to help me figure things out, was to analyze why my ideas were different from theirs.  How did they come up with different solutions and why were theirs’ better?  One day it hit me like a ton of bricks.  Finding the best solution isn’t always about how much you know.  There will be times where a junior developer will come up with an idea that is brilliant and leave most senior developers standing in awe.

You see, the key to keeping your ego in check is not placing your self above anyone, regardless of your level or theirs.  It is the willingness to accept all ideas, to look at all possible solutions, and realize that yours probably isn’t the best, and many times will not be.  That is one of the main reasons why better quality software is developed by a team of people, and not just one person.  It’s not just about the quantity of work being done, but the quality of the ideas that are shared among a group of individuals.

There are many examples of how to control your ego on the internet, a simple Google search will show that.  When it comes to software development, there are a few questions you can ask yourself to get an idea of how much control your ego has over you.

Is it hard for me to say I don’t know something in a meeting?

Do I have trouble accepting others’ ideas over my own?

Do I feel bad when my ideas aren’t chosen?

Is it more important to me for my ideas to be accepted, versus providing a better quality solution?

If you can honestly answer them with no, then you probably have a pretty good handle on your ego.  If you answer yes, then you may want to consider looking closer at what is driving you.

Remember, ego isn’t just about trying to feel superior to others, it can also be a feeling of inferiority too.

Developing Your Career Part 3–Building Quality Relationships

Stop for a minute and think about the following questions.

Do you know what a quality relationship is? 

What are some characteristics of quality relationships?

What is your role in a quality relationship?

We develop relationships with everyone we come in continuous contact with.  They all start out as superficial relationships, and grow at their own pace based on the people involved. 

A Quality Relationship Defined

A quality relationship can be defined as “a relationship that adds value to you and the other party’s lives.  I say party, instead of person, because these can include animals too.  Yes, we build some of the best relationships with our own pets.  Think about this for a second, how do you get along with your dog or cat?  They show us unconditional love, and we typically give that back to them.  How is that we can have such good relationships with animals, yet struggle with other people?  This all boils down to one word – ego.  I’ll talk about this at length in the 5th part of this series, but for now, realize that your ego can play an important part in developing quality relationships.  These relationships that we build help define us, help us grow, and create a sense of balance in our lives. 

Relationship Characteristics

Some characteristics of a quality relationship include:

  • Trust
  • Honesty
  • Transparency
  • Respect
  • Understanding
  • Be Genuine

Some characteristics of an unhealthy relationship include:

  • Deceit
  • Mistrust
  • Emotional Abuse
  • Lack of Respect

Relationships in the Work Place

When building relationships in the work place, you must take each of the characteristics of a quality relationship into consideration. 

Trust, Honesty, and Transparency

You must build trust with your coworkers.  In order to do this, you must be honest with them, and you must also follow through on your commitments.  If you commit to something with someone, and deliver, they will trust that the next time you tell them you will do something, they will have faith that you will follow through.  If you fail to deliver, and it’s a pattern, then the faith they have in your promises will be diminished or completely gone.  If for some reason you cannot follow through, the you should raise awareness as soon as you know.  This is called being transparent.  This allows the other person to still have faith in you, as if for some reason you can’t complete something, they know that you will inform them so they can adjust. 

Respect

Respect is something we all deserve to give and receive.  We should give respect even to those who don’t respect us.  Always showing respect, regardless of the situation is a direct reflection on our character, not the character of others. 

Understanding

We are not perfect.  We never will be.  Since we are not perfect, our relationships cannot be perfect either.  There will always be cases where someone gets offended or upset by something you do.  The reverse is also true.  How we react when these situations occur help define the quality of the relationship.  Can we empathize with the other person?  Can we be willing to accept their flaws, and still move forward?  We should be able to do these things in a quality relationship.  There are some things we should never accept, such as deceit, abuse, etc.  If those occur, we should be willing to move past it the first time, but if it continues, then your relationship has moved from a quality relationship to an unhealthy relationship.  At this point, it may be best to consider ending the relationship if possible.  We can’t always do this in a business environment.  In this case, the best option is to remain professional and courteous in all interactions with this person, and keep all personal matters separate.   

Be Genuine

You should always be yourself.  Do not pretend to be someone you are not.  Remember, a quality relationship is built on trust, not deceit.  If you present yourself to be someone you are not, then the relationship will be built on a foundation of deceit, and will eventually become unhealthy. 

To Summarize – when building relationships you need to do the following:

Be honest in your interactions with others

Follow through on what you say you will do and notify immediately when you can’t follow through

Communicate effectively (always try to remain positive)

Always show respect

Be understanding and willing to forgive

And most importantly – be yourself!!!

Developing Your Career Part 2–Remain Active

This is part 2 of a 5 part series on growing your career.

How do you know if you’ve “arrived”? 

Have you “made it”? 

Do you consider yourself successful?

Do you need to do more?

These are questions that everyone will ask themselves at some point throughout their lives.  The key to answering these questions is to define exactly what “it”, “arrived”, or “success” means to you.  Are you content with reaching a certain level or goal and staying there until retirement?  Do you continuously want more with each level you reach?  Some people are never happy or content and always want more.  Others are content where they are and do not try to go any further.  There is a delicate balance between being content with your life and always wanting to achieve more and remaining positive throughout the process. 

As we go through life, we should be continuously trying to improve all areas of our life, not just our career.  Personal relationships can always be improved no matter how old we are.  When we are blessed and lucky enough to have children, we are constantly learning new ways to interact and communicate with them to help them develop into productive individuals.  During this process, we learn so much about ourselves and how to deal with different personalities. 

With regards to our careers, we should strive for continuous improvement.  There is always something to learn.  It could be about the business or industry, a specific technical skill, or soft skills.  We can and should always be working towards growing our skills.  The more we know, the more value we can add to the company / business we are working for.  This may be a large corporation, a small startup, or a sole proprietorship.  In each instance, the company benefits from an employee’s increased knowledge.  By adding this value to the business, we can increase our salary, benefits, and overall have a better quality of life. 

One thing to keep in mind is the reason behind our learning.  It should really be centered around self-improvement versus envy of others or trying to “compete with the Jones’”.  If we can stay grounded and focused, then we can remain content with our current situation, while simultaneously working to improve it. 

Avoiding Burnout

We all go through times in our lives where we have so much going on, we don’t have time to stop and breathe.  If we continuously do this, then at some point, we will give out mentally, and possibly even physically.  We must keep a balance in our lives that allows for us to remain healthy and happy, so we can remain active.  The following tips will help with avoiding burnout.

  • Don’t overload yourself
  • Manage your stress level
  • Work Efficiently
  • Eat a healthy, balanced diet
  • Get plenty of rest
  • Exercise
  • Take a break / vacation
  • Separate your work and home life (critical if you work from home)

There will be times when you need to take a break.  You may choose not to learn anything new for the next few months technically.  Instead, you can replace that time with other leisure activities.  I don’t have a lot of time to read for pleasure, so when I do take a break, I normally read a few books back to book to keep my mind and imagination active while taking a break from technology. 

One of my favorite quotes and something I try to live by is from the movie the Shawshank Redemption – “Get busy living, or get busy dying.” This reminds me to continue to learn and try new things.  If you sit still, life, and your career will pass you by. 

SQL Server and Locking Pages in Memory (LPIM)

A question came up recently around using the feature to Lock Pages in Memory (LPIM) for SQL Server and is it still needed?

What is LPIM?

When processes are running, they ask Windows for memory to perform operations.  Windows will assign physical memory space to these processes.  When a process has physical memory allocated, and windows needs it back, windows will move that information from physical memory to virtual memory (Page File on Disk).  Accessing data from physical memory is very fast, while from virtual memory, not so much.  When you enable the LPIM feature for a process, you are basically instructing Windows that it cannot take this memory back, and must look else where for it’s needs.

How does it apply to SQL Server?

SQL Server allocates as much RAM as it can from the operating system.  Out of the box, there is no memory limit set (Maximum Server Memory).  There are many formulas out there to calculate this, but lets take the following example.  You have a 64 bit OS with 32 GB of RAM.  You set Max Memory to 26 GB, and leave 6 GB free for Windows to use.  When SQL Server starts up, it will allocate all of the memory it can (26 GB) to the SQL Server process.  It will then begin using this memory to improve the performance of database operations.  If another process outside of SQL starts up (say backup software or a virus scanner) and Windows starts to get low on physical memory, then it will move some of the items SQL Server has stored in physical memory to virtual memory, all the while SQL Server doesn’t know it.  When it needs to access this data in memory, instead of being extremely fast, it is slow since it has to be read from the disk, thus slowing SQL Server down.

When LPIM is enabled for SQL server, then Windows will not be able to move this data to virtual memory.  This allows SQL Server to continue perform at an optimal level.

Why isn’t this turned on by default?

There are some dangers to enabling this feature, that many people don’t know or talk about.  Take the example above, if Windows was in a situation where it was really pressed for memory, and was not able to find it / release it from somewhere else, then Windows would encounter an out of memory error and potentially a blue screen of death (BSOD).  This scenario is not feasible for a production server, so caution must be taken not to allow this to occur.

So should I enable it?

After researching this topic quite extensively, I have come to conclude that this is one of the bigger debates in the SQL Server community.  There are some very smart and influential people on each side of the debate.  That wasn’t enough for me though, I wanted a clear, cut definition on it.  So I dug and dug until I was satisfied with an answer I can live with.

So – what’s the results?

As with anything in technology, IT DEPENDS!

I don’t believe it’s as important today as it used to be, when servers had smaller amounts of RAM and we had 32-bit operating systems and applications.  There are some considerations on to whether you enable it or not and what you set the values to.

Is this a physical or virtual server?

Is this a shared or dedicated server?

Is there one or multiple instances on the server?

Is this a 64 bit server (please say yes)?

Is this a highly utilized server or used for smaller loads?

When setting the LPIM feature, it is important to make sure you also set the Server Maximum Memory setting for the server correctly.  As for myself, luckily I am not a DBA, so I don’t have to dwell over this, but I now know what it is, and why it should or should not be used.

Popular Posts / Debates

Below are a couple of posts that I found useful while digging into this.

Jonathan Kehayias – Recommends it, very in-depth post on the subject –  https://www.red-gate.com/simple-talk/sql/database-administration/great-sql-server-debates-lock-pages-in-memory/

Brent Ozar – doesn’t usually enable it – https://www.brentozar.com/archive/2016/07/video-office-hours-20160706-with-transcriptions/

Other Resources:

Enabling LPIM in SQL 2012 – https://support.microsoft.com/en-us/help/2659143/how-to-enable-the-locked-pages-feature-in-sql-server-2012

Enabling for Process in Windows – https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows

Developing Your Career Part 1 – Who owns your career?

This is part 1 of a 5 part series on growing your career.

When it comes to the work place, who is in charge of your career?  Is it your manager, or is it you?

Many people that I have talked to have had differing opinions on this.  Many, when asked, had a puzzled look on their face and were not sure.  This doesn’t surprise me.  For example, when students are coming out of college, they have usually mastered the art of studying for exams, passing tests, etc.  They have been guided on what classes to take usually based on a course curriculum developed specifically for the discipline they are studying.  Everything has been laid out for them, all they were required to do was complete it.  There are some lingering questions that you must answer now, and may not even realize what the questions are.

For example:

What happens when that course isn’t defined for you any longer? 

What happens when you are released out into the work force and have so many options to choose from?

How do you know what skills you need to work on as you enter the work force and continue on in your career?

If you are lucky, you are able to get into a good organization or work for a manager or mentor that can help you define these things.  But remember, it is not your manager’s responsibility to grow your career.  That ownership belongs to you.  Don’t get me wrong, a good manager should and will help you, but in many situations, that isn’t guaranteed.  Which means the only person left is you.

The following key points are critical to successful career growth:

Take Ownership of your own career.

Remain Active and continue learning new things and growing your skill set.

Build quality relationships with everyone.

Remain positive in all situations.

Control your ego and go forth with humility.

I’m Back!!!

After a long sabbatical from blogging, I have decided to start up again.  My old blog was focused on my journey into becoming a software developer.  It was more technical in nature and helped me grow as a developer.  The focus for this blog is going to be multifaceted.  There will be technical topics, but also topics that focus on the business side of software development.  This includes concepts related to soft skills that everyone needs to go further in their career.