How to become an Expert in your Career

udayarumilli_howtobecomeexpert_1

How to become an Expert in your Career

In Previous Post we can understand what are the various Paths in Database Career.

Recently we conducted an interview for a SQL Developer with 6-8 years of experience. We could hardly shortlisted 2 members out of 18. These 2 are experts at least in their stage. We can’t say that remaining 16 people are not good, they can manage and deliver the task but still we need experts why?

Experienced people can manage their work and deliver the project on-time.

Experts tackle problems that increase their expertise, approach a task in a way that maximizes their opportunities for growth which can take business to the next level.

We had a discussion with various engineers, architects from different organizations and we have prepared a list of points which can help an experienced / fresher to become an expert.

Key points that make you an Expert in your chosen Path:

  • Know the Internals
  • Expertise Your Profile
  • Performance Tuning
  • Accurate Estimations
  • Never React Always Respond
  • Keep your own best practices and Troubleshooting guide
  • Training, Learning and Knowledge Sharing

 

 

udayarumilli_howtobecomeexpert_2Know the Internals

We do work on various items in a typical working day. While working on an activity apply the formula WHW (What-How-Why). Most of the people knows “What” and “How” but ignore “Why” except Experts. Have a look at below examples.

Let’s say you are a fresher and joined in an organization:

Database Administrator:

Your lead asked you to create a database in SQL Server and keep .mdf on X drive and .ldf on Y drive.

WHAT is mdf and ldf? You co-worker can help you or you can google it.

HOW to do this? Again google can help you on this

Your work is actually done. If you wanted to become an expert ask the next question “WHY”?

“Expert Zone”

WHY should we keep mdf and ldf in different drives?

Ans: To improve the accessibility

HOW it improves accessibility?

Ans: Each drive is having a separate set of I/O buses. Since both files are in different drives, more buses will be available to complete the task.

What is the problem if both are in same drive?

Ans: Task has to be completed using the limited I/O buses which delays the execution time.

Database Developer:

Your lead asked to create a procedure. Use a temp table to hold some data and process it etc.

WHAT is a Temp Table?

How to create a Temp Table?

Expert Zone

WHY Temp Table? Why not a Table Variable?

WHAT actually happens in database when we use Temp Table?

WHAT is the most optimized way of holding temporary data?

Note: Ask “WHY” if you want to become an expert in your path and know the internals. Since timelines are really matters in IT we can’t always spend some extra time. But remember you just have to know the answer for “WHY”.

udayarumilli_howtobecomeexpert_3Expertise Your Profile

Your profile is the first piece of information that shows what you are. Let’s say Person A and B is having 8 years of experience. If “A” worked on Oracle for 8 years and B worked on SQL Server for 3 Years, on Oracle for 5 Years. Can you guess who are having more chances to get good career opportunities and growth, it’s absolutely person B. Do not stick on a technology and never miss a chance to work on other (Similar) technology.

Database Administration:

A SQL Server DBA Expert should have experience in:

  • Database Server Installation and Upgrades
  • Database Capacity Planning
  • Day to Day Database Monitoring Maintenance
  • Backup and Recovery
  • High-Availability Solutions
  • Disaster Recovery Solutions
  • Performance Tuning (Server and Database Level)
  • Troubleshooting and providing instant solutions
  • Planning, Testing, Implementation and Maintenance of a SQL Server Instance
  • Database Maintenance Automations
  • ITIL Standards
  • Securing Database servers
  • Good Contacts with Technology Masters
  • Recommended Certifications
  • T-SQL
  • Powershell Script
  • Native Plus Third party Monitoring Tools usage
  • Using Version Tools – SVN, TFS
  • DBA in other RDBMS (Oracle, My SQL, DB2)
  • Able to Work in a Team or Individual
  • MSBI (Deploying SSIS packages and SSRS reports)
  • Should learn and understand Cloud concepts – AWS / Azure

A DBA should be expertise in one or two areas and should have experience in remaining. Make sure you are good in at least one leading cloud platform either with AWS or Azure.

Database Design and Development:

An Expert SQL Server Database Engineer should have experience in below:

  • Requirement Gathering Analysis
  • Designing a database
  • Good Understand in Basics – Joins, Procedures, Functions, Triggers, Views, Synonyms etc
  • Database Level Performance Tuning
  • Execution Plan analysis
  • Index Tuning
  • T-SQL / PL/SQL
  • Writing Secure and Optimized database code
  • Integrity /Domain / Functional Testing for Database Code
  • Using Version Tools – SVN, TFS
  • Preventing / Handling SQL Injections
  • Good Contacts with Technology Masters
  • Recommended Certifications
  • Knowledge on Front End Technology (.Net, Java etc)
  • Expertise in a Domain (Banking, Financial, Insurance, Healthcare, Media, Law etc)
  • At least work in two RDBMS (Oracle PL/SQL, SQL Server T-SQL)
  • Should be experienced in Code Reviews
  • Able to Work in a Team or Individual
  • Familiar with SDLC / Agile
  • Learn at least one No-SQL database also never miss an opportunity to work with the latest technology.
  • Focus on at least one ETL tool, if you are a T-SQL developer it’s so easy to learn MSBI stack.
  • Should aware basics on cloud computing, try Azure / AWS

 

udayarumilli_howtobecomeexpert_4 Performance Tuning

Performance tuning is the key aspect and which is actually tell about you whether you are an expert or just experienced. It’s all about End-User satisfaction who use applications for which you design and maintain database, they won’t bother about the technology rather they just see how application is performing. It applies to all designing, development, maintenance, administration and warehousing. Whenever you design or create in a database you should think of below aspects:

Database Administrator:

Your manager asked you to prepare a new SQL Instance and configure it. What are all the things you should consider to build an optimized and secure instance?

What is the business all about?

Ex: OLTP or OLAP

What is priority – Concurrency or Huge Data Processing?

Ex: DB to support online transactions or it for business reports

What is the Minimum and Maximum Memory required?

Ex: You should predict/determine the future usage based on the existing environment and the requirement

How many processors required?

Ex: You should predict/determine the future usage based on the existing environment and the requirement

What is the data growth expected?

Ex: Based on this we can allocate data and log files to drives also decide on Auto Grow option.

Decide on TempDB usage

Ex: It depends on lot many things. You should be able to predict version store, internal and external objects.

What is the Index fill factor percentage to choose?

Ex: It depends on data modifications. For example when expecting more data modifications it can be 80 to 90 percent, if it is static / archive data it can be 100%.

What is the disk system required?

Ex: You should have command on RAID levels

What is the backup policy required?

Ex: It depends on Service Level Agreement (SLA) between organization and vendor.

What are the disaster recovery / High – Availability options required, if not now in future?

Ex: It again depends on the business and the down time accepted.

Can we have a shared instance on the same machine?

Ex: Decide can business allow us to have more than one instance on a same machine or not

Is that instance is under organization security policy?

Ex: Get clarity if any special permission required as per the business requirement

What exactly basic maintenance required for the new instance?

Ex: Apart from basic maintenance any data feed jobs required etc

What is the cost estimation?

Ex: It’s not a DBA role to decide on cost and license, but still a DBA should know about this as he / she has to suggest the team for a better available choice. Work and give the accurate Time estimation.

A DBA should know answers for all these questions to build an optimized and secure instance.

SQL Developer / Designer:

Now we’ll see what a SQL Developer should know before starting a task. Let’s assume that your manager asked you to create a table and create a stored procedure to insert data. You should be able to answer below questions:

Check if it can be normalized

Ex: Figure out the Key column and make sure all columns are fully dependent on key column. There are some areas where we need not bother about normalization. For example when a table is too small but the table is expected to participate in joins with the tables which are huge. In that case we’ll get the performance gain if we do not normalize this small table. This is just an example we have to predict the table usage in your environment and design it accordingly.

Check any partitions required?

Ex: If that table is going to hold millions of rows and already other tables portioned check with your manager if it needs to be portioned.

Follow the correct naming conventions:

Ex: Always use the schema name with object name. If we do not use a schema name, db engine first search the default schema for this object. Do not use reserved key words.

Use the correct data type for columns

Ex: Always choose the right data type for a column. We have to consider below while assigning a datatype

Data Range – Minimum and Maximum expected values

Data Length – Fixed or Variable

Null value acceptance – Depends on business requirement

Domain value acceptance – Check your requirement document

Determine the null acceptability

Ex: Correctly define the NULL acceptability in a Table. We should predict the future when we are designing NULLABLE columns. Let’s say we have designed a column with CHAR(10) NULL. Can you imagine if the table is having 25 Million Rows and in this column filled for 10 K rows only? Now let’s see how the space is occupied for this column. Total space for this column (25 Million – 10 K ) X 10 Bytes. In that situation we can consider creating other table with Primary Key from this table and this column. Now we can save the space. This is just an example to say that we need to predict / estimate the future while creating any single object in database.

Decide on table usage

Ex: Determine the security level; see if we need to create a view with limited columns

Choose the correct key column

Ex: Follow best practices in choosing key column, usually it should be a numeric.

Determine the index possibilities

Ex: Choose a correct index when it needs to be created.

Choose the right constraints

Ex: Always choose the correct constraint. On employee table there is constraint on Age (>22). This can be implemented using CHECK Constraint and TRIGGER as well. But CHECK is the right constraint here.

Are you following any template for writing procedures?

Ex: Define a master template based on your business requirement and follow the template across the database.

Any specific SET options we need to use?

Ex: Based on your environment enable all SET options. Ex: SET NOCOUNT ON

Any chances that your procedure execution will result into a Deadlock?

Ex: If yes, take the steps to prevent deadlocks.

How you are going to handle errors?

Ex: Are you using any centralized table to capture error information? If not start a framework that suits your environment.

How we are handling datasets inside procedure?

Ex: Choose the best available object based on the requirement and the size of data. Temp Table, Table Variable, CTE, Derived Table etc.

What is the acceptable maximum response time for stored procedure?

Ex: Have you defined maximum response time in your environment, if not determine it and tune all objects which are not under the defined time.

What is the default ISOLATION level as per the business requirement?

Ex: Decide what ISOLATION level your business required.

Are you closing/de-allocating all blocks, temp objects and transaction in procedure?

Ex: It’s always a best practice that deleting / closing temp objects and loops.

These are the various questions for which a Database Developer should know the answers before starting the task.

It is not easy to consider all these aspects when every time you are assigned to a task. An Enterprise practice is designing a template and follow the temple in getting requirements and implementation.

udayarumilli_howtobecomeexpert_5Accurate Estimations

The most common question that you here from your reporting manager / Client is “How long will you take to get it done?”. Here comes the time estimates, this is also a key area which tells about you whether you are an Expert or just an Experienced. Below are the points that you should consider before giving the time estimation for any task / project.

Do you have the Exact Requirement?

Ex: You should have clarity on what is exactly the expected output.

Do you have all required Inputs?

Ex: Once you know answer for the above point then list out all required inputs to finish your task that includes “GAP Analysis in requirement”, “Resources Required” etc. It always depends on the task and the environment.

Do you have priorities with you?

Ex: First break down your task into small chunks and then give the estimates for each task. It calculates the final cost estimation for the complete task. Once you do that prioritize the tasks and do finish the tasks with high priority. It all depends on the criticality of the task and environment.

Always Expect a Delay:

Ex: Make sure you are including some extra buffer time when giving estimates. Below points will give us why we should need buffer time:

  • Expect a meeting or discussion
  • If any unexpected issues comes in
  • Resource and Infrastructure availability

Review the progress:

Ex: Review the task progress and give updates to the customer / task owner periodically. We can put some extra effort if you observe any differences.

Note: Accuracy in cost estimation comes from your experience. Do maintain a template for giving cost estimations thereof accuracy comes when giving estimations for the similar tasks.

udayarumilli_howtobecomeexpert_6Never React always Respond

One of my senior managers taught me how to habituate this. One should think of three points when something wrong happens in your environment.

  • Humans do Mistakes – Think of a situation where you did a mistake
  • We can’t control the past
  • What is the solution?

To be successful in your career this is the first point you should remember “Never React Always Respond”. This is not easy as I said; there is a simple technique to habituate this: ”Separate the Person from the Problem”. Do not blame / point out a person who did a mistake as it doesn’t take you towards the solution. First separate the person from the problem, and then start asking questions to find the possible solutions. Ok, now let’s see some examples as below.

Ex: One of your team members accidentally deleted a Table from production instance and he didn’t notice it until customer complaining that they are getting errors in their application side. How do you deal with this?

“Why did you run that command, I have told you lot many times……etc” will increase the problem density and situation becomes more complex.

Do not concentrate on “WHY” or the person who did the mistake?

Start thinking towards the solution:

“Is there any way that we can stop /rollback that command?”

“Is that happened during implementation of any specific request?”

“If Yes! Did you take any backup or snapshot before running the script?”

“Can someone be able to quickly get the table data into a temp table from the latest bkp?”

“What kind of data, is that a static or transnational data table?”

“If it is static / lookup can we get it from other similar environment?”

Instead of reacting if you start asking questions towards the solution, people around you will start thinking in a positive way and they too work on the same goal.

You can take the proper action once the solution provided and situation comes to normal. Ask your people to provide a complete report with a detailed RCA. And then you can take the proper action to prevent such kind of mistakes in future.

udayarumilli_howtobecomeexpert_7Keep your own best practices and Troubleshooting guide

Maintain your own document / guide, create a template in documenting problems. Whenever you come across with a problem note it down along with the possible solutions and the actual solution worked out for the current situation. You can save your time and energy if the same problem comes again. A personalized knowledge / troubling shooting guide made by an expert can create wonders and can be a reference guide for the next generation DBA / DB Developer.

udayarumilli_howtobecomeexpert_8Training, Learning and Knowledge Sharing

Irrespective of the role that you are working on you should go through some training on monthly / Quarterly / Yearly basis. Learning and training’s should include below.

  • Latest Technology (SQL Server 2014, Oracle 12c, Big Data Platform, Cloud Technologies)
  • Process Oriented (Six Sigma, Information Security, Agile)
  • Personality Development
  • Communication

Do share your knowledge, if you are too busy to share things you can choose a way from which suits your role and environment.

  • Create a blog / website
  • Participate in Technology Forums
  • Attend the local Tech-Eds
  • Share Key Data Points using e-Mail

 

Finally: Identify your strength and choose a career path which most suits to you, you love it, you enjoy it, automatically dedication comes in, output is the best productivity, Expertise in your path, you grow, let your organization grow, best opportunities comes to you , reach your goal. Maintain a well-balanced life between Personal & Professional lives, have a lot’s of beautiful moments, earn more, save more, serve something. Wishing you all the very best for your career.

Posted in Database Design, Miscellaneous, MSBI, Performance Tuning, SQL Development, SQL Server DBA | Tagged , , , , , , , , , , , , , , , , , , , | 32 Comments

Upgrade to Windows 10 For Free

udayarumilli_windos10_upgrade_2udayarumilli_windos10_upgrade_3.jpg.part

Upgrade to Windows 10 For Free

Haaaaaay Just my PC got upgraded to Windows 10…….

How I have upgraded?

  • Got a Notification a week back
  • Logged into Microsoft account to reserve Windows 10
  • It checked my PC compatibility and reserved the version upgrade.
  • Again a Notification “Will notify once it is ready”
  • Today in the morning it started downloading
  • After the download I confirmed the upgrade and it started installing
  • It took 35 min to finish everything
  • My PC has upgraded to Windows 10

What are all the features I loved in Windows 10?

  • First time a windows version is free for all Non Enterprise users
  • The overall look and the colorful desktop
  • Finally the customized Start Menu
  • No more IE Now it’s Edge
  • Most beautiful thing is “Performance Improved”
  • Now it’s easy and handy to change settings

Instructions:http://www.microsoft.com/en-us/windows/windows-10-upgrade

Posted in Miscellaneous | Tagged , , , | 5 Comments

Database Career Paths

Database Career Paths

udayarumilli_db_career_path

As a blogger I usually get in touch with the followers to discuss on various databases related issues. If I need to give rating to the questions that I answered, Top 1 will be “How to become a successful Database Admin / Developer?” I tried my best in answering them. Now I thought of making it as a blog post which can be helpful for others as well.

If you are interested in database systems and want to make your career in database path, first you should get clarity on “DATABASE ROLES”

There are three basic paths available to make your career in database systems. Below are the 3 paths.

Database Designing & Development:

Database Designers and Developers design and develop a database to hold and process data to support a front-end application which enable end users to do transactions online.

Database Administration:

Database Administrators maintain the designed / developed systems to prevent the interruptions during the transactions.

Data Warehousing:

Data Warehouse teams analyze the captured data and process it to find out the area where the business can be extended or improved.

First let’s have a look on what are the various roles available in each path.

Database Environment Roles

Database Designing & Development:

  • Database Architect
  • Data Modeler
  • Database Designer
  • Database Developer / Engineer

Database Administration:

  • Application / Development DBA
  • Core DBA

Data Warehousing:

  • ETL Developer
  • Database Analyst
  • Report Developer
  • Data Scientist
  • + Roles under Database Design and Development may also applies to this category

Now you have some idea what are the roles available. Now we’ll look into each role and its responsibilities. If you get a chance to choose, select the right path that suits your interest. Hope the below points help you out in choosing the right path.

Database Designing and Development

udayarumilli_Database_Development

Nature:

They do architect, design and develop database systems that support On-Line Transaction (OLTP) Processing and On-Line Analytical Processing (OLAP). Most of the environments follow one of these frameworks “SDLC” or “AGILE”.

Database Architect (Business + Structure + Data + Operations):

Plan and execute the entire project and should have knowledge on all phases (Business + Technology). He / She should be able to answer all the questions related to database system.

Ex: Analyzing client operations and customer requirements, mapping business requirements to technology, designing secure and optimized database systems.

Data Modeler (Business + Data + Structure):

Work on mass / raw data and give a structure to that. To simply say that he / she will act as a bridge between business and IT. Means they understand the data and convert business requirements into conceptual, logical and physical models that suit the requirement.

Ex: Separating data and operations, Identifying Entities and Relations etc

Database Designer (Data + Structure):

From the requirement analysis he / she should be able to design database by following best practices.

Ex: Designing Databases, Tables, Datatypes, Capacity Planning etc

Database Developer/ Engineer (Operations):

Based on the design developer / engineer develop database code to fulfill the actual business requirement.

Ex: Creating Procedures, Functions, Views etc

These People…………………………………….

  • Closely work with client / business team
  • More chances to work at onsite
  • More programming experience
  • Can be expertise on a particular domain which is an added advantage
  • Work is planned and mostly long term challenges
  • Can see experts in SQL programming and business functionality
  • Plays key role in building database systems

Database Administration

udayarumilli_dba

Nature:

They do maintain database systems to make sure databases / database servers are up and online by 24*7. Mostly DBA works in ITIL environments.

Application DBA:

Usually they work on Development, Test and Stag environments to support the database systems. Apart from database systems they should have knowledge on application configurations and business up to some extent.

Ex: Troubleshooting App-DB connectivity issues, Deploying Scripts, Debugging Scripts etc.

Core DBA:

Core DBA’s are who responsible for PRODUCTION database servers / databases.

Ex: Running Health Checks, High Availability, Troubleshooting issues, handles Service Requests, Problem Requests etc.

These People……………………………………………..

  • Closely work with end customers / users
  • Can be expertise in Technology Infrastructure field
  • Mostly work from offshore
  • Have to face unplanned outages
  • Mostly have to face the daily challenges
  • Most of DBA’s work in shifts
  • Usually do not have much knowledge on business functionality
  • Would see more experts in server and database internals
  • Plays key role in database maintenance

Data Warehousing

udayarumilli_Datawarehousing

Nature:

Deigning and creating a centralized repository and process the past trends to predict the future trends.

ETL Developer:

Design and develop an ETL (Extract Transfer Load) process to integrate data between various systems.

Ex: Developing SSIS packages to integrate data from legacy systems to SQL Server 2014.

Database Analyst:

Analyze the business requirements and confirms the project requirements. He / She analyze monitor data feeds and tune database systems when required.

Ex: Monitor test strategies to check they are matching with the requirements

Report Developer:

Design, create business reports that helps management to take the right decisions.

Ex: Creating sales reports using SSRS

Data Scientist:

The Data Scientist is responsible for designing and implementing processes and layouts for complex, large-scale data sets used for modeling, data mining, and research purposes.

These People:

  • Closely work with business team and architects
  • More chances to work at onsite
  • More analysis experience and having knowledge on business functionality
  • Can be expertise on a particular domain which is an added advantage
  • Work is planned and mostly long term challenges
  • Plays key role in decision making systems
  • Mostly work with OLAP systems.
  • Can see experts in data and business analysis
  • Work with huge datasets

Resource Utilization

Remember these roles and responsibilities vary based on organization policies, management and environment. If below are the various phases in designing and developing a database.

  • Requirement Gathering and Analysis
  • Conceptual Design
  • Logical Design
  • Physical Design
  • SQL Coding
  • Testing
  • Optimizing
  • Version Maintenance
  • Build
  • Deploy
  • Maintenance

Let’s see how resources allocated in different environments:

Enterprise Environment

  • Database Architect
  • Data Modeler
  • Database Designer
  • Database Developer
  • Build Engineer
  • Database tester
  • DBA

Mid-level Environment

  • Database Architect
  • Database Developer
  • DBA

Start-Up

  • Database Engineer
  • DBA

This is just an example how resource are utilized in various environments. It always depends on the business and budget.

Famous Database Systems

  • Oracle
  • Microsoft SQL Server
  • IBM DB2
  • My SQL
  • SAP Sybase ASE
  • Postgre SQL
  • Teradata
  • Informix
  • Ingres
  • MariaDB Enterprise
Posted in Database Design, Miscellaneous, MSBI, SQL Development, SQL Server DBA | Tagged , , , , | 13 Comments