• Skip to main content
  • Skip to footer

InRhythm

Your partners in accelerated digital transformation

  • Who We Are
  • Our Work
  • Practices & Products
  • Learning & Growth
  • Culture & Careers
  • Blog
  • Contact Us

Thomas King

Apr 18 2019

On Communication

As engineers, we’re generally focused on filling our personal skillset with all sorts of technical abilities—new languages, methodologies, and competencies that help us improve the quality and efficiency of our work. I’ve found, however, that I’ve overlooked the important soft skills that are just as instrumental in furthering my career and improving my experience in the workplace. One of these is effective communication; in most job roles our day is filled with interpersonal interactions, and navigating those interactions is a crucial skill to master. While it’s easy to overlook soft skills, taking the time to focus on them can drastically alter the course of a career.

On Making Friends

It’s much easier to communicate with someone when you’re on friendly terms; conversations tend to go smoothly when all parties are comfortable around each other. Building friendly relationships with your colleagues will not only improve your communication abilities but also makes work easier and more fun.

The first step is, of course, to be genuinely interested in friendship—people like people that are interested in them. Show that you care about your colleagues and their interests, and it’s exceedingly likely those feelings will be reciprocated. Always greet people with eagerness and enthusiasm, and find commonalities in your interests in and out of the workplace to build rapport. Everyone wants to feel important, and we tend to see ourselves as the center of our own universe. Your interest and sincere attention go a long way.

Smile often. Maintain a positive attitude. These may seem obvious, but mindfulness is essential in our interactions with others, and good communication involves an understanding of how we may come across to others. How you express yourself is an important part of your appearance, and a simple, sincere smile can brighten someone’s day. Refer to people by name in communication; people respond well to the sound of their own name, so using it frequently (but not excessively) is a powerful tool for communication and recognizes someone’s individuality.

Listening is far more effective than talking when building relationships. People view good listeners as excellent conversationalists. Most are far more interested in themselves than they are in other people, so remember to focus conversations on the interest of the other person. Sit back, listen, and ask questions about their interests and their lives.

Be compassionate and honest in your interactions. The flip side of taking ownership in your job is to also understand the people you interact with rather than defaulting to criticism. Give sincere appreciation, and recognize others for their individual strengths rather than zeroing in on what you perceive to be their weaknesses. This will improve your interactions, but will also improve how you perceive others; in turn, this can positively impact how others perceive you.

On Persuasion

Once we build positive relationships and good habits into our communications, it also becomes much easier to be convincing and compelling. People are more receptive to receiving advice from friends versus strangers (or worse, enemies). Friendliness is more powerful than fury and force.

Never enter into conflict with the goal of “winning.” Respectful conflict is achievable, but outright arguing can sabotage everyone’s efforts, and telling people they are wrong will generally just make them dig their heels in and resist outright. It’s important to recognize that our own perspective can ultimately prove to be wrong, and even more important to admit as much when it happens. Take the advice of others into consideration and help them come to the correct decisions on their own. We must cultivate in others a drive to do something; try to see things from the other person’s point of view, and talk to them in terms of how they will benefit.

Building discussions by starting on common ground is a great way to get things started. Whereas arguing can get the other person on the defensive, beginning with agreement can make them more receptive to your idea—this was the method of Socrates. Drama can also help to sell your ideas. Facts and data can sometimes be boring and dry; while accuracy is important, adding passion and affectation to your speech can bolster your case.

A challenge is another great way to persuade. If you throw down the gauntlet, people will generally respond by accepting the challenge. Setting lofty goals for others or having them compete is a great way to motivate others to high levels of achievement.

On Leadership

Being an effective leader is a constant effort in persuading others on the merits of your vision. In this sense, creating a foundation and building communications skills prepares and empowers you to be a better leader when the opportunity presents itself.

When discussing the mistakes of others, begin with praise. Start the conversation off with a discussion about something that they did well; then, bring the mistake up indirectly. By making someone aware of their mistake without directly attacking them, you avoid damaging egos, which creates the dissonance that causes people to dig into their position or act rashly. Bringing up your own mistakes can also make criticism sting less. Lastly, make the mistake seem like an easily solvable thing. People can become easily overwhelmed if they believe they have caused a large, intractable problem.

Offer frequent rewards and praise others, even for minor improvements. Build, through public feedback, a positive reputation for your employees to maintain and live up to. If someone is thought of positively, they will not want to lose that standing.


Improving communication will not only make your working life better but will also pay dividends in your personal life. These techniques are instrumental in improving and building relationships of all kinds, in and out of the workplace. Good communication skills will follow you for the rest of your life even as technology moves on and your job description changes. Whatever you’re doing now or in the future will almost certainly require connecting with others, effective communication will help you excel in the workplace and achieve your goals in a positive, collaborative way.

Written by Thomas King · Categorized: InRhythm News

Oct 08 2018

GraphQL: The API Query Language


Overview

GraphQL is an API query language used to obtain data from a server. It serves a similar purpose to a RESTful API, but with some distinct advantages.

The first advantage is that the you will only receive the data that you request. Part of the payload of a GraphQL request is the list of fields to return. This can help reduce load time for a request by only including the data that the consumer needs.

Another advantage of GraphQL is that you can get all the data you need in a single request. By defining the data you want from related fields, you can get all that data you need from those in one API call.

You can also very simply update the API without versioning. Adding new data to your endpoint will not cause any issues as the client will still only receive the data requested.

You can also use GraphiQL to test and document your API.

Example

Creating and consuming a GraphQL API is very simple. Let’s briefly go through setting up the server and then creating a simple client. In this article, we will be using Apollo and Node.js for the server, but GraphQL libraries are available in many languages.

First we need to define our data. We do this in GraphQL by defining type`s. Let’s consider a simple contact model:

type Contact {
name: String!
email: String!
}

This tells GraphQL that we have a type that is Contact that will include two strings, name and email. The next thing we need to do is define our queries:

type Query {
contacts: [Contact]
contact(name:String!): Contact
}

In this case we have two different queries. The first will return a list of Contacts and the other will return one Contact identified by the required name parameter.

Third we can define any Mutations that will allow for any changing of the data:

type Mutation {
addContact(name:String!, email:String!): Contact
}

The last step here is letting GraphQL know how to resolve these queries and mutations. To do this we will define resolvers:

var contacts = [
{name: "Test User", email: "test@user.com"},
{name: "Other User", email: "other@user.com"}
];
const resolvers = {
Query: {
contacts: () => contacts,
contact: (_, { name }) => contacts.find((c) => c.name === name)
},
Mutation: {
addContact: (_, { name, email }) => {
newContact = {name: name, email: email};
contacts.push(newContact);
return newContact;
}
}
};

Now all that is left is to hook it up. This depends on your exact setup, so I won’t go into detail. here.

Client

Creating a client to consume your new GraphQL endpoint is very simple.

Let’s create some GraphQL queries:

{
contacts{
name
email
}
}
query Contact($name:String!){
contact(name: $name){
name
email
}
}

Mutations will look something like this:

mutation addContact($name:String!, $email:String!) {
addContact(name: $name, email: $email) {
name
email
}
}

You can find a simple version of this application here: https://github.com/thomascking/graphql

More information: https://graphql.org/ https://www.apollographql.com/ https://www.robinwieruch.de/graphql-apollo-server-tutorial/

 

Written by Thomas King · Categorized: InRhythm News, Software Engineering

Footer

Interested in learning more?
Connect with Us
InRhythm

140 Broadway
Suite 2270
New York, NY 10005

1 800 683 7813
get@inrhythm.com

Copyright © 2022 · InRhythm on Genesis Framework · WordPress · Log in

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT