Hiring developers

Developer Testimonials

How to be a successful remote software engineer

This blog post covers how a developer can be recognized, find a remote job, and be successful working remotely. However, it’s important to understand what is in it for organizations hiring remote developers.

*Full Disclaimer: All the views expressed in the blog are solely my personal views and biased based on my personal experience. The best-practices, technologies, or benefits listed are no silver bullets. The article is focused on engineers in the web development space. 

Remote working is not a new concept but working remotely is gaining popularity during these times. Many organizations are forced to rethink how they work. Covid-19, has impacted every person in the world, but with the challenges the pandemic has created comes opportunity.

There has never been a better time to work remotely, especially for engineers. Many organizations have now turned remote-friendly, some have also started hiring developers from regions unheard of – the reason? Untapped potential!!

This blog post covers how a developer can be recognized, find a remote job, and be successful working remotely. However, it’s important to understand what is in it for organizations hiring remote developers.

Why organizations should hire remote developers

It would be unfair to say that organizations do NOT want to hire remote developers as they are bound by government laws which prevent them from going beyond their country to hire a person on their payroll. It’s only possible for large corporations.

Let’s first understand the benefits of hiring remote engineers. As an organization you can:

  • Hire engineers who have untapped potential – these engineers have high productivity and are eager to learn.
  • Hire engineers from countries with lower GDP – allows you to pay people less than you would if you hire local talent.
  • Add diversity to your company culture – allows sharing different ideas and perspectives that you did not have before.
  • Become a 24×7 company – by hiring engineers in varied timezones you can move faster and support customers globally.

Now that you understand why a company wants to hire you, let’s discuss why a developer would want to work remotely.

Why engineers should consider remote jobs

There are many benefits (and few drawbacks) of working as a remote engineer. 

  • Choose your hours – Since you work in a different timezone, you can choose the hours you want to work, though it’s important to have some overlap. (more on that later)
  • Work with people with diverse backgrounds – there is a different thing about people who are well-traveled, right? Why is that?
  • Get paid more than your peers – you can only earn what your industry pays you, what if you changed the local industry? 😉
  • Choose where you work– Home, Coworking office, Coffee Shop? It’s recommended though you have a consistent setup (again, later!)
  • Better work-life balance – Save time traveling, get more time off (remote organizations are usually flexible), be with your loved ones often.
  • Choose your own technologies – though it helps get better jobs depending on the tech you work with, organizations are looking for the skills you’ve developed to help them identify what you’d work on.
  • Immense growth – working with people globally brings a lot of different perspectives allowing you to 10x your growth.

Why would organizations consider you

We have established that organizations want remote engineers, now let’s look at why an organization would consider you? What do you need that makes an organization believe you are remote-friendly?

Open Source Contributions
Organizations want to look at the work you have done. 

  • It increases the credibility of your work
  • It shows that you love writing code
  • It gives them a glimpse into the code you write

Remote-friendly technologies
If you are looking to join a startup, most likely they use technologies that are popular right now. Having experience in current tech is a great way to get noticed. Some of these technologies are (but not limited to):

  • Javascript (Node and React)
  • GraphQL
  • Python (Django)
  • Kubernetes and other cloud devops experience is a huge plus

It usually helps to be able to work on both backend and frontend (Full-Stack), since it’s crucial to be self-driven in a remote environment.

Solid previous experience and profile
Organizations love when they find a person who is a great problem solver. Working on multiple projects and industries, at different roles, are usually indications that you will do well in their company. Companies will also check your Linkedin profile to understand you better. Having an updated profile and strong recommendations from previous employment can go a long way towards helping you find the right remote job.

Attitude
I saved the most important one for the last. Companies hire for attitude rather than skill. Skill can be learned, but attitude takes a long time to correct. Having the right attitude is the only way to get good remote jobs. 

So what do I mean by having the right attitude? 

Display a willingness to learn more about their company, show a genuine interest in the company’s industry and what it cares about. Read the company’s vision, its core values, culture, and apply only if these attributes excite you. It’s essential that you’re a quick learner so that you can developed the required skills to perform at the company.

How to find remote jobs

So, if you have what it takes to be a good remote engineer, the question is, how do you find a remote job that you love?

Apply to a company’s remote jobs (via portals or company website)

If you do a quick search on Google, you will see many platforms like WeWorkRemotely, remote.co, and others.

You can start by looking at the skill you want to target and applying on the posts (make sure you research the company before applying). You need to have a great cover letter. Cover letters are a great way to express why you are the best person for the job they posted. A strong cover letter makes you stand out as companies receive 100s of applications.

Which application do you think they are most likely to open first? The one with the cover letter! You can also search for companies which are remote-friendly and apply directly via their websites.

Freelance

Freelancing is also another way to get jobs. Freelance positions offer more flexibility and let you have a better work-life balance. Freelance work also gives you the chance to choose your hourly rate, but you may sacrifice job security, and you might also waste time hunting for your next gig.

Platforms like Turing, guru, Upwork, and freelancers are good places to find remote gigs.

Personal Connections

Twitter is a great place to build relationships with other fellow developers. These connections will help you find your next job. 60% of organizations hire people that are referred by the people already working in their companies. This means the more people you know in the industry, the better chance you will have to get a good job.

Turing.com 

Turing is a unique platform that bridges the gap between a freelance platform and a job portal. It is truly focused on the developer’s well-being, growth, and tools to be successful in working remotely.

Turing is different because:

  1. You do not have to hunt for jobs – Turing will understand your goals and find you a job that you want. 
  2. You get long term work – You will work with a real company as their team member. You get the benefits of the company you are working for under turing. 
  3. You still get the flexibility as you choose your own hours and your rate.
  4. Turing pays you on time – you do not have to follow up with your clients to get paid or depend on a rating system to get jobs. 
  5. Turing handles issues that may arise between you and the client. 

Turing gives developers peace of mind by allowing them to focus on their skills and their job instead of spending time doing administrative work that reduces their productivity.

Working Remotely

Getting a job is only the first step. There is a lot more that you need to do to be successful at your job. 

Communication
Being an effective communicator is the key to being successful at a remote job. Working remotely means you need to make extra efforts to communicate with your manager.

  • Have regular check-ins with your manager (weekly as well as monthly)
  • Have at least 3 hours of time overlap between yours and your team’s work hours. 
  • Make sure you and your manager(and your team) are always on the same page, and that expectations are clearly understood. 

Turing.com actually does a great job improving your communication with your manager. 

Self-driven
You need to be self-driven. The more you have to depend upon another person on the team, the more difficult it will get to be productive in your job. It certainly helps if you are a full-stack engineer, as this allows you to do both the frontend and the backend by yourself – if it is not possible then you must try to separate (but not isolate) your responsibilities.
The more time overlap you have with your team, the more flexible you can be with respect to separating your work responsibilities.

Setup
Having a decent office and workstation setup is very important. You cannot be productive at your work if you have “pebbles” on the race track you are trying to win.

  • Make sure you have a good (and consistent) place to work
  • Your environment should be distraction-free
  • Good camera and microphones to have calls with your team. 
  • A fast computer that can handle your daily workload

Trust
Remote teams are happy and do more if they trust each other. Here is a great article that would do justice to explaining how important trust is in a workplace. https://blog.doist.com/trust-remote-workplace/

With this, I wish you luck finding a great remote company to work at. It can be hard, but rewarding. I trust that turing.com can help you find the next job that you love. 🙂

By Oct 27, 2020
Developers Corner

Onboarding to a new team as an engineering leader

In this post, Jean Hsu of Range shares some guiding principles and practices that have been helpful to her in navigating this onboarding process as an engineering leader.

Editor’s Note: This is a guest post from Jean Hsu of Range.

I recently joined Range as their new VP of Engineering. Over the last few weeks, I’ve ended many days full of meetings feeling energized — grateful to work with this incredible group of humans. And to be honest, I’ve also ended days feeling depleted — feeling a bit bashful about basic questions and overwhelmed by all that I don’t know.

Although I’ve previously onboarded at big companies like Google and smaller startups like Medium and built onboarding programs for engineering teams, this is the first time I’ve onboarded to a team in over eight years. It’s also the first time I’ve been onboarded to a team while everyone is working remotely, not to mention in the middle of a pandemic, while my kids are distance learning from home! With those remote constraints and personal time constraints in mind, I wanted to be particularly intentional about how I spent the first few weeks.

In this post, I’ll share some guiding principles and practices that have been helpful to me in navigating this onboarding process. 

Use Structured Questions to Get to Know Individuals and the Team
One-on-ones are foundational in getting to know people as individuals. You will want to schedule recurring one-on-one meetings with people you work closely with — whether that’s direct reports, cross-functional leads, or your manager.

In your first or second one-on-ones with the team, ask a set of structured questions to guide the conversation. You can give people a heads-up that you’ll be doing so, so they know it won’t be the norm for all one-on-ones. These are the questions I asked everyone on the engineering team:

  • What’s going well at Range?
  • What’s been frustrating, or could be better?
  • If you could have your way, what one thing would you change?
  • What do you want to get out of your time at Range?
  • What support can the team or I provide?

Think of these questions as a broad invitation to share whatever they feel is important. There are few enough that there’s plenty of time to dig into the responses in a 45 minute or hour-long time frame. Delve deeper into each with open-ended follow-up questions like “What else?” and “Can you tell me more about that?”

Without a clear intention, over time, one-on-ones can settle into status updates or pleasant-but-not-too-meaningful chitchat.  By bringing up these topics at the start of a new work relationship, you let the other person know that the one-on-one space is one where these topics can be discussed. One-on-ones are the venue where you want to hear what’s going well, learn about any frustrations, discuss areas ripe for change, what your direct reports want professionally, and what support they need. 

Lean into Your Beginner’s Mind
When you’ve been on a team for years, working day-in and day-out in the same codebase and same team, you acclimate to small changes around you, like slowly increasing build times or that weekly meeting that doesn’t seem to have an agenda. Blindspots emerge that slow the team down significantly.

When you’re the newcomer to a team, you’re the only one with entirely fresh eyes. Take notes on what you notice. Are there product features that seem particularly delightful to you? Do you find any processes that feel needlessly painful? What about obvious gaps that feel important to fill?

It’s easy to tell yourself, “Oh, I’m new, so I’m sure they have a good reason for that. I’ll just keep my mouth shut and see if it all makes more sense in a few months.” It’s tempting not to want to rock the boat and not be the new engineering leader associated with complaints. Quite reasonably, you don’t want to be the person who chimes in at every meeting with, “Well, at Google, we did XYZ.”

To get around being the “problem messenger,” get buy-in upfront from other leaders with whom you work closely. Talk to them about what gaps you can fill in the leadership team, and discuss processes for you to leverage your “Beginner’s Mind” in this critical period to share observations and insights.

Absorb Information, and Let Go of Your Need to Know Everything
At Medium, the previous tech company I worked at, I joined before there was a Medium. I was there through the nascent ideation process, building out of the initial product and every single product iteration after that. 

At Range, I don’t have that in-depth knowledge to lean on.
Suppose you are, like me, joining a company as an engineering leader. In that case, you may be trying to absorb everything you can about the team, the individuals, the processes, the codebase, and the product. Piece together what you can — have conversations with engineers, designers, product people, sales, and marketing. Read relevant docs, and learn from the expertise others have on the team.

And know that you don’t need to have that full historical context to fill your role effectively. I also remember times at Medium when I had no context at all. Once, I helped DevOps scope out a plan for thwarting DDOS attacks, even though I had no prior meaningful knowledge concerning this issue. I scoped out and executed a successful multi-month API project, with little context as well. 

So absorb what you can to get up to speed and let go of your need to know everything. Ask questions when you have them, and ask for help when you get stuck. Trust that you’ll tap into your team’s expertise to get the information you need to lead teams and projects. 

Define Your Role
As you settle in and start to get a feel for the team’s needs, take some time to take a step back and define your role. It can be easy as the new person to help out everywhere as needed, but take the time to think about what you want the position to be — what do you want to be doing six months or a year into your job?

There will be parts of your role that are more concrete and non-negotiable, but engineering leadership roles often have a lot of room to choose your adventure. 

I love to write, so part of my role definition includes external-facing influence through writing blog posts and helping with other content for the product. Someone else may want to carve out time for regularly preparing and delivering talks or play a meaningful role in defining and iterating on team processes. 

When I’ve taken the time to clarify my role in this way, it helps to contextualize the day-to-day tasks and feel less scattered and reactive. It’s analogous to taking the time to define and communicate a team’s North Star and top priorities. Even if individuals are working on varied tasks, it’s essential to know how it ratchets up to the team’s focus — and that also helps individuals be mindful of when their work doesn’t contribute clearly to the team’s priorities. Similarly, taking the time to define my ideal role gives me clear intention and direction — so rather than feeling scattered or overwhelmed, I can see how the disparate parts of my job add up towards a role I aspire to fill.

Joining a new team as an engineering leader can be exhilarating, daunting, joyful, and overwhelming — sometimes all in the same day! You may be pulled in all directions before you even settle in. While you’re getting up-to-speed, remember to keep just a few priorities top-of-mind and communicate them clearly (even if they change every few weeks). I hope these principles and practices help you navigate this transition. 

About Jean:
Jean
 Hsu is the Vice President of Engineering at Range. Prior to Range, she built product and engineering teams at Google, Pulse, and Medium, and co-founded Co Leadership, a leadership development company for engineers and other tech leaders. She’s also a co-actively trained coach and has coached many engineers, tech leads, managers, PMs, VPs of Engineering, and CTOs. She loves to play ultimate frisbee (though not during pandemics), and lives in Berkeley with her partner and two kids.

About Range:
Crafting new ways for organizations, teams, and individuals to unlock their full potential

The team at Range believes that healthy companies aren’t simply better places to work, but do better work and will ultimately be more successful. But that’s easier said than done — it often seems the more humans an organization adds, the less human it becomes.

We think this can (must!) be fixed, and that by putting (awesome) team success software into people’s hands, they can build wellbeing, awareness, and performance into the fabric of work.

By Oct 26, 2020
Turing News

Turing’s Boundaryless Product Event – Fall Edition

Turing’s Boundaryless Product Event – Fall Edition Save the Date: Thursday, October 15th, 11 AM – 2 PM PT   (Join and/or RSVP here) This Thursday, Turing not only introduces you to exciting new product innovations, but also brings together top remote-work experts and advocates in the inaugural Turing Boundaryless Product Event. Over the course of… View Article

Turing’s Boundaryless Product Event – Fall Edition

Save the Date: Thursday, October 15th, 11 AM – 2 PM PT   (Join and/or RSVP here)

This Thursday, Turing not only introduces you to exciting new product innovations, but also brings together top remote-work experts and advocates in the inaugural Turing Boundaryless Product Event. Over the course of the virtual event, learn how remote-distributed teams can turbo-charge your development, increase your runway, reduce fixed costs, and make your company more attractive to investors. Additionally, the event will allow you to:

  • Hear from scaling experts that have built world-leading products with remote teams. 
  • See the latest product innovations from Turing, the company building AWS for talent. 
  • Learn about the Future of Work with Ting Cai, formerly of Microsoft and now, Senior Director at Google

Please join Turing CEO, Jonathan Siddharth as well as special guests:

Registration and access to the event is free of charge — please RSVP and/or join us here.


Schedule of events:

Turing Product Launch Demo (11am – 11:45am) by Turing CEO and Co-Founder Jonathan Siddharth

Have a first look at Turing’s exciting new product innovations. See how hiring and managing Silicon Valley-caliber engineers can now be faster and easier than ever before.

Panel Discussion: Scaling with Remote Teams (11:45am – 12:25pm)  — by Prakash Gupta with, Dennis Payonk, and Richard Hong

Hear from current customers about their experience building engineering teams on top of Turing. Learn remote work best practices, how to avoid common mistakes, and more.

Fireside Chat with Ting Cai of Google, Ashu Garg of Foundation Capital, and Turing Co-Founder and CEO, Jonathan Siddharth on the Future of Remote Work (12:30pm – 1:30pm)

Join Jonathan Siddharth, Turing’s CEO and Co-Founder, Ashu Garg of Foundation Capital, and Ting Cai, formerly of Microsoft and now, Senior Director at Google, in a lively discussion about the future of work, moderated by TechCrunch reporter, Ingrid Lunden.

Turing Developer Stories — Building Great Products while Changing Lives (1:30pm – 2pm)

See first-hand how Turing changes the course of developers’ lives worldwide while helping customers scale engineering teams quickly, even amid a global pandemic.

Register for free here

Jonathan Siddarth, CEO & Co-Founder, Turing

Prakash Gupta, Founding CRO, Turing

Ting Cai, Senior Director at Google

Ashu Garg, GP, Foundation Capital Ashu Garg, GP, Foundation Capital

Richard Hong, Co-Founder at Pangaea

Dennis Payonk, VP of Engineering at VillageMD

By Oct 12, 2020
Developers Corner

PART 2: UNDERSTANDING MySQL CLIENT / SERVER PROTOCOL USING PYTHON AND WIRESHARK

In this article we’ll learn how to write our own native MySQL client from scratch using no connector or external libraries.

In the previous article we researched MySQL Client / Server Protocol using WireShark. Now lets start to write our code in python to simulate MySQL native client. Final codes are here: Github repo

First of all we have to create MYSQL_PACKAGE class. MYSQL_PACKAGE class is the parent of all other package classes (HANDSHAKE_PACKAGE, LOGIN_PACKAGE, OK_PACKAGE and etc.)

It accepts resp parameter on initialization. Resp is the binary response received from the server in bytesarray type. One of the important and interesting method of this class is next method.

Method next reads a portion of the bytes from the binary response. When we call this method, it reads some portion of bytes and puts a pointer to the last position where reading ended (changes a value of self.start and self.end properties). When we call this method again, it starts to read bytes at the point it last stopped.
Method next accepts five parameters: length, type, byteorder, signed, and freeze. If freeze is True it reads some portion of bytes from the binary response but does not change pointer position. Otherwise it reads a portion of bytes with given length and changes the position of pointer. If length is None then method reads bytes until the end of response bytesarray. Parameter type can be int, str, and hex data types. Method next converts a portion of bytes into the appropriate datatype according to the value of type parameter.
Parameter byteorder determines the conversion of bytes to integer type. It is up to the architecture of your computer. If your machine is big-endian, then it stores bytes in memory from the big address to the little. If your machine is little-endian, then it stores bytes in memory from the little address to the big. Thats why we have to know the exact type of our architecture to be able to convert bytes to integer correctly. In my case, it is little-endian, that’s why i’ve set the default value of byteorder parameter to “little”.
Parameter signed is also used in conversion of bytes to integer. We tell the function to consider each integer as unsigned or signed.
A second interesting method of this class is encrypt_password. This method encrypts a password with the given algorithm.

This method accepts two parameters: salt and password. Parameter salt is the concatenation of two salt1 and salt2 strings from the Greeting Packet received from the server. And parameter password is the password string of mysql user.
In the official documentation password encryption algorithm is:
password_encrypt_algorithm
Here “20-bytes random data from server” is concatenation of salt1 and salt2 from the Greeting Packet received from server. To remember what the greeting packet is look at the previous article
Now I want to explain the encrypt_password method line by line.
bytes1 = sha1(password.encode(“utf-8”)).digest()
We are converting password string to bytes, then encrypting it with sha1 function and assigning to bytes1 variable. It is equal to this part of algorithm:
password_encrypt_algorithm1
Then we are converting salt string into bytes and assigning to the concat1 variable.
concat1 = salt.encode(‘utf-8’)
password_encrypt_algorithm5
Third line of the method is:
concat2 = sha1(sha1(password.encode(“utf-8”)).digest()).digest()
password_encrypt_algorithm2
Here we are double-encrypting password string with sha1 function and assign it to the concat2 string.
Now we have two concat1 and concat2 variables. We have to concatenate them into one byte array:
bytes2 = bytearray()
bytes2.extend(concat1)
bytes2.extend(concat2)
password_encrypt_algorithm6
Then we have to encrypt concatenated bytes with sha1 function and assign to the bytes2 variable.
bytes2 = sha1(bytes2).digest()
password_encrypt_algorithm3
So we have two variables with encrypted bytes: bytes1 and bytes2. Now we have to do bitwise XOR operation between these variables and return the obtained hash.
hash=bytearray(x ^ y for x, y in zip(bytes1, bytes2))
return hash
password_encrypt_algorithm4

CLASSES FOR DATATYPES

In the previous article we’ve learned about Int and String data types of MySQL Client / Server protocol. Now we need some classes to be able to read fields from received packets.

INT CLASS

Int class implements INT data type of MySQL Client / Server protocol. It accepts package parameter on initialization. Parameter package should be the instance of any package class inherited from MYSQL_PACKAGE class. Method next detects the type of integer (int<fix> or int<lenenc> (see previous article) and calls the next method of package object to read the byte portion of received response.

STR CLASS

Str class implements STRING data type of MySQL Client / Server protocol. It accepts package parameter on initialization. Parameter package should be the instance of any package class inherited from MYSQL_PACKAGE class. Method next detects the type of String (String<fix>, String<Var>, String<NULL>, String<EOF> or String<lenenc>. See previous article) and calls the next method of package object to read the byte portion of received response.

HANDSHAKE_PACKAGE CLASS

HANDSHAKE_PACKAGE class is used for parsing the Greeting Packet received from server. It is inherited from MYSQL_PACKAGE class and accepts resp parameter on initialization. Parameter resp is the Greeting Packet response in bytes type recieved from the server.

Method parse reading fields from the response using Int and Str classes and puts them into a dictionary and returns.

LOGIN_PACKAGE CLASS

This class is used for create Login Request packet.

This class accepts handshake parameter on initialization. Parameter handshake should be the instance of HANDSHAKE_PACKAGE class. In the __init__ method we call the parse method of handshake object and get all fields of the Greeting Packet received from the server.
Method create_package prepares the login request package to be able to send to the server for authentication. Accepts user, password and packet_number parameters.

OK_PACKAGE & ERR_PACKAGE CLASSES

OK package and ERR package are the response package of server after authentication or after sending query to server on command phase.

MYSQL CLASS

MYSQL class is the wrapper class which creates TCP connection with server, sends and receives packages from server using above classes.

I think everything is clear in this class. I’ve defined __enter__ and __exit__ to be able to use this class with “with” statement to automatically close TCP connection. In __enter__ method i’m creating TCP connection over socket. And in __exit__ method i’m closing created connection. This class accepts host, port, user and password parameters on initialization.
In the connect method we receive greeting packet from server:
resp = self.client.recv(65536)
return HANDSHAKE_PACKAGE(resp)
In the login method we create Login request package using LOGIN_PACKAGE and HANDSHAKE_PACKAGE classes and sends to the server and gets OK or ERR packages.
That’s all. We’ve implemented the connection phase. To avoid making this article too long I will not explain the command phase. Because the command phase is easier than the connection phase. You can research it yourself with the knowledge you’ve accumulated from this and previous articles.
Demo Video:

By Oct 9, 2020
Developers Corner

UNDERSTANDING MySQL CLIENT / SERVER PROTOCOL USING PYTHON AND WIRESHARK – PART 1

MySQL Client / Server protocol is used in many areas. For example: MySQL Connectors like ConnectorC, ConnectorJ and etc. MySQL proxy Between master and slave What is MySQL Client / Server protocol? MySQL Client / Server protocol is accepted conventions (rules). Through these rules client and server “talks” and understand each other. Client connects to… View Article

MySQL Client / Server protocol is used in many areas. For example:

  • MySQL Connectors like ConnectorC, ConnectorJ and etc.
  • MySQL proxy
  • Between master and slave

What is MySQL Client / Server protocol?

MySQL Client / Server protocol is accepted conventions (rules). Through these rules client and server “talks” and understand each other. Client connects to server through TCP connection with special socket, sends to server special packets and accepts them from server. There are two phases of this connection:

  • Connection phase
  • Command phase

Next illustration describes phases:

STRUCTURE OF PACKETS

Each packet consists of valuable data types. Maximum length of each packet can be 16MB. If the length of packet is more than 16MB, then it is separated into several chunks (16MB). First of all let’s see the protocol data types. MySQL Client / Server protocol has two data types:

  • Integer types
  • String types

(See the official documentation: https://dev.mysql.com/doc/internals/en/basic-types.html)

INTEGER TYPES

Integer types also separates into two section:

  • Fixed length integer types
  • Length-encoded integer types

Fixed length integer type consumes 1, 2, 3, 4, 6 or 8 bytes. For example if we want to describe number 2 in int<3> data type then we can write it like this in hex format: 02 00 00. Or if we want to describe number 2 in int<2> then we can write it like this in hex format: 02 00

Length-encoded integer types consumes 1, 3, 4 or 9 bytes. Before length-encoded integer types comes 1 byte. To detect the length of integer we have to check that first byte.

  • If the first byte is less than 0xfb ( < 251 ) then next one byte is valuable (it is stored as a 1-byte integer)
  • If the first byte is equal to 0xfc ( == 252 ) then it is stored as a 2-byte integer
  • If the first byte is equal to 0xfd ( == 253 ) then it is stored as a 3-byte integer
  • If the first byte is equal to 0xfe ( == 254 ) then it is stored as a 8-byte integer

But if the first byte is equal to 0xfb there is no need to read next bytes, it is equal to the NULL value of MySQL, and if equal to 0xff it means that it is undefined.

For example to convert fd 03 00 00 … into normal integer we have to read first byte and it is 0xfd. According to the above rules we have to read next 3 bytes and convert it into normal integer, and its value is 2 in decimal number system. So value of length-encoded integer data type is 2.

STRING TYPES

String types also separates into several sections.

  • String – Fixed-length string types. They have a known, hardcoded length
  • String – Null terminated string types. These strings end with 0x00 byte
  • String – Variable length string types. Before such strings comes fixed-length integer type. According to that integer we can calculate actual length of string
  • String – Length-encoded string types. Before such strings comes length-encoded integer type. According to that integer we can calculate actual length of string
  • String – If a string is the last component of a packet, its length can be calculated from the overall packet length minus the current position

SNIFF WITH WIRESHARK

Let’s start wireshark to sniff the network, filter MySQL packets by ip (in my case server ip is 54.235.111.67). Then let’s try to connect to MySQL server by MySQL native client on our local machine.

>> mysql -u[username] -p[password] -h[host ip] -P3306

As you can see after TCP connection to the server we several MySQL packets from the server. First of them is greeting packet.

picture1

Let’s dig into this packet and describe each field.

First 3 bytes are packet length:

picture2

Next 1 byte is packet number:

picture3

Rest of bytes are payload of Greeting packet of MySQL Client / Server protocol

picture4

Let’s describe each field of greeting packet.

  • Protocol number – Int<1>
  • Server version – String
  • Thread id – Int<4>
  • Salt1 – String
  • Server capabilities – Int<2>
  • Server language – Int<1>
  • Server Status – Int<2>
  • Extended Server Capabilities – Int<2>
  • Authentication plugin length – Int<1>
  • Reserved bytes – 10 bytes
  • Salt2 – String
  • Authentication plugin string – String

Server language is integer, next table will help us to pick appropriate language by integer value:

In my case server language is 0x08 (in decimal number system it is 8 also). From above table we can see that equivalent of 8 is latin1_swedish_ci. Now we know that default language of server is latin1_swedish_ci.

Server capabilities and server status are also integers. But reading each BIT of these integers we can know about server capabilities and status. Next illustration describes server capability and status bits:

Using greeting packet client prepares Login Request Packet to send to the server for authentication. Now let’s research login request packet.

picture5

  • First 3 bytes describes payload length
  • Next 1 byte is packet number
  • Client capabilities – Int<2> / Same as Server capabilities
  • Extended client capabilities – Int<2> / Same as Server extended capabilities
  • Max packet – Int<4> / describes the maximum length of packet
  • Charset – Int<1> / in my case it is 0x21 (in decimal number system is 33), from the table we can see that it is utf8_general_ci. We set server’s default charset from latin1_swedish_ci to utf8_general_ci
  • Username – String
  • Password – String
  • Client Auth Plugin string – String

As you can see password is encrypted. To encrypt a password we will use sha1, md5 algorithms, also salt1 and salt2 strings from previous Greeting Packet sent from server.

Then we get OK packet from the server if we are authenticated successfully. Otherwise we would get ERR packet.

picture6.png

  • 3 bytes are packet length
  • 1 byte is packet number
  • Affected rows – Int<1>
  • Server status – Int<2>
  • Warnings – Int<2>

That’s all. We have finished theory. Now it’s time to start practical part. On the second part of this article we will write our own MySQL native client from scratch using no external module or library

By Oct 2, 2020
Puzzle missing a piece
Developer Testimonials

Why I quit freelancing and joined Turing

If you’re sick of freelancing and want to take your career to the next level, check out Turing for remote software jobs. I did, and I’ll never freelance again

I had been freelancing for a few years, and let me tell you: being a freelancer is tough. It’s hard to get a gig, deadlines are tight, and getting paid is a continual challenge.

After exploring almost all the freelancing websites out there (Guru, UpWork, Freelancing.com), I found I had huge competition, was only able to secure low hourly rates, and ended up working with demanding customers that knew little or nothing about how a mobile app or a web app is done. This meant lots of headaches and compensation that didn’t account for the fact I frequently ended up being both the designer and the developer, for the price of one!

This used to drive me nuts!

When I realized that those places wouldn’t give me what I wanted – and deserved – I went ahead and started to look for some clients on my own. I built a fancy website, enhanced my LinkedIn profile, and started a blog, in the hopes that (fingers crossed!) I could find the jobs I needed.

What I didn’t know is that this was just half of it. I still needed to get paid for the jobs I delivered, and most people wouldn’t pay me until they thought their product was done, but their product was NEVER done because they wouldn’t stop adding new features, often while refusing to pay for the additional work.

In other words, I was working really hard but still struggling to make good money.

That was before I discovered Turing. I’ll be honest; it takes some time to pass their tests. And if you’re not a skilled developer, you’re going to find out that their qualification exams are no joke. But if you’re experienced and talented, you’ll find that the time you invest in getting qualified for Turing’s platform is well worth the time you spend upfront.

I’ve been working for Turing over the last year now, and I’ll never go back to the struggle of freelancing again.

At Turing, I got “matched” to an American tech company and started to work only two weeks after the interview process. I’m integrated with a team of really good (and professional) people who treat me fairly and are always happy to help and share their knowledge. The money is sent directly to my bank account and always on time! I know it almost sounds too good to be true, but it’s not. If you’re looking for a remote software job and good at front-end, back-end, full-stack, React, Node, Angular, Swift, Python, or any of the nearly 100 skills supported on Turing’s platform, you owe it to yourself to do what I did. Take their tests, get an interview, then start getting paid what you’re worth.

But don’t take my word for it. Visit https://turing.com/jobs and see it for yourself! Working at Turing is a life-changing experience, and I’m looking forward to meeting you here. 🙂

By Sep 28, 2020
Developers Corner

Things to know to get hired as a Turing Engineer

To help you out, we’ve reached out to some Turing engineers who passed Turing’s tests with exceptionally high marks and are now enjoying their time working with Silicon Valley companies. We asked them to share what they think is most important for a software engineer to know or do before applying to Turing.

If you’re reading this, you’re likely a software developer who is considering applying for Turing.com. You might have just learned about Turing a few minutes ago, or you might have already gotten past the teaser coding problem on Turing’s landing page, created a profile, and are now staring at an extensive list of Turing tests. Either way, you (most likely a high-achieving and high-aspiring software developer) are on the right track. The number of high-profile silicon valley companies that hire  remote software developers through Turing  is increasing each week, and more than 160,000 software developers have signed up for Turing in its first year alone. You’re smart to be jumping on this opportunity now! But, if you’re like most developers, some part of you is likely starting to wonder if you’re sufficiently prepared to dive into the application.

Even the most seasoned software developers can get anxious in the days or hours leading up to a technical interview. So, to help you out, we’ve reached out to some Turing engineers who passed Turing’s tests with exceptionally high marks and are now enjoying a remote software job with top US companies. We asked them to share what they think is most important for a software engineer to know or do before applying to Turing. We even asked the primary designer of the Turing Tests himself, Turing’s VP of Engineering, Zan Doan, (previously an Engineering Manager at Facebook) to give his thoughts. Here is what they said:

1) Sharpen your problem-solving skills

First and foremost, as in any silicon valley technical interview process, Turing engineers are expected to be expert problem solvers, able to manipulate data structures and common algorithms to solve a variety of problems while optimizing for speed and efficiency. Everaldo, a Turing engineer based in Curitiba, Brasil, gave the following advice:

 “Turing applicants should familiarize themselves with sites like HackerRank and Codewars, where they can sharpen their problem-solving skills. They should also study dynamic programming and Big O notation to understand techniques for coding challenges, since, if you implement a naive solution, it will get a lower score or might timeout if the solution is quadratic or exponential.”

Everaldo also recommended studying the well-known book “Cracking the Coding Interview” by Gayle McDowell. Not a bad idea considering one can always count on seeing a few Stanford CS students crouched over that “little green CS bible” in the Stanford dining halls during the interview season. Mastering the material there will put you in a position to get the same caliber jobs that many of those same Stanford students are pursuing!

2) Know your tech stacks

One thing that is relatively unique about Turing’s tests is that you have the opportunity to demonstrate mastery in an array of tech stacks with which you’re familiar. Whether you’re a Swift iOS developer, a MongoDB + React + Node.js full-stack developer, a Frontend developer with expertise in Flutter, a Python developer capable of scaling a Django backend, or anything else, you can find corresponding tests on Turing’s platform. Dhyey, a Turing engineer based in Ahmedabad, India, says, “Make sure to take and pass as many tech stack tests as possible. Proving you have a range of skills will make you eligible for multiple roles and increase your chances of getting hired.”

Doing well on these specific tech stack tests might require a little review before you jump into them. Zech, a Turing engineer, based in Addis Ababa, Ethiopia, recommends you do the following:

 “Take a little time to lightly review anything about that particular technology or language you’re not very familiar with because the tests tend to assess your knowledge about it from end to end. Of course, this doesn’t mean you should dive into a full-on ‘study for exam mode’ but just refresh your knowledge of a few things. If you’ve used a language/technology professionally for some time, you should pass the test without much problem.”

3) Showcase your technical experience

Investing time into filling out all the details of your profile and past experiences may be a hassle, but it will give you an edge over other vetted candidates. Dhyey emphasizes this point saying, “since the process is highly competitive and there is very little human interaction, it is very crucial for your profile to accurately reflect your ability for you to get picked over other vetted candidates.”

If that alone doesn’t convince you of the importance of highlighting your past accomplishments, projects, and experiences, this is the area that Zan Doan, the primary designer of the Turing Tests, also believes is most important. He says: 

“The word I would use to describe the best Turing developers is ‘hands-on.’ Turing jobs often require developers to adapt to a startup environment and make an impact quickly. Because of this, Turing tests not only ask the candidates questions about their general work experience but also hands-on questions about detailed implementations.”

Showcasing your ability to excel in a hands-on environment by taking care to describe your past technical experiences in your profile accurately will prime you for success on Turing.

4) Finally, prepare your workspace for success.

The Turing application process is similar to any technical interview, with the added caveat that the online tests (and later on, the possible interview) are all done remotely, meaning you’re in charge of preparing your space. 

On this point, Zech recommends, “make sure you’re in a relaxed environment with little to no distractions. You’ll need to have a working and stable internet connection, especially since you can’t retake an exam within three months in the event you fail.”

Similarly, if you qualify for an interview, Everaldo says, “it’s just like a regular interview: be ready, on time, dress code, be polite, and don’t be afraid to ask questions. Also, it helps to have a good setup for the interview. Have a strong Internet connection, headset, mic, and test the setup before the meeting.

And that’s about it! If you feel well-enough prepared in the above four areas, you should have no problem feeling confident clicking “start” to begin taking Turing’s tests or signing into a remote Turing interview. Silicon Valley opportunities are at your doorstep. The most beautiful thing about Turing’s application process is its hyper-focus on finding talent. We believe talent can be found anywhere and can be of all races and genders. And if, by chance, you’re not successful in your first shot at applying to Turing, a computer science education has become so democratized that we’re confident you can study up, come back, and succeed another day.  Remember, at Turing, we know that not only is talent universal, but opportunity as well.

Ready to get started? Apply to Turing’s remote software developer jobs now

By Sep 17, 2020
BoundarylessEnterprise

Learn how Turing helped Ohi Technologies hire Silicon Valley-caliber Remote Software Engineers

Ohi Technologies What does Ohi Technologies do? Ohi Technologies set out to build a 2-hour delivery platform for e-commerce companies utilizing smart warehouses and effective software solutions. What challenges did they face? Previously, hiring engineers at Ohi Technologies was a tedious process requiring a large pipeline of candidates. The amount of time and money spent… View Article

Ohi Technologies

What does Ohi Technologies do?

Ohi Technologies set out to build a 2-hour delivery platform for e-commerce companies utilizing smart warehouses and effective software solutions.

What challenges did they face?

Previously, hiring engineers at Ohi Technologies was a tedious process requiring a large pipeline of candidates. The amount of time and money spent on unsuccessful hires made the process costly and fraught with risk

In a prior role, VP of Engineering Nick Blanchet estimated it takes three months from start to finish to hire and onboard an engineer successfully. These challenges led Ohi Technologies to turn to Turing to fill their software development job vacancies. However, they initially felt that remote-distributed teams create other problems. Ohi was concerened having remote engineers would reduce transparency in productivity. Additionally, having a team of remote software developers would make it challenging to align time zones globally, and the overhead of performance management tracking and other HR responsibilities had the potential to slow them down. Not to mention that the overall cost of engineering in a highly competitive market was pricing them out.

How did Turing solve their problem?

Turing’s solution brought speed and efficiency to Ohi Technologies’ hiring process by providing pre-vetted and readily available engineers that could hit the ground running with minimal ramp-up.

“From the first call with Turing to hiring a team of three highly skilled software engineers that were able to start effectively handling tickets took less than one month.”

Additionally, Turing’s post-match product enabled their team to maintain productivity in a distributed team by providing visibility into their engineer’s daily activities. Turing also made collaboration and communication seamless by enforcing a required time zone overlap and daily updates. Turing’s approach to sourcing, vetting, and hiring remote engineering professionals globally at a very competitive cost enabled Ohi Technologies to find quality developers outside of high cost-of-living areas.

Results

Ohi Technologies was able to engage three Turing software engineers to scale their development quickly. The new hires enabled them to get their product to market rapidly and increase product demand and scalability. Ohi sees Turing as their long-term partner for building on-demand teams of engineers.

 

By Sep 9, 2020
Turing Announces $14 Million Seed Round
Turing News

Turing Announces $14 Million Seed Round led by Foundation Capital

Company will use the additional capital to accelerate the global shift to remote work Today marks a giant milestone in the history of Turing. The company is delighted to announce its oversubscribed seed round of $14 million. Turing is proud of the support we’ve received from top-tier VCs and prescient investors who share our belief… View Article

Company will use the additional capital to accelerate the global shift to remote work

Today marks a giant milestone in the history of Turing. The company is delighted to announce its oversubscribed seed round of $14 million. Turing is proud of the support we’ve received from top-tier VCs and prescient investors who share our belief that the future of work is boundaryless and that remote-distributed teams democratize opportunity for talented developers wherever they may live.

Investors in Turing’s seed round include Foundation Capital led by Ashu Garg, Adam D’Angelo, Facebook’s first CTO & CEO of Quora, Gokul Rajaram, Cyan Banister, Beerud Sheth, founder of Upwork, Jeff Morris Jr., as well as executives from Google, Facebook, Twitter, Microsoft and Amazon.

According to Turing CEO and Co-Founder, Jonathan Siddharth, “We were already growing fast prior to the coronavirus crisis. I think remote work is here to say. COVID has accelerated a shift that was already underway. We’ve seen a 5-year shift play out in the last 5 months. A lot of companies that want to go remote-first still face key obstacles on sourcing, vetting & managing remote developers. It’s really hard to find silicon valley caliber developers who are remote. It’s hard to evaluate developers who are remote. It can also be frustrating to communicate with remote developers across different timezones. Often the right kind of daily, weekly syncs don’t happen. It’s hard to manage performance. That’s why we built Turing. Turing is creating a new category of verticalized remote work in the cloud. It’s a cloud of developers, that’s sourced by software, vetted by software, matched by software and managed by software. It’s AWS for Talent. What if, you could “push a button” to hire and manage remote developers?” 

The company will use the additional capital to keep scaling the business, investing in continued automation, AI initiatives to source, vet and manage remote developers.

According to Ashu Garg, General Partner at Foundation Capital, “When the Indian outsourcing and IT revolution was in its infancy, I predicted that the market would grow 100X over the next decade. People thought I was crazy at the time and, in retrospect, my prediction seems like a gross underestimation. I feel the same way about Turing. We are creating a new category around remote and distributed work. The future of work is remote, and we’re just getting started.”

Turing’s Founding Story

Turing was founded based upon the idea that talent is universal while opportunities are not. The company’s mission is to find the best developers from all over the world and match them with companies building world-changing products. 

Turing is co-founded by Jonathan Siddharth and Vijay Krishan. The duo discovered the power of using remote teams to build a company during their last venture, Rover, which the two started while still attending Stanford. SaysTuring CTO, Vijay Krishnan, “The cost and challenge of competing with Google, Facebook, Apple, and other giant Silicon Valley companies led us to source highly skilled remote developers from around the world.  What we learned building a company with a fully distributed team convinced us that remote-distributed teams are the future of work.”

Their experience at Rover provided the skills and knowledge that made them the perfect team to launch Turing. Turing’s data science powered platform offers a vertically-integrated solution for companies to spin up engineering teams the same way AWS lets companies instantly add additional server capacity.

Looking towards the Future

Turing will create 1000 jobs for remote engineers by 2022. The goal of the business is to provide Silicon Valley caliber jobs to the top 1% of developers from all over the world, help businesses scale at the push of a button, and level the playing field for the world’s best developers. 

Turing’s founders believe that the future of tech is boundaryless. The company is powering the remote revolution by making it fast, simple, and cost-effective to add exceptional talent to any team, and then to monitor and manage your people no matter where they live.

About Turing:

Turing is an automated platform that lets companies “push a button” to hire and manage remote developers. Turing uses artificial intelligence and data science to source, vet, match, and manage remote developers from all over the world. Turing currently has 160K developers on our platform from almost every country in the world.

Turing’s mission is to help every remote-first tech company build boundaryless teams. Turing’s backers include Foundation Capital, Adam D’Angelo, Facebook’s first CTO & the current CEO of Quora, Gokul Rajaram, Cyan Banister, Jeff Morris, and executives from Google and Facebook. The Information, Entrepreneur, and other major publications have profiled Turing.

About Jonathan Siddharth, Co-Founder, CEO

Jonathan is the CEO  and Co-Founder of Turing.com. Before starting Turing, Jonathan was an Entrepreneur in Residence at Foundation Capital, following the successful sale of his previous AI company, Rover that focused on deep personalization of content recommendations. Jonathan received the best Masters Thesis Award in Computer Science at Stanford University where he specialized in Artificial Intelligence while building AI-enabled products. In his spare time, Jonathan likes helping early-stage entrepreneurs scale companies and tinkering with AI projects.

You can find him Jonathan @jonsidd on Twitter and [email protected] His LinkedIn is https://www.linkedin.com/in/jonsid/.

About Vijay Krishnan, Co-Founder, CTO

Vijay Krishnan is the Co-Founder & CTO of Turing.com. At Turing Vijay leads data science efforts that inform automation in vetting, matching, and managing remote developers. Before co-founding Turing, Vijay was an Entrepreneur in Residence at Foundation Capital following the successful sale of his last AI company, Rover, a business he co-founded while at Stanford. Before Rover, Vijay was a scientist at Yahoo’s Data Mining and Research group. His work led to patented methods to increase Yahoo’s large-scale text categorization accuracy with profound implications for search relevance, ad-matching, user, and content personalization efforts.  

Vijay has a master’s degree in computer science from Stanford University, specializing in AI. Vijay is recently married and lives in Palo Alto, California. You can find Vijay on Twitter and LinkedIn.

Media Contact  —   Oliver Starr, Head of Content    —   [email protected]    — 530-641-3999

By Sep 2, 2020
COVID-19

The Post-COVID-19 Workplace

Since the COVID-19 outbreak began in early spring of 2020, Few aspects of life have changed more than the workplace. A recent Stanford study reported that upwards of 42% of Americans are now working from home full-time (compared to just 7% pre-COVID-19).

Since the COVID-19 outbreak began in early spring of 2020, Few aspects of life have changed more than the workplace. A recent Stanford study reported that upwards of 42% of Americans are now working from home full-time (compared to just 7% pre-COVID-19).

Pressed suits and business trips have given way to Zoom calls made from the kitchen counter, and growing collections of drawstring pants. With more and more companies making increasingly long-term shifts to remote work, it leaves us wondering, what will the new ‘normal’ workplace entail?

Earlier this month, the BBC Visual and Data Journalism Team released a stunning rendition of a typical work day in the post-COVID-19 workplace. While many of their proposed changes to the workplace will come as obvious adaptations, some of their predictions may surprise you.

Architecture

The demand for large-scale office spaces is already dwindling, according to Hugh Pearman of the Royal Institute of British Architects. In their place, Pearman argues, will rise specially designed workplaces removed from bustling city centers.

Such workplaces will be smaller, and carefully designed to facilitate in-person meetings; which will likely only be held for collaboration and brainstorming with colleagues. Long-gone are the full work days of tapping away at a keyboard (you can do that from home).

“Touchless Technologies”

Additionally, new buildings will likely employ “touchless technologies” that take advantage of data science, face activation, and voice recognition. Furthermore, air conditioning may be equipped with UV lights to kill bacteria and viruses. Antimicrobial metals such as copper will be used in high-touch areas.

“The Shift Away from the City”

Pearman goes on to point to historical precedents of health concerns driving large scale infrastructure changes. It was concern of disease and air pollution in the late 19th and early 20th centuries that triggered population movements away from city centers into new and growing suburban areas.

“The Death of the City”, as a recent Politico article called it, blames COVID-19-induced telecommuting as the root cause of the urban flight taking place across the developed world. When employees realize they can work from anywhere, the lucky ones pick up and move for greener pastures.

“Making the Home Work”

With more people completing a greater portion of their jobs from home, the very idea of “home” is bound to shift as well. UK architect Grace Choi has already experienced these new demands, with more and more requests being made to incorporate home offices and work studios into new constructions.

According to Choi, “we’re all going to need to configure our space in a more intelligent way” as we adjust to a world of remote work structures.

We will all be adjusting in the months (and years) to come as we become hybrid workers – sometimes at home, sometimes at the office. One thing’s for sure however, remote work is here to stay.

By Aug 17, 2020
Hiring developers

With these companies leading the shift to remote work, Turing engineers are well-positioned to excel.

With at least half of the American workforce working from home, remote work is the new normal. And, as major company after major company announces their plans to extend remote work policies for the long term, it’s looking like this new normal won’t be ending any time soon.

It’s almost stopped being a surprise anymore. As each new announcement comes in of work-from-home policies being extended later and later than previously planned, most of us have stopped questioning, wondering, or even worrying. If anything, we find ourselves signing into our next scheduled Zoom meeting a little relieved. “Why would I even want to go back to the office?”

With at least half of the American workforce working from home, remote work is the new normal. And, as major company after major company announces their plans to extend remote work policies for the long term, it’s looking like this new normal won’t be ending any time soon. Here’s the break down:

Twitter

In many respects, Twitter was the trendsetter that made a more all-in approach to remote work “cool.” It was back in early May when Twitter CEO Jack Dorsey sent an email to all Twitter employees saying that they can continue working for home for as long as they see fit. That means remote work at Twitter can continue for as long as…forever. A spokesperson for Twitter revealed that this decision stemmed from Twitter’s “emphasis on decentralization and supporting a distributed workforce capable of working from anywhere.”

Square

Jack Dorsey is also CEO of Square, which is why the mobile payments company was quick to echo Twitter’s earlier announcement and make work from home a permanent option. And yes, they did use the word permanent.

Facebook

Just last week, Facebook announced its decision to extend the work-from-home option to July 2021. Although this policy change was largely driven by ongoing COVID concerns, in a live-stream posted to his Facebook page, Mark Zuckerberg revealed that he is also catching on to the larger vision of the future of work: “When you limit hiring to people who live in a small number of big cities, or who are willing to move there, that cuts out a lot of people who live in different communities, have different backgrounds, have different perspectives” It’s clear that Zuckerburg has seen the potential of remote work to advance opportunities for talent around the world. To his staff, he pitched the idea as a way of creating “more broad-based economic prosperity.” With this vision for the future, Zuckerberg has announced that it is going to “aggressively” ramp up the hiring of remote workers. The Facebook CEO now predicts that 50% of the company’s employees could be working remotely in the next 5 to 10 years.

Google

At about the same time as Facebook, Google also announced that its employees will have the option to continue working from home until at least July 2021. With concerns for how the COVID pandemic will impact families (especially given the possibility of having to provide home-schooling for children) Google CEO Sundar Pichai wrote to his employees that he hopes the remote work policy “will offer the flexibility you need to balance work with taking care of yourselves and your loved ones over the next 12 months.”

Shopify

Back in May, Shopify joined Twitter in giving its employees the option to continue working from home indefinitely. Shopify CEO Tobi Lutke is also looking beyond the current COVID concerns and seeing the vision for the future of work. In a tweet, he explained that “COVID is challenging us all to work together in new ways. We choose to jump in the driver’s seat, instead of being passengers to the changes ahead. We cannot go back to the way things were. This isn’t a choice; this is the future.” What is this new future? Lutke made it very clear: “Office centricity is over”

What this means
With such large and influential tech companies like these transitioning to more permanent remote-work policies, it has never been a better time to be a Turing engineer. Opportunity is spreading across the globe. Silicon Valley is growing and Turing engineers are uniquely positioned to ride the wave of remote work jobs that is already here (with more coming). Like Zuckerberg’s sentiment, it’s time to stop cutting off the many brilliant and talented engineers who live in “different communities, have different backgrounds, and different perspectives.”

By Aug 13, 2020
How to Encourage Remote Teams to Learn New Skills
Turing News

How to Encourage Remote Teams to Learn New Skills

Assembling a remote workforce is just the beginning, though, as you’ll need to onboard everyone, manage teams, and get them working productively. Once you do this, you then have to tackle the challenge of keeping your workforce engaged by encouraging them to learn new skills. Leveling-up is an often overlooked aspect of remote work management.

Remote work will be part of the new normal, especially with job search engine Adzuna noting a 270% increase in remote job offerings since 2017. Employers today — led by Adobe and Aetna — are tapping into a vast talent pool unrestricted by geography, with various industries looking to fill vacancies. Assembling a remote workforce is just the beginning, though, as you’ll need to onboard everyone, manage teams, and get them working productively. Once you do this, you then have to tackle the challenge of keeping your workforce engaged by encouraging them to learn new skills. Leveling-up is an often overlooked aspect of remote work management.

 Why encourage them in the first place?

We discussed in ’10 Traits of the Best Remote Managers’ how good remote workforce managers support their team members’ career development, as failure to do so can make them feel neglected. After all, continuous learning is crucial, with CNBC describing how acquiring new skills is becoming more valued than degrees and similar credentials in the modern workforce. That’s especially true given the rapid changes in technology — changes that make some 40–50% of employees feel under-equipped to do their jobs well. So, at the very least, ensuring your team has the means to learn new skills will help them perform better in their current position.

 Encourage your team through using the right software 

To help your team learn new skills while working remotely, you need to ensure that you have the right software. The good news is that software like Loom and TalentLMS is designed for educating remotely.

 Loom

Many distance learning tools have emerged in recent years, and Loom is considered an industry leader due to its ability to share content. An outline of Loom’s features by HP details how the app allows those running the lessons to record videos and share tutorials. Loom will enable you to quickly get detailed lessons and instructions to your remote team no matter where they are. Even better, Loom lets you see who has watched your videos, giving you a mechanism to monitor whether or not your team is taking advantage of the opportunities you are providing. In this way, you’ll be able to identify who among your team is genuinely engaged in learning — allowing you to give more encouragement to those who aren’t.

TalentLMS

While Loom is for general distance learning, TalentLMS is tailored for businesses. A review of TalentLMS’s features by Finances Online notes how the platform can help users simplify conducting activities like webinars, online courses, and training programs. You can even build eLearning courses and save them on a cloud server, where your team can access them at their convenience. Having the classes in the cloud will give your team the flexibility to learn in their own time and on their terms. 

Encourage your team to be proactive learners

 While encouraging your team to learn new skills is necessary, if you want to have a productive workforce, you also have to encourage them to be proactive in wanting to learn. Forbes recommends leveraging existing resources for upskilling, such as asking skilled team members to create eLearning courses and provide guided instruction. By having team members create resources and teach others, every level of the company will be learning, whether it is team management or a new skill essential for the workforce.

 It is vital to make sure that there’s a plan to help build your remote employees’ skillset. And it is your job to encourage them and provide an environment where that rewards learning. We hope this article helps. 

For more on hiring high quality remote engineers for your startup, be sure to check out Turing where you can push a button to hire Silicon Valley quality talent at scale, on demand.

AUTHOR BIO: Maggie Myers is part of a multinational consulting firm offering human resources and talent acquisition consulting. She has extensive experience doing remote work and is currently managing a small remote team of content creators.

By Jun 11, 2020
People in a co-working space
Management

Best Tools for Managing a Remote Team

When deciding which tools to use with remote workers, think about the projects that you’ll need your remote team to complete, as well as how you want them to interact with your local team. You’ll want to choose tools that allow your teams to work efficiently and effectively. Since your organization will have a unique… View Article

When deciding which tools to use with remote workers, think about the projects that you’ll need your remote team to complete, as well as how you want them to interact with your local team. You’ll want to choose tools that allow your teams to work efficiently and effectively. Since your organization will have a unique set of needs, you’ll have to carefully consider each option against your objectives to make sure that you’re on the right path.

Having said that, here are a few tools that we think your organization could benefit from if you work in remote setups:

1. When it comes to project management….

We, at Turing, use Trello for project management. It’s a great (free) way to plan your projects, distribute tasks and collaborate together. Asana is another project management tool that is both easy-to-use and a very effective way to plot and track projects. Even industry giants like Uber, AirBnB and Pinterest use Asana.

While these tools aren’t the most versatile, their pros well outweigh the cons and they are a great way to keep your remote workers on track and on schedule.

2. When it comes to communication…

At Turing, we use Slack for most of our internal communication. Slack is an online chatroom that works as a great platform for brainstorming, sharing files, comparing notes and much more. Slack organizes your conversations by channels, keeping things neat and clean.

3. Video is critical…

As for video interactions, we principally use Zoom for our all hands meetings, and Whereby for quicker small team conversations or sales call. There are pros and cons for each of these, but choosing the best tool for your team depends on your company’s specific communication needs. 

4. Especially for creatives…

While Turing is focused on engineering driven tasks, that doesn’t mean there aren’t creative components to our work. Members of the marketing and commucations team here have recently been exploring Milanote.

Key Features:
– Write notes & to-do lists, upload images & files and save things you find on the web
– Organize visually using the flexible drag and drop interface.
– Boards by default are a private place to think, but with a single click you can create a shared workspace for collaboration with your team
– Milanote is filled with hundreds of built-in templates to help you get started with a variety of different projects, from creating a mood board to writing that perfect creative brief.

Pricing:
– Free version available with no time limit.
– PRO version $9.99 per month (monthly and annual plans)

Below, have a quick look at the Milanote interface. It’s pretty.

Milanote Interface
Remote team management is essential to today’s modern workplace and an integral piece of the puzzle. The tools mentioned in this article should give you a good starting point when it comes to filling out your software stack and ensuring that you have all your communication bases covered.
By Apr 30, 2020
BoundarylessEnterprise

Will Work Remain Remote Post COVID-19?

The world has changed. In December of 2019, you wouldn’t have been willing to bet that by April of 2020, we’d be doing every technical job in the US from our homes. Yet here we are as the world’s biggest-ever experiment in remote work enters its second full month. Perhaps the biggest surprise of all is that for most companies, even those with little or no remote work experience, things have been going pretty well.

The world has changed. In December of 2019, you wouldn’t have been willing to bet that by April of 2020, we’d be doing every technical job in the US from our homes.

Yet here we are as the world’s biggest-ever experiment in remote work enters its second full month. Perhaps the biggest surprise of all is that for most companies, even those with little or no remote work experience, things have been going pretty well.

So well, that Benedict Evans, the author of this remarkable newsletter (If you haven’t signed up, you should.) felt that now was an opportune time to reprise a wry truism and ask some excellent questions about it.

Benedict Evans Tweets about Remote Work

But then, he goes on to say:
“And in parallel, for years people wondered if the exploding cost of living and declining quality of life in Silicon Valley would force companies to start moving out . When would ‘are you driven enough to live here?’ be overtaken by ‘I can’t live here no matter what’?

“And now, we’ll find out. How many Silicon Valley companies will come out of months of forced remote work and decide that actually, they don’t need to pay SV office rents, and they don’t need to pay salaries to support housing costs 50% higher than London or NYC?

“So, this could be a catalyst for an acceleration in the global diffusion of software companies. /fin”

Or to put it more simply, as a result of coronavirus, has “remote work” become merely “work”? A lot of smart people seem to think so.

Below, Rich Barton, the co-founder of Zillow, announcing via Twitter that his entire team will be able to keep working from home for many months. He’s one among many Silicon Valley leaders that have come to agree that the benefits of remote work often exceed the drawbacks, even when you take the current pandemic out of the equation.

Rich Barton on Twitter Today we let our team know they have flexibility to work from home (or anywhere) through the end o… 2020-04-29 14-48-00.
Meanwhile, Jason Aten writes that even the behemoth, Microsoft, believes that remote work isn’t going to disappear once we emerge from the current situation.

Investors, many that used to believe that every key person needed to work from the same location, have altered their beliefs in today’s new reality.

This tweet from investor Jeff Morris is a great example:

As I type this, a number of companies are collecting data to learn just how far along the curve we are from remote work as a novelty to remote work becoming the way most of us work going forward.

We’re trying to find out how productivity has changed with most employees working remotely. We want to know whether people feel that remote work has improved or reduced their quality of life. We hope to get an idea of the annual savings companies expect to realize by eliminating the cost of maintaining some of the most expensive office space on earth, and we’ve been monitoring the shift in total payroll expense as a result of companies leveraging remote talent in geo-arbitrage regions.

While we don’t have answers yet, we have some clear sentiment. Many people won’t go back to the office. Some will appreciate the option to work where they please. CEOs believe they can radically reduce real-estate and salary costs without sacrificing much, if anything, in the performance of their teams.

At Turing, March was the company’s biggest month ever. Demand for skilled, remote-ready engineers has never been higher. And all of a sudden, companies that were remote-reticent have become believers.

While many uncertainties are staring us in the face, one thing is relatively sure; right now is not a great time to be a commercial realtor in Silicon Valley.

By Apr 30, 2020
COVID-19

Laid Off? Need Engineering Talent? Turing is Here to Help.

We are living in an unprecedented moment in modern history. People and companies are dealing with tectonic change coming from every direction. Unfortunately, our country and the world are going to go through a very painful rebuilding process. Many companies that were not fundamentally strong are going to go through layoffs and amazingly talented developers… View Article

We are living in an unprecedented moment in modern history. People and companies are dealing with tectonic change coming from every direction. Unfortunately, our country and the world are going to go through a very painful rebuilding process. Many companies that were not fundamentally strong are going to go through layoffs and amazingly talented developers are going to be let go.

But while some companies are downsizing or even closing entirely, others are hiring as quickly as possible. Turing wants to be the bridge between suddenly available engineering talent and positions that companies need to get filled now.

Our AI vetting system and global reach can help identify talent from all over the world and help that talent get matched with good-paying jobs at well-known companies. Our goal is to help America rebuild by connecting over 100,000 engineers with amazing jobs.

If you are a highly skilled engineer that’s been recently laid off, and you have expertise in the areas Ruby On Rails, JavaScript, Android or iOS Development, or Python, we may be able to help you find work very quickly. We also encourage you to share this post with your colleagues, who might also find themselves looking for alternate employment.

If you are a company that is in the enviable position of needing to scale up immediately to meet new, crisis-driven demand, we can assist you in finding and managing top-tier talent from around the world.

In addition to placing talent and filling open positions, we’ll be regularly updating this post with other companies that are seeking talent.

At this time, Turing is actively seeking individuals with the following skills:

  • Ruby on Rails Engineers
  • Mobile Engineers (iOS and Android)
  • JavaScript and Python (any JS framework)

Minimum requirements for these positions: 4 years experience, 2+ years experience working remotely.

To get started with Turing and be matched with open positions, the first thing you need to do is visit developers.turing.com and begin our vetting process. Once you’ve successfully completed our testing process, we’ll schedule you for a follow-up interview to make sure you’re ready for remote work and placement.

We know this is a challenging time for everyone. Turing wants to be your partner in finding work or scaling up, no matter where you are. Join us.

By Apr 22, 2020
COVID-19

Helping Amazing Engineers Get Back to Work Quickly

Please enjoy this replay of Turing CEO and Co-Founder, Jonathan Siddharth, as he speaks to the shockwaves rippling through the technology community as a result of the coronavirus pandemic.

Helping Companies and Engineers During this Crisis

Please enjoy this replay of Turing CEO and Co-Founder, Jonathan Siddharth, as he speaks to the shockwaves rippling through the technology community as a result of the coronavirus pandemic.

Says Jonathan; “We are living in unprecedented times. A lot of people are about to be negatively impacted by all the changes in our economy. I’m sure you’ve already heard of layoffs at many companies or companies planning to do layoffs.”

“Unfortunately, our country and the world are going to go through a very painful rebuilding process. Many companies that were not fundamentally as strong are going to go through layoffs where amazing, talented developers are going to be let go.”

“We think information workers, knowledge workers, and software engineers are likely to be disproportionately impacted in the US, and many other places.”

“We want to do our part too. Turing has always been committed to finding the world’s best developer talent, through our automated vetting engine and matching them with the world’s best companies.”

To hear the rest of Jonathan’s thoughts and how Turing can help, watch the full Periscope above.

By Apr 6, 2020
Smart Slack hacks ultimate guide
COVID-19

The Ultimate Guide to Slack Hacks

Slack is one of the most popular communication tools for remote teams. With the ability to coordinate conversations by a specific theme, within a team or company-wide, there is great power in this platform. Long popular with remote teams, here are some tips and tricks that you might have missed. Use these to make the most of your time and communication efforts.

Slack is one of the most popular communication tools for remote teams. With the ability to coordinate conversations by a specific theme, within a team or company-wide, there is great power in this platform.

Long popular with remote teams, here are some tips and tricks that you might have missed.

Use these to make the most of your time and communication efforts.

We will cover:

Notification Management

Pin important messages

Keyboard shortcuts

Polls and surveys

Star items = quick list

Slackbot Reminders

Include posts

Keyword Notifications

Find mentions quickly

Search Smarter

Quick link to previous posts

Bookmark location in a channel

Formatting for Impact

Deep Work Time – DND

Customized Emojis

Integrate! Apps, bots, and workflows

Notification Management 

    • You may not need notifications for all activity within a channel. Adjust your notification requirements by selecting the settings icon (cog) at the top of the channel on desktop or using the drop-down menu (3 dots) on mobile, then settings, then notifications/notification preferences.

Pin important messages

    • You might want to pin the most current update of the project you are working on or your guide to using the channel. You can pin up to 100 messages per channel, but keeping it to crucial information is better.

Keyboard shortcuts

    • You can use keyboard shortcuts to navigate around the Workspace, mark a message as read or unread, format your messages, and more. Saving time and giving flow and process to your time in Slack.
    • When all the pictures and GIFs are making it hard to follow the conversation type “/collapse” into your text box, which will leave text only within the chat and reverse this type “/expand.”
    • To see the list of shortcuts hit “ctrl” and “/.”

Polls and surveys

    • Want to get some quick feedback from the team? Or trying to decide on meeting times? Use the command “/poll” and follow the instructions to call up the “Polly” app. Both powerful and fun.

Star items = quick list

    • Click “Show starred items” or use the keyboard shortcut “crtl_shift+s” for a quick list of all your starred messages. This hack can be useful to quickly review essential items and help you to come back to something you might not have time to handle at the moment.

Slackbot Reminders

    • Use the “/remind” command to give you a personal reminder, or to remind someone else on your team. An example is “/remind @Jeff of meeting at 2 pm”, your reminder will be sent at 2 pm to Jeff about your upcoming meeting.

Include posts

    • Where you need to share longer-form content, you can include posts in your Slack messages. You might want to share project plans, or quickly link to your code of conduct, vision, and mission statements.
    • Create a post – (On your desktop). Select the attachment icon (paperclip) → “Create new” → “Post.” From here, you can share your post, edit it, allow others to edit it, format the article, and add images to it—further instructions via the Slack help section

Keyword Notifications

    • While you will get notifications if you are tagged or mentioned, it can be useful to get a notification. Likewise, when someone uses a specific keyword. Go to preferences, then notifications to set up your desired keywords. You will receive the notification, and the channel will display a badge.

Find mentions quickly

    • You can use the @ symbol on the top right on desktop to show, or hide, mentions if you are looking for a recent conversation (or you’re drowning in notifications). Or use the keyboard shortcut “ctrl” + ”shift” + ”m” to show and hide your mentions.

Search Smarter

    • Use modifiers that help you to search smarter. “From:user”, “in:channel”, “during:March”, or “has:emoji-code”, this one is particularly useful if you follow a specific process of emoji usage within your Workspace. You can find a complete list of search modifiers here.

Quick link to previous posts

    • Using the timestamp (time beside your name above a post), you can copy this as a link and paste into a new post, bringing old posts back into the conversation quickly.

Bookmark a location in a channel

    • Some channels require more attention from us than others, if you need to read everything in the channel then use “Alt+click” on the message where you are leaving the channel, it will mark all subsequent messages as unread. On mobile, this should be a long press/hold on the message.

Formatting for Impact

    • Need certain parts of a post to stand out? Then use formatting. E.g., using * either side of a word will embolden it i.e., *here* now becomes here. Or traditional keyboard shortcuts also work. You can also add formatting like inline code or block quotes, very useful to help faster communication of crucial information. More on formatting your messages from Slack.

Deep Work Time – DND

    • DND – You can type in “/dnd” into the text box and then set a time, or use the bell icon to the top left and select a time frame. Stopping you from receiving any sounds or notifications in the time frame you specify, and your co-workers will see a sleeping symbol beside your name.

Customized Emojis

    • Emojis can be useful to speed up communication within your team or to help strengthen branding and team identity. You can add the custom emojis from the drop-down menu on the top left and choose “Customize Slack.” Admins have the power to limit who can edit these.

Integrate! Apps, bots, and workflows

      • Slack supports integrations with 100s of apps. Here is a list of some of the most popular ones. See the Slack help center for details on each and a full list of apps available, follow this linkZoom for SlackStart a meeting, join a meeting and make a call with Zoom phone. Remember, you must register your Slack and Zoom accounts with the same email address.
      • Trello for SlackManage cards on your boards from Slack, add conversations to cards, and update due dates.
      • Asana for SlackCreate new tasks and turn your conversations in Slack into to-dos in Asana
      • Salesforce for SlackSearch Salesforce records from Slack, configure Salesforce alerts for Slack. Send Slack messages to SalesForce, or send Salesforce records to Slack.
      • Twitter for SlackYou can set up mentions on Twitter to feed into a channel that the team can keep an eye on. Follow similar businesses or your suppliers.
      • Google Calendar for SlackView your full schedule and have your status update when you are scheduled in a meeting.
      • Donut for SlackDonut helps to improve team-building; there are prebuilt connection programs in Donut, one of the most popular functions is virtual random coffees. Help to encourage cross-organizational bonding.
      • Loom for SlackMention @person or #channel directly in your Loom videos, and they can watch the clip without needing to leave Slack.
      • Polly for SlackThis Polls and surveys bot lets you get quick feedback. Use pulse surveys directly in Slack.
    • Greetbot for Slack.  An onboarding assistant for Slack. Customize welcome messages and schedule follow-ups.
    • You can also create custom integrations, build your bot, create automated workflows, and much more, read more on this via the Slack help center here.

 

Do you have a workflow or trick that works well for you in Slack? Then please share it with us over on Twitter @Turingcom.

By Mar 31, 2020
COVID-19

A Collection of the Best Guides for the Suddenly Remote in the Time of COVID-19

At Turing, we’ve been focused on remote work for years. To help you out during the COVID-19 crisis, we’ve begun curating the best and most in-depth guides to help you navigate this new and confusing reality.

With so much information out there right now for the Suddenly-Remote, it can be hard to know where to turn or which information is reliable.

At Turing, we’ve been focused on remote work for years. To help you out during the COVID-19 crisis, we’ve begun curating the best and most in-depth guides to help you navigate this new and confusing reality.

We will continue to add to and update this list as additional high-quality information becomes available. Keep in mind that the majority of these guides were written for the immediate application of remote-work basics. They are not intended to provide the detailed information, skills, and best practices required for sustainable remote work or for new companies that are adopting a remote-first paradigm from day one.

With that in mind, here are our initial picks for the best guides to help you and your company deal with the need to go Suddenly-Remote during this very challenging moment in time.

GitLab’s Guide To Remote Work

https://about.gitlab.com/company/culture/all-remote/

Gitlab is the world’s largest all-remote team. They know what they are talking about. Gitlab’s guide is one of the most detailed guides out there and includes the company’s “Remote Manifesto.” They cover:

● How & Why

● Getting Started

● People & Values

● Management

● Hiring & Learning

You can jump into the sections that are most relevant to you and your team and share the link with others throughout your organization to help get them up to speed on all things remote.

Zapier’s guide to working remotely

https://zapier.com/learn/remote-work/

Here is another remote working heavy hitter. Zapier is 100% distributed, with over 300 employees spread across 17 countries.

The Zapier guide includes an AMA for those new to remote, which is available at the start of the page. This guide consists of the following seven areas:

  1. Automation for remote work
  2. Teamwork on a remote team 
  3. Remote work for managers 
  4. Remote work for employees 
  5. Remote workspaces 
  6. Remote work tools The state of remote work

Zapier has also added a recommended reading list. Their guide is downloadable as a file for ease of sharing.

Remote Work Guides from Twist

https://twist.com/remote-work-guides

Twist is a communication app from the wonderful people at Doist. Doist is a remote company with 68 team members spread across 25 countries.

Their guide is a collection of various remote working guides curated in once place. The guides available are as follows:

● The Future of Work: The Guide to Remote Work

● Remote Setup: The Remote Guide to Logistics

● Remote Projects 101: The Remote Guide to Project Management

● Scaling Your Remote Team: The Remote Guide to Hiring

● Leading Distributed: The Remote Guide to Management

● The Art of Async: The Remote Guide to Team Communication

● Designing Without Whiteboards: The Remote Guide to Product Design

There is a great depth of information here, including thoughts from various remote work experts throughout the guide.

The ultimate guide to remote work from Miro

https://miro.com/guides/remote-work/

Miro believes in helping teams to collaborate. Their remote work guide covers:

● Introduction to Remote Work & Collaboration

● Is Remote Work as Great as it Sounds?

● The Most Important Remote Work Statistics

● Guide to Hiring Remote Employees

● How to Onboard Remote Employees

● Building Remote Work Culture & Why It’s So Important

● How to Manage a Remote Team

● Engage Your Remote Team to Keep Productivity High

● Complete Guide to Remote Team Meetings

● 15 Best Team Building Activities & Games for Remote Workers

But what if you need more than a guide? The extraordinary team at Slack has you covered there, too. Simply click this link: https://calendly.com/slack-customer-experience/remote-consult?month=2020-03 to schedule a remote team consultation.

As more quality information is released, we’ll be updating this meta-guide to help you easily find the best resources from one centralized location.

By Mar 19, 2020
COVID-19

Remote Now! A Quick Guide to Remote Work Best Practices

In a world where so many are going suddenly remote there are things we can learn from those who have been working outside a traditional office. While there are differences in circumstances, job types and personalities, there are also many commonalities for those of us working remotely.   Here is an outline of some best practices to help you, and your team, make the most of remote work. 

Note: This is the second part in our series on Remote Now, a primer for employees and companies that have been forced to become suddenly remote due to the COVID-19 pandemic. Stay tuned for additional posts over the next few days!

In a world where so many are going suddenly remote there are things we can learn from those who have been working outside a traditional office.

While there are differences in circumstances, job types and personalities, there are also many commonalities for those of us working remotely.  

Here is an outline of some best practices to help you, and your team, make the most of remote work. 

We will cover:

  • Communication
  • Social interactions
  • Trust
  • Online etiquette
  • Remote work boundaries

Over Communication is Key

Quick Wins:

  • Have agreed communication processes & schedules
  • Embrace the remote way of communicating
  • Use video in meetings
  • Batch communications where appropriate
  • Edit and review messages before you send them
  • Over communicate = assume nothing – give context and give some more
  • Strong documentation as a rule 

This is the number one challenge for most people going remote.  When working in an office we become accustomed to being able to “swing by” someone’s desk to ask a question.  Communication in a remote role forces us to be more deliberate and think ahead of time what we might need when we send a message to a colleague.

It also forces us to not “scratch the itch” straight away.  You might like an answer from your colleague straight away, but if you are using asynchronous communication then you need to get comfortable with waiting for a response.  But having agreed times that people respond by will help the team to know, and meet, expectation.

And batching communications will help you develop better communications hygiene.  Don’t send off a message every time you have a query, put them into one post and edit and review before sending.  Ask if you could make your message clearer, or do you need this level of information?

Documentation is a huge part of keeping your team and projects moving forward.  Make sure to prioritize good documentation and agree on formats and processes for keeping documents up to date, while ensuring version protection and data security.



Quick definition: Synchronous = real time e.g. phone or video call  vs. Asynchronous Communication = you send the information not expecting it to be picked up straight away e.g. email, messages via Slack.

Social Beings and Trust

Quick Wins:

  • Schedule social time with the team
  • Have the trust talk with team members
  • Set expectations around check-ins
  • Encourage two sided feedback
  • Ensure team members feel supported
  • Build serendipity into the team

We are social creatures which helps us to create bonds, growing trust and improving communication and collaboration as trust is developed.  Without social interactions this can be greatly slowed down on a remote team. Build some serendipity into how the team interacts, using tools like Donut via Slack helps to bring some randomness into team interactions and encourage the creativity and the social strengthening that happens in unstructured situations.

Therefore making social interactions part of your work week is hugely important.  Make time in your daily standup to include time to chat about life in general, while it might feel like a “waste of time” there and then, it is actuallys an investment in improving the team’s effectiveness in the long run.

Schedule in virtual chats, run ice-breakers and when appropriate, organise in person meetups to help your team to bond.

Managers should start open conversations with team members to ensure they feel trusted within their work.  As a manager you may need to “check-in” on a team member, but make sure it’s clear that you’re not “checking up on them”, this can feel like unnecessary monitoring.  Build clear expectations around when check-ins happen at the team and individual level. Schedule them in, use a format like a daily stand-up to help everyone know where they are on a project, what their next steps are and how they are progressing so far.  For individual check-in, ensure that team members know that these are about finding out if they are enjoying their work and feel supported. Make it about you both sharing information and have equal sharing of feedback.

Key to all of this is trust, it can be hard to help people new to remote work to feel like they are trusted.  This is vital in helping that person to flourish in a remote role and should be a core part of the management team’s goals.  Having the conversation about trust helps, also recognising someone when their work is good is very important.

Online Etiquette and Boundaries

Quick Wins:

  • Use video for conference calls
  • Use an agenda
  • Everyone is remote for the meeting
  • Either set specific “office hours” or a set cut off point for work
  • Create rituals to help you start and end the day

Because of the nature of many of the tools we are using we need to be extra deliberate about how we an online meeting.  It is much easier to mistakenly speak over someone in a video conference call than in a physical meeting room. Create habits that help to ensure people are engaged and feel involved.

If you have a hybrid team and are running a conference call, treat everyone as if they are remote.  Having some team members in a room, while your remote colleagues are struggling to hear the conversation happening on site isn’t good meeting etiquette.  Have all team members at their desks and dialling in as if they are also remote. This helps to level the field for communication and gives the in office team members a clearer understanding of what is good practice for an online meeting.

And finally boundaries.  These are important to ensure people don’t burn out.  A struggle for many remote workers is continuing to work late into the evening, or working through lunch.  This becomes a matter of diminishing returns, you are no longer as effective and it can take days to come back from burnout.  Agree a set hours of work where possible, and suitable, or set yourself certain boundaries like “I don’t work after 8pm on a week day” will help to avoid burn out.  It also helps you not needing to wonder if you are ok, or if you could fit in another hour, which is one more decision you would need to make. 

The issue is often being able to switch off after a days work.  You might have just hit on an amazing idea but now it’s “home time”, using rituals to finish (and start) your day helps you to get into the right mindset and wind down from your work brain.  Things like taking a walk outside, listening to a certain type of music, exercise or scheduling a call or coffee with a friend or family member can help to draw the lines around your work.

We all find our own ways of working and are always learning from each other.  We’d love to hear what works well for you and your team. Find us on Twitter and let us know your remote working best practices!

By Mar 16, 2020
COVID-19

Remote Now! A primer for the “suddenly remote” during the COVID-19 pandemic

By now, you’ve almost certainly heard the news. As coronavirus cases explode around the globe, more and more companies are instructing their teams to work from home. For companies that already have a fully or partially remote structure, this is pretty much business as usual. But, if your employer is more traditional, being forced to run an entire business with a team that finds itself in the position of suddenly being remote presents a slew of challenges.

Introduction:

By now, you’ve almost certainly heard the news. As coronavirus cases explode around the globe, more and more companies are instructing their teams to work from home.

For companies that already have a fully or partially remote structure, this is pretty much business as usual. But, if your employer is more traditional, being forced to run an entire business with a team that finds itself in the position of suddenly being remote presents a slew of challenges.

This primer, which will be produced in short excerpts, is intended to help employees and employers get a grip on the essential skills, tools, and best practices that will reduce the problems and stress we’re all likely to encounter during this frightening time.

For most of us, this Remote-Now experience will (hopefully) be short-lived. If we’re fortunate, we’ll weather the coronavirus crisis quickly, and within a couple of weeks, people will be able to return to their offices and normal work schedules.

This primer is not intended to help your company “go remote” on a long term basis. Our goal is to give you the necessary knowledge and skills to enable you to continue your operations with as little disruption as possible during the near term.

As a result, we’re not going to do an exhaustive review of every tool, or of all the techniques that remote-first companies use. Instead, we’ll focus on simple practices and widely available and mostly free tools that will allow you to get started quickly and function at a reasonably high level during this difficult time.

Over the next several short posts, we’ll profile the tools we think are the easiest to learn, the most common (making it more likely your team is already familiar with them), and especially those that are inexpensive or free. We’ll talk about scheduling, give you a list of the most common remote worker shorthand, and go over the best practices we’ve found that will help your team interact in the most seamless manner possible.

To help you get started, here’s a short list courtesy of Lisette Sutherland of Collaboration Superpowers with the simple things your company and employees can do now to help make this daunting and unexpected challenge a bit easier:

  1. Find a dedicated place in your house. Make this an area where you can be productive and is separate from your private life. 
  2. Use video. It’s important that your team members can see and hear you well. Have plenty of light and wear a headset.
  3. Create a team agreement. Talk about expectations for how to work together—templates available here.
  4. Set goals and be enthusiastic. Working remote is all about trust and communication. How will you know what each other are doing? 
  5. Get familiar with the tools. There are great tools available for online collaboration like ZoomSlack, and GoogleDocs that can make this process easier.
  6. Lean in. Start without big expectations, experiment, and grow your skills. Put feedback loops in place to evaluate progress. Regular retrospectives on how the team is doing will inspire continuous improvement and trust.

In addition, don’t forget to be empathetic. Not everyone has worked from home before. Some issues and distractions are likely to make this effort more challenging for some than others (kids home from school or a sick spouse come to mind). 

There’s a learning curve here. Going Remote on the fly is not the simplest thing in the world, especially when that world is freaking out around you. Put simply, be kind to one another. We’re all in this together.

 

 

 

 

 

 

 

 

By Mar 13, 2020