Thursday, July 26, 2018


  • Zoom It: An on-screen magnifying glass which comes in handy for presentations and webinars

Wednesday, July 25, 2018

How to do Performance Review
300+ performance review phrases pdf ebook free download
• Has had a positive impact on the attitudes and performance of his fellow employees through his can-do approach to work 
• Is certain of her ability to get any job done and done right • Has yet to encounter a project that he can’t handle 
• Is always ready to jump in and get the job done • Seeks opportunities to show what she can do • Actively seeks the more challenging tasks • Rarely if ever says “I can’t” UNSATISFACTORY: • Has a “can’t-do” attitude • Is more likely to undo a project than do it • Says “no” before hearing all the facts 6

7. Positive review samples: 
• Peter always has such a positive mind-set. We are frequently pleasantly surprised by Ted’s posture during difficult times. 
• Peter frequently seems to have a positive outlook and we appreciate his stance on difficult decisions. 
• Peter’s attitude is one attribute which is positive.
 • Peter has a way of thinking about things that we appreciate. His willingness to share positive thoughts is refreshing. 
• Peter is quick to congratulate coworkers and builds an atmosphere of trust with his team. 

• Can be counted on to give 110 percent under all circumstances
• Keeps his commitments and works with fellow employees to help them keep theirs
• Automatically works extra hours if that’s what it takes to get the job done right FULLY COMPETENT: MEETS EXPECTATIONS
• Can be counted upon for steady performance
• Demonstrates consistently solid performance in all aspects of her work
• Handles projects conscientiously from start to finish
UNSATISFACTORY: CONSISTENTLY FAILS TO MEET EXPECTATIONS • Disappoints employees who depend on her • Makes promises that he doesn’t keep • Guarantees that deadlines will be met, but consistently misses them 10
Sam, thank you for contributions in 2012. I have rated you as <performance rating>.
You made positive contributions to building our next generation platform, hiring and leading the enablement team, and developing your skills in software engineering management. Well done! You did not deliver the new enablement engine on time, have not partnered successfully as we need to with the product team, and you need to continue to grow your presentation skills.
Project Alpha exceeded its goal of increasing the business by 3.5% in Europe. Several folks commented on this including examples such as “Thanks Sam for driving the European business, it’s been a pleasure partnering with you” and “You’ve really turned around the story in Portugal, you should feel proud”. It was exciting to see you delivering for Europe, particularly given the language complexities. In particular, it was good to see the successes in translation and price normalization. You also shipped some great work in North America (but missed the goal, that’s discussed later in this review).
Here’s another example:
You’ve made excellent progress on communication and meeting skills. We talked in our review last year about being more concise, letting others communicate, and letting others drive meetings. I can see great progress here – thanks for taking this feedback and working on it. People are noticing too: “I enjoyed working with Sam this year, he’s really developed into a solid communicator”.

We have had great discussions last year about updating the headcount spreadsheets in a timely fashion, and you reflected in your self-assessment that you’re not doing this. I’d suggest you focus on time management and prioritization — I will support you in developing these skills, including helping you find the right courses you can take. I expect that this is the last year we’ll be having this discussion, and that we will have solved this problem before our next review.
And one more:
I saw development in your ability to think strategically this year, but you can continue to grow in this area. A few people reflected in their feedback to me that you could have taken on more strategic initiatives, or ran with some of the more challenging problems that you saw.  In many of the meetings you’re in, you seeing technical problems that remain unsolved and that you could play a part in driving. You should focus on driving one or two strategic, significant changes this year.


  • Attempts to use logical reasoning in making decisions and solving problems.
  • Judgment is generally sound and reasonable.
  • Decisions are well thought out.
  • Effectively analyzes problems and formulates practical solutions.
  • Exhibits a high degree of decision Making ability.
  • Takes responsibility for consequences and decisions.
  • Finds unique ways to effectively resolve problems.
  • Promotes an atmosphere of mutual respect and cooperation.
  • Encourages and supports others.
  • Provides information, assistance and guidance to others to help them perform their responsibilities.
  • Volunteers and offers suggestions. Shows courtesy and respect.
  • Creates a climate for comfortable expression of ideas.
  • Develops and maintains smooth and effective working relationships with [co-workers], [supervisors], [subordinates] etc.
  • Uses positive methods of interactions with others.
  • Discusses and explains information with others effectively.
  • Produces accurate, well-presented and thorough written documents, records and reports.

Overall Performance

  • Exhibits an interest and attempts to improve performance.
  • Duties and responsibilities are regularly met and often exceeded.
  • Projects completed have made measurable improvements to the position and department.
  • Always strives for a high level of performance.
  • Duties and responsibilities are always met and exceeded.
  • Projects completed have provided a significant…
  • High level of performance achieved by few.


  • Volunteers for special assignments.
  • Willingly helps and assists others.
  • Anticipates needs and takes appropriate steps to meet those needs.
  • Accepts responsibility and performs responsibilities with limited supervision.
  • Willingly accepts direction and is open to new ideas.
  • Demonstrates willingness to learn and grow professionally.
  • Demonstrates independent thinking and a desire to seek additional challenges.
  • Can be counted upon to complete duties and responsibilities accurately and on-time.
  • Utilizes time well and sets appropriate priorities.
  • Follows through with plans.
  • Knows when to ask for help when work loads or critical work assignments demand it.
  • Accepts responsibility and new job assignments.

  • Knowledge and expertise is relied on by others.


  • Accepts change.
  • Understand the unit’s mission/vision.
  • Develops very good working relationships.
  • Always displays a cooperative attitude and shares knowledge.
  • Effectively adapts to change.
  • Displays a positive attitude towards the mission/vision.
  • Expresses the value of working as a team.
  • Seeks ways to share knowledge or mentor co-workers.
  • Embraces change and helps others to adapt.
  • Demonstrates a total commitment to the mission/vision.
Feedback is always constructive.
Too often blames others for problems.
Effectively communicates expectations and goals.
Effectively communicates personal concerns.
Needs to speak up more when faced with concerns.
Effectively highlights problems within the company and/or solutions to fix them.
Is unafraid to say, “I don’t know” when confronted with a tricky question or problem.
Manages meetings efficiently.
[Does not] return[s] communications in a timely manner.
Able to listen as effectively as talk.
Needs to work on listening to others.
Asks insightful and probing questions.
Able to empathize with others and is respectful of opposing viewpoints.
Constantly/never talks over others in meetings.

Empowers his/herself as well as others around him/her.
Makes new employees feel welcome.
Recognizes potential in others, and seeks to help them reach their potential.
Quick to lend a hand to others in need of help.
Shares expertise with others, to teach as well as achieve goals.
Excellent example of our company culture in action.
Struggles when faced with activities which require a high amount of flexibility.
Is resistant/open to change.
Enthusiastic about work and working with others.
Greater enthusiasm is needed.
Handles pressure well.
Avoids delivering bad news when necessary or leaves that responsibility to others.
Is sensitive and clear when delivering bad news.
Finds the positive in situations where perspective is required.
His/her enthusiasm for the work shines through and infects others around them.
An excellent example of our company culture.
Though results are good, [employee] could stand to work on improving his/her general attitude or enthusiasm.
Has a tendency to blame others for problems or poor results.

Attendance and Punctuality
Consistently meets all/most deadlines.
Is punctual for work and meetings.
Always arrives to work prepared.
Is not meeting current standards for punctuality and/or attendance.
Needs to work on time management.
Respects [or fails to respect] the time of others.
Is utilizing time effectively.
Needs to utilize given time more effectively.
Is a reliable performer and maintains a good schedule.

Leadership/Management Ability
Able to bring out the best out of those in the team.
Has established [or needs to establish] an effective system for communication and information retrieval.
Provides constant coaching and guidance to employees.
Open to listening to employees, as well as experimenting with new management techniques.
Empowers others to take initiative as well.
Shows sound judgement in critical decision making.
Avoids knee jerk reactions, and collects all relevant facts before making a decision.
Needs to know when to step back and let the team work.
Sets [too] high expectations for his/her team.
Rarely/often gives recognition to his/her team.
Creates an atmosphere in which creativity and innovation is both rewarded and encouraged.
Too often stifles innovation and creativity.

Developed [program/initiative] that delivered [x] results.
Improved output/production by [x]%.
Exceeded start of year goals by [number].
Thoroughly plans and prepares for the unexpected.
Provides consistent results that clients/customers can always count on.
Does not understand how to deal with difficult client/customer demands.
Deals with difficult client/customer demands in a way that leaves everyone satisfied.
Will never quit until a project is finished.
Is falling behind coworkers when it comes to producing results.

Actively seeks new ideas and approaches.
Excited and innovative when faced with unexpected obstacles.
Constantly searching for different and better ways to accomplish goals.
Has launched creative initiatives such as [specific example].
Creative in finding ways to correlate ideas with action.
Has become a constant well of fresh ideas.
Needs to find more ways to take creative risks.
Is [un]able to find more than one way to achieve a difficult task.
Has proven his/herself to be an innovator at heart.
Has a talent for thinking outside of the box, and encouraging others to do the same.
Consistently provides a new angle or way of thinking about things.
Can too often fall into the role of “naysayer.”
Needs to be more resourceful in accomplishing goals and tasks.

Has a strong vision for the future—both personally, and company wide.
Develops actionable goals and plans with which to meet them.
Implements plans swiftly and effectively, and able to tweak them when something is not working.
Works to promote the company’s mission and vision.
Contributes to the company’s larger goals.
Needs to set goals that are more challenging.
Constantly pursues opportunities for growth and learning.
When making goals, should strive to aim a little higher.
Might benefit from reigning in goals and vision to something more achievable.
Needs to work on making goals that more accurately match his/her talent level.

Learning/Growth/Technical Skills
Exhibits excellent proficiency in [relevant skill].
Able to grasp difficult technical concepts and explain them to others.
Tackles the intricacies of the job with ease and flair.
Needs to work on adapting better to new systems or technologies.
The first person we turn to when faced with a technical problem.
Continually searching for ways to improve.
Experiments with new means to improve skills and results.
Rarely/often makes careless errors.
Practices a great deal of care with the work.
Has good instincts and knows when to follow them.
Professional growth seems to have halted.
Has grown a lot since hiring, but still exhibits great potential for further growth.

Supervisory Skills

Supervisory skills are required for a manager to be successful in leading others. Therefore, you should appraise a manager's ability to leverage these skills in ways that positively affect business goals. For example, managers who bully employees negatively affect the morale of the victim and his coworkers, as well as the productivity of the company. For this reason, determine if a manager relies on coaching skills rather than intimidation to motivate workers. It's also important to consider if the manager sets appropriate goals, provides feedback and holds employees accountable in an equitable way by fairly enforcing rules.

Planning Skills

Identifying desired results and specifying the steps necessary to accomplish goals are essential to a company's success. Therefore, it's important for you to rate a manager on his ability to plan, organize and control employees’ work to meet your company's objectives. For example, a manager should excel in translating your expectations into action items that his direct reports can grab hold of and run with. Also important is the manager's understanding of your company's business plan, his ability to focus on performance and his talent for communicating this information through executable operational and tactical plans that align with corporate strategy. You should also consider a manager's ability to establish priorities, exert firm pressure to encourage employees to adhere to a plan and hold employees accountable for their contributions to the achievement of company goals.

Communication Skills

When a manager communicates effectively with an employee, the employee takes away information upon which he can act. For this reason, evaluate a manager's ability to provide feedback in specific terms. For example, consider if the manager communicates in an effective and timely manner that ensures team members do what is best for the company. Also, evaluate the manager's ability to communicate appropriate task-related information and explain how employee actions matter to the company. Equally important, consider how the manager deals with issues, relays information regarding problems and establishes productive relations with internal and external team members.

Leadership Skills

A manager must possess leadership skills to be effective. It's important, therefore, to evaluate a manager's ability to appropriately communicate and interact with others, outline expectations and provide direction to ensure employees’ work meets expectations. Also, consider if the manager is a leader who embraces your company's mission, establishes the right goals and creates a basis for tracking progress. It's equally important to evaluate if the manager demonstrates the ability to mobilize employees and resources along the right path and provide positive reinforcement. You should judge the manager's ability to relate to employees the tasks they must complete for your company's operations to be successful and his ability to inspire others to grow professionally.

Leadership skills

  • Delegation
  • Ownership and responsibility
  • Coaching
  • Decision-making
  • Delegation
  • Identifying and solving problems


  • Speaking and listening
  • Networking
  • Nonverbal communication
  • Energy and attitude
  • Ability to give and receive feedback

Interpersonal skills

  • Approachability
  • Ability to work in groups
  • Enthusiasm
  • Confidence
  • Empathy
  • Stress management

Organizational skills

  • Attention to detail
  • Time management
  • Project management
  • Thoroughness of financial reporting

Alignment with company goals

  • Embodiment of company values and mission
  • Strategic planning
  • Implementation of effective processes
  • Contribution to workplace community

Tuesday, July 24, 2018

Java Misc Part 6

Java 中,取反操作符用波浪线"~"表示。值得注意的是此操作符与"逻辑非(!)" 操作符不同,"逻辑非"并不是一个位操作。

移位是一个二元运算符,用来将一个二进制数中的每一位全部都向一个方向移动指定位,溢出的部分将被舍弃,而空缺的部分填入一定的值。在Java中,左移使用两个小于符号"<<"表示,右移使用两个大于符号">>"表示。">>" 右移,高位补符号位” 这里右移一位表示除2 ">>>" 无符号右移,高位补0”; 与>>类似。
0001 (十进制 1) << 3 (左移 3 位) = 1000 (十进制 8) 1010 (十进制 10) >> 2 (右移 2 位) = 0010 (十进制 2)
"user.dir"User working directory
"user.home"User home directory

If the dialog variable is a field of the outer class, you can use this prefixed with the outer class name (a qualified this):
send.setOnClickListener(new View.OnClickListener() 
    public void onClick(View v) {
       ProgressDialog dlg = OuterClass.this.dialog;
Alternatively, if the dialiog variable is a local variable it needs to be marked as final:
final ProgressDialog dialog = new ProgressDialog(this);
send.setOnClickListener(new View.OnClickListener() 
    public void onClick(View v) {
       // The dialog variable is in scope here ...
Make the outer local variable (dialogfinal so you can refer to it from the inner class.
If it's a local variable (like the signature suggests), it needs to be final for the inner class to be able to access it. If it's a member variable, the visibility modifier needs to be default (no modifier) or higher (protected or public). With private -modifier, it still works, but you might get a warning (depending on your compiler-settings):
Read access to enclosing field SomeClass.someField is emulated by a synthetic accessor method

import static mypackage.Test.MyEnum.*;
remove return statement from it. Final block is considered to be cleanup block, return is not generally expected in it.
The return from finally "overrides" further exception throwing.
Generally a finally block should never have a return statement because it would overwrite other return-statements or Exceptions.
final ReentrantLock lock = this.lock
但是如果采用将字段赋值给局部变量在使用,之后就不需要访问this指针,少了一步操作. 也就是说this对象和其他普通对象在函数没有任何区别
 If, a BufferedInputStream from the keyboard, is closed, as happens when the Scanner object is closed, you are closing a System stream that cannot be re-opened. The program must be exited and then re-run to re-establish
By default, on 64-bit servers, the JVM will set a maximum heap size of up to 1/4th of physical memory. This really isn’t helpful in a containerised environment as you often have a host with significant amounts of memory that could run many JVMs. If you run 10 JVMs in different containers and they each end up using ¼ of the RAM then you overcommit the machines’ RAM and potentially end up hitting swap - causing sad times for your users.

It also nullifies one of the advantages of containerisation, that the container image built and tested will perform the same in production. An image could easily work fine in a staging environment on a smaller physical host but then on a larger host in production could exceed any memory limit for the container and get killed by the kernel.

The primary mechanism for isolating containers on Linux is via Control Groups (cgroups), these allow for (amongst other things) limiting resources to a group of processes. With Java 10 the JVM will now read memory limits and usage from the container’s cgroup and use this to initialise maximum memory, removing the need for any of these workarounds.

As of Java 8u131 and Java 9, the JVM could understand and utilise cpusets for sizing available processors while Java 10 brings support for CPU shares.

All processes in on mainstream Operating Systems have a unique identifier, the PID. Linux also has the concept of PID namespaces where two processes in different namespaces can share the same PID. Namespaces can also be nested and this functionality is used to isolate processes inside a container.

The complication for the attach mechanism is that the JVM inside of the container currently has no concept of its PID outside the container. Java 10 fixes this by the JVM inside the container finding its PID in the root namespace and using this to watch for a JVM attachment.
Not only is it moving Java to a six-months release train, it is now likely that users will have to make each jump immediately if they want to keep getting free updates. That’s right, Oracle will no longer be providing free long-term support.
Every major release $X will see two public updates $X.0.1 one month after release (e.g. Java 10.0.1 in April) and $X.0.2 three more months down the road (e.g. Java 10.0.2 in July). Then it's just two more months to the next feature release.
[The] intent is that within a few releases there should be no technical differences between OpenJDK builds and Oracle JDK binaries.
Java 8 introduced the removeIf() method to the Collection interface. This means that if we are working with it, we can use ideas of functional programming to achieve the same results again:
List<Integer> integers = newArrayList(1, 2, 3);
integers.removeIf(i -> i == 2);
assertThat(integers).containsExactly(1, 3);
2. Triggering a ConcurrentModificationException
    List<Integer> integers = newArrayList(1, 2, 3);
    for (Integer integer : integers) {

Detect Java Pause
You can use management bean notifications and subscribe to GARBAGE_COLLECTION_NOTIFICATION events which in turn provide GcInfo objects with the stats you want.
When we extend an interface that contains a default method, we can perform following,
  • Redeclare default method as abstract, which force subclass to override it.
    Files.createSymbolicLink(newLink, target);
    Files.createLink(newLink, existingFile);
boolean isSymbolicLink =
    System.out.format("Target of link" +
        " '%s' is '%s'%n", link,

NoClassDefFoundError in Java due to Exception in Static Initializer block

This is another common reason of java.lang.NoClassDefFoundError, when your class performs some static initialization in a static block like many Singleton classes initialized itself on the static block  to take advantage of thread-safety provided by JVM during the class initialization process, and if static block throws an Exception, the class which is referring to this class will get NoclassDefFoundError in Java. If you look at your log file you should watch for any java.lang.ExceptionInInitializerError because that could trigger java.lang.NoClassDefFoundError: Could not initialize class on other places.

If you look at your log file you should watch for any java.lang.ExceptionInInitializerError because that could trigger java.lang.NoClassDefFoundError: Could not initialize class on other places. Like in below code example, During class loading and initialization User class are throwing Exception from static initializer block, which trigger ExceptionInInitializerError during first time loading of User class in response to new User() call. Later rest of new User() are failing as java.lang.NoClassDefFoundError. the situation gets worst if original ExceptionInInitializerError, which is root cause here is silently eaten by any code.

5) Since NoClassDefFoundError is an  also a LinkageError which arises due to dependency on some other class, you can also get java.lang.NoClassDefFoundError if your program is dependent on native library and the corresponding DLL is not there. Remember this can also trigger java.lang.UnsatisfiedLinkError: no dll in java.library.path Exception JavaIn order to solve this keep your dll along with JAR.

4) Check for java.lang.ExceptionInInitializerError in your log file. NoClassDefFoundError due to the failure of static initialization is quite common.

2) ClassNotFoundException is a checked Exception derived directly from java.lang.Exception class and you need to provide explicit handling for it while NoClassDefFoundError is an Error derived from LinkageError.

3) If you are using ClassLoader in Java and have two class loaders then if a ClassLoader tries to access a class which is loaded by another classloader will result in ClassNoFoundException.

4) ClassNotFoundException comes up when there is an explicit loading of class is involved by providing name of class at runtime using ClassLoader.loadClass()Class.forName(),  while NoClassDefFoundError is a result of implicit loading of class because of a method call from that class or any variable access.


Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts