Management

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
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
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
remote work policy
Management

How to create (or review) your remote work policy

Many companies are finding themselves in position of having to go remote with a very fast turnaround.  We wanted to make some of that process easier by giving some guidelines on creating (or updating) a remote work policy.

Many companies are finding themselves in position of having to go remote with a very fast turnaround.  We wanted to make some of that process easier by giving some guidelines on creating (or updating) a remote work policy.

Here you will find the following:

  • What is a remote work policy?
  • Why should you have one?
  • What should it contain?
  • Creating the policy
  • Free Resources

What is a remote work policy?

This is a HR agreement between the company and an employee on when and how they can work outside the office.  It is also a checklist of expectations and guidelines.

The policy should outline the legal rights of employees that are working remotely and who are eligible to work remotely.  

It should also contain best practices, therefore making the transition easier and reducing uncertainty.  A policy such as this can be temporary or permanent.

Why should you have one?

It’s a legal requirement.  The documents you require will be different depending on local laws, make yourself familiar with what you require and don’t be caught out.

It’s protection for a company from breaches of employment and equal opportunities legislation and helps employees to know what the correct procedure is to follow.  It is recommended that you review your policy at least once per year.

In a great article by Laurel Farrer she outlines these 6 areas in which a company can unknowingly be outside the law regarding remote work:

  1. Work contract – scope of work must match the documentation
  2. Occupational Health and Safety Standards
  3. Information security
  4. Employment and labor laws
  5. Tax regulations
  6. Immigration laws

Also, it helps employees to know:

  • How to handle communication
  • Steps to keep data safe
  • Their legal rights
  • Advice on wellbeing
  • How their interactions with management might change
  • That their career won’t be at risk by being remote

What should it contain?

The contents of the policy should help make it clear what expectations there are for both employee and employer.  While the document is there to protect both sides legally, it should also help in the smooth operation of the business and help the employee to understand how remote working might differ from them doing their role in office.

  • Working hours
  • Legal rights
  • Insurance
  • Cybersecurity requirements
  • Tools
  • Expenses (if applicable)
  • Strategies
  • Termination

Creating the policy:

Before you start to craft your policy take time to consider the following:

  • Audit current work practices
  • Include employees in the process 
  • Use clear language
  • Update the policy regularly

Work alongside HR, legal and financial departments in creating a remote working policy.

  • Outline how different roles will work remotely
    • Different requirements for HR vs a developer
  • Clear rules about working from home
    • Consider various scenarios and plan communication tools and processes for each:
      • Team all-hand meetings
      • Client kickoff meeting
      • Manager 1:1s
      • Performance reviews
      • Employee learning and development activities
  • Supply employees with the right tools
    • And ensure they are comfortable using them
    • Will you offer a stipend or reimbursement so they can purchase equipment?
    • Tools and software have both communication and engagement implications, as well as cybersecurity aspects
      • Tools to include:
        • Team communication
        • Video conferencing – hardware and software
        • Collaboration software

Things to consider:

  • What are the legal requirements around remote working in your jurisdiction?
    • Legislation differs from country to country
  • Is the role suited to remote?
    • If not, how can you adjust to suit this role via remote
  • Are management prepared?  Will they require further training or support?
    • If a manager has no previous experience with a remote team training is advised
  • Are there implications to taxes or benefits?
    • This differs across states and countries.  
  • Give guidelines on the use of Wifi and VPNs
    • Ensure these are tested
  • Make space for work relationship building and maintenance in the policy
    • Have a virtual water cooler and help management with improving engagement remotely
    • Schedule this monthly, quarterly and yearly
    • Ideas to use:
      • Office hours
      • Video hangouts (non-work)
  • If an employee is 100% remote ensure all other relevant policies are also signed, like their in-office colleagues

In a great article by Macy Bayern of TechRepublic she outlines 10 rules for your remote work policy:

  1. Eligibility
  2. Availability
  3. Responsiveness
  4. Productivity measurements
  5. Productivity measurements
  6. Tech support
  7. Rightful termination
  8. Physical environment
  9. Security
  10. Client confidentiality

Free resources:

Remember that your remote work policy should be tailored to fit your company.  Use these resources as guidelines in crafting the ideal policy for you and your employees:

A Sample Remote Work Policy for Employers from Remote.co

Crafting Remote Work, Flexible Schedule, and Working from Home Policies [+ Templates] from Owl Labs

How to Make a Remote Work Policy Work for Businesses and Employees from Smartsheet

Guide to Writing a Telework Policy from The Telework Pilot Project

Telework policy and process from University of Washington HR Department

Telework Guidance from Telework.gov, official website of the U.S. Office of Personnel Management

Resources for companies embracing remote work from Gitlab

Remote Working Policy Template – Local Authorities, United Kingdom

Telecommuting Policy Sample from EnterpriseSeattle 

Handbook of Operating Procedures – Telecommuting from The University of Texas at Austin

The policy is only one part of going, or having, a remote team.  Things like trust and deliberate communication are key in keeping your remote team engaged and productive. 

Ensure you give time to these other areas of how you approach remote, and help relationships and communication to be front and centre of how your team operates. 

By Mar 12, 2020
Hiring developers

Vetting Candidates for Remote Work | Turing Hire

What you need to know about a candidate to make a great long-distance hire Hiring remote, global talent is tough. Most of the usual signals you rely on when hiring someone in the US don’t apply. You may not recognize the school a candidate attended. You may never have heard of the companies a candidate… View Article

What you need to know about a candidate to make a great long-distance hire

Hiring remote, global talent is tough. Most of the usual signals you rely on when hiring someone in the US don’t apply. You may not recognize the school a candidate attended. You may never have heard of the companies a candidate has worked for, and you may not have any idea if the people providing references are genuine. You also can’t rely on recruiters because they’re likely dealing with these same problems.

So how do you make sure a remote prospect is up to the task and won’t simply slow you down?

Overcoming sourcing challenges with rigorous vetting

When the usual means of identifying talent are likely to fail you, a new process is needed. At my current company Turing, we’re working to solve this problem. In this article, I’m going to share with you what I’ve learned during hundreds of technical screens. My goal is to help you identify best practices for vetting prospects and making sure your placements are going to be capable of delivering the results you require.

At Turing, we match developers from all over the world with positions at some of the world’s best and most interesting startups. Every time we make a placement, we put our reputation on the line. In other words, we can’t afford to make bad matches.

Since we are unable to rely on typical signals that would allow us to determine if someone is good enough for our clients, we’ve developed a system that provides unbiased feedback about a candidate’s skills in all of the areas critical for their remote-work success.

Core to our approach is a highly structured vetting process that incorporates sophisticated automated testing as well as detailed, in-person technical screening for individuals that have been able to successfully pass our coding examinations.

All of our testing is intended to help determine key facts about the experience, skills, and capabilities of a candidate. What we’re trying to understand through our tests and interviews will help us determine if a person has the skills they claim to have and whether they’re capable of performing basic tasks, managing projects, and people, or even leading entire projects from conception through implementation.

So, at a baseline, we’re trying to determine if someone can contribute to a codebase in a meaningful way. Maybe their skills only support accomplishing scoped, individual tasks. For example, can this person add a button that does x, y, and z on this web page and build it in a way that takes into account the full technical stack of the application?

Or can this person go in and add unit-testing to some kind of already written back end piece of logic? Generally, can they contribute within an already established structure and do things that won’t upset that structure, if given functional requirements?

Then, there’s a level of complexity beyond that. Can this person take a direction like “Hey, we want this larger-scope feature built?”, and successfully run with it? And can they execute at that level of complexity, something that is going to be composed of many tasks? Can this person, for instance, build a new signup flow, or build a new matching algorithm for some sort of matchmaking service? Can they individually make the sorts of principled tradeoffs in design and implementation that is inherent to successfully building at that level of complexity requires? Does this person have the sophistication to read between the lines and identify functional requirements implicit in a higher level and more coarse-grained specification?

But most critically, at both the task and feature-based levels, we’re trying to determine if this person will be able to contribute to an already established infrastructure, both technically and procedurally.

Identifying coders, leaders, and project architects

For more senior placements we start getting into higher levels of architectural complexity. Can this person start an entire project from scratch if they’re only given a general direction? If they’re tasked with building and deploying a new Android app that does something novel, can they deliver? Or if a company is expanding their product into a whole new space, can the developer take some rough business ideas and some rough sketches about how the company would like to go about doing this, and then build out a full-stack product, from the UI to the backend architecture to the design of the database models?

Can they manage the entire process from system architecture design to writing elegant implementations? Do they possess the depth and breadth of experience, as well just general horsepower, to be skilled enough to implement the MVP from the front end to the backend to the database as well as whatever infrastructure they’re going to use to actually deploy the code?

Even vetting somebody in terms of their technical acumen from a general level that seeks to get a signal on someone’s “seniority” is a really complex thing to do. Proper vetting needs to understand whether a person can design systems at a very high level. Can they understand how pieces fit together and how those pieces talk to one another? And then you start getting down into deeper levels of abstraction. Does a candidate understand how this feature fits into the greater scope of the product?

Can they assimilate to use the tools in a particular company? Can then adapt to the cadences and workflows of the team that they’re on, and work with other people to be part of a bigger whole? And then, at the task level, you need to determine if someone has fundamental baseline computer science abilities? Will they build efficient pieces of code? Do they understand notions of runtime and space complexity, and how that might apply to the code that they write, and the specific problems they are being asked to solve?

Are they able to conceptualize how their code will typically be used and how the stuff that they write will actually be run?

But the most critical thing to keep in mind is that it all comes down to code. Code has

a dual purpose.  It is going to be executed by a computer, and it’s going to be executed at certain cadences and using certain pieces of data and memory. But it’s also the stuff that people are going to read, and have to maintain.  People will have to go in and either edit or understand what your piece of code is doing in order to write their own piece of code, to modify or extend the functionality of a given application. Designing abstractions and writing code that can be comprehended by another human is extremely important.

AI versus Human Vetting

It’s almost an overwhelming list of skills that somebody requires to be considered a “good” software engineer. Trying to vet them all in an hour-long phone interview is very difficult. At Turing, we’ve realized that it’s possible to take the human out of it. To a point.

We do have an hour-long technical interview that we use with some of the most skilled developers that we’ve found on our platform, where we validate and extend upon things that we find through automated testing.

The technical interview allows us to screen for things that we find are very, very hard to test for. Of course, we’re interested in their communication capabilities, but we also like to test some technical things in an interview in addition to an automated test.

 Why Both?

During the course of developing Turing’s platform, we found that automated tests are really good for testing someone’s facility with specific technical stacks. For example, with programming languages like JavaScript, or Python or frameworks like React, or Node JS, or Laravel. We found that we can test someone’s knowledge of how to use those particular things pretty well in an automated test format.

We can get a really good signal as to whether somebody actually knows a particular framework or whether they speak a particular language. What’s really nice is that we can provide skill-validation to clients who are looking to get somebody up and running with the stack that they’re using as quickly as possible.

We’ve also found that we can automate testing of more general-domain kind of format

For instance, we can find out if the candidate knows how to build a server. Do they know and understand how a database is going to interact with a server, and how that server might interact with a front-end client? Do they know common design patterns that might be encountered in software engineering, and how those patterns might best be applied?

Is a candidate familiar with the types of algorithms they might encounter in software engineering? Or, given this piece of code in a language that you purport to know, can you tell us what you’d expect to happen if it was run with a certain type of input? We’ve found that those types of questions are really good for the types of automated testing that we currently do.

And we think that we get a pretty good signal on a developer’s mastery of a specific type of coding, say front-end development or back-end systems development, or mobile development or database design.

There’s really good tooling that we’ve built upon, that allows you to run code in a browser. And this allows us to do things such as automated live coding tests. We can do automated live algorithm testing in this sort of format with a significant degree of success, in terms of being able to test algorithmic correctness and efficiency.

We’re able to test whether or not somebody can write code that fulfills a particular function within a particular amount of time, and with a particular amount of like memory. We’re really excited to expand upon this method and see what further coding-based automated tests we can do.

Where automated testing breaks down

But even in a live coding format, there are holes that we have in terms of our automated tests.

Right now, it’s still very hard to get a computer to tell us what the elegance of somebody’s code is. Or how well it was organized, or how readable it is, or how well abstracted it is.

That’s where I really feel like a technical interview comes in handy. Because then I can present candidates with situations they might encounter during their work and they can walk me through how they’d design the solution to the problem. Doing this during a technical interview can help me understand what a candidate’s thinking is, and what kind of code, organizationally, they’d spit out to approximate a solution. This really helps me get into a prospect’s critical thinking. I can really see how they handle problems with uncertain specifications, how they ask questions about getting required specifications, and more generally a get a clearer idea of what the nature of their programming abstractions and elegance might be.

“Automated testing establishes a bar that filters people out. The in-person interview confirms the testing and tests the candidate on critical things that are currently hard to measure in an automated way.”

In general, what we’ve learned at Turing is that a well-designed and comprehensive automated testing facility is very cost-effective when you need to screen a large number of applicants blind. If I had to do an in-person interview, or even review and background check every candidate that wanted to work with Turing, there wouldn’t be enough hours in the day or enough days in the year.

And as our testing capabilities continue to evolve it makes our ability to find the best candidates and then invest our time where it’s most productive; doing technical screens for the top-tier applicants only.

What to do if you don’t have automated testing

In my next post, I’ll talk a bit about what you can do if you don’t have an automated testing facility. I’ll also dig into the way you can make the onboarding process simpler, and how you can spot early signs that a remote hire is struggling or even failing. Stay tuned!

By Feb 5, 2020
Hiring developers

How to Become a Remote Developer | Turing Jobs

My goal with this post is to tell you how to prepare yourself to get your first serious remote gig.

Thinking of becoming a remote developer and also want to work for a top tier company – hopefully, one based in Silicon Valley – but you don’t live in the US and you haven’t been able to secure a visa. Don’t despair. More and more of the latest valley startups have discovered that there’s a ton of talent offshore. This means that today might just be the best time in history to become a remote developer.

As someone that’s been working remotely about as long as it’s been possible, my goal with this post is to tell you how to prepare yourself to get your first serious remote gig. Today, I work for a company called Turing that places developers with opportunities all over the globe. We have some of the most advanced developer testing and vetting of any company in the world. What I’m about to share with you are key insights I’ve developed first, as a person that’s gone through Turing’s testing and vetting process as well as someone that now works on making that process even tougher and better.

First Things First, Be Prepared to Show Your Work

If you’re a developer applying right now, make sure that you’ve got a portfolio of some work that you’ve done before. It could be code you’ve submitted to GitHub. It could be some art design work that you have worked on. Maybe some websites that you’ve worked on, or maybe applications on the App Store.

Being able to showcase completed work is a very good thing. When we’re evaluating candidates that have passed our tests look at prior work. Additionally, many Turing clients want to see examples of the work a potential match has completed. The other thing that can help you stand out is if you have a good CV. But be careful! Attention to detail is critical. Make sure there are no errors in any documents you share to showcase your skill.  Nothing will shoot you in the foot the way an obvious mistake can. Believe me, I’ve seen so many people with errors in their CVs. To me, it’s a red flag if someone submits such an important document with mistakes. It says you’re careless and don’t take the time to check your work. So, no errors on CVs!

It’s also really important to have relevant information included in your portfolio. If you say that you have a particular skill make sure that there’s a corresponding project where you have actually used that skill. You’d be surprised how often someone will say they are proficient at coding in a certain language but then they don’t provide a single example of their work in that discipline. If you say you’re good at something, impress me by showing me an example of your great work!

Another critical skill for someone remote that wants to work for a high-profile US company is to have strong English. I know there are many people that are not native English speakers so it’s always good to make sure that your English is very concise. If this is a weakness, don’t ignore it. Do whatever it takes to make sure that you understand English very well and that you’re proficient in communicating in English, too. It’s the language your team is going to use, it’s the language you’ll be using to comment your code, and it’s probably the language of the people that will be using the product you want to help build. It’s easy to think people will overlook weak English skills, but if there are two candidates that have the same experience and have performed equally well on the automated tests, the one with better English skills will perform more strongly in a live technical screen.

How to Ace Your Automated Testing

The key to a superlative performance on automated testing is to be very well prepared.

Ensure, for example, that if your area of expertise is Python, you have prepared yourself in terms of the coverage of the topics in Python.

Be sure you’re prepared to cover that language end to end because the questions will try to test your coverage. The exam will cover your in-depth knowledge as well. if it’s algorithms and data structures that you work on be sure you know everything from the most basic concepts all the way to graphing algorithms and runtime complexity.

How Long the Automated Testing Should Take a Skilled Developer

For a skilled individual, I estimate that our current automated testing will require about eight hours. So, maybe a day. But of course, you may not want to put all that pressure on yourself to finish everything in one day. My recommendation is to allocate two hours per day and give yourself roughly a week to do just about all the MCQs in the qualifying exams.

Technical Exams – Where You’ll Sink or Swim

Just like with the automated MCQs, your performance during the technical interview will come down to how well you’ve prepared yourself. During a technical screen, we want to understand your in-depth knowledge. We also try to validate your performance on the MCQs and to understand if you have good working knowledge of design patterns.

For whatever programming language you use, it’s critical that you know everything from the basics to some really advanced techniques. And since we only pass the top 1% of developers you need to be prepared to talk about the projects that you’ve worked on in a little bit of detail.

You also need to be able to answer system design questions. System design questions are very important for a screener to understand how you are able to visualize a product from an architectural point of view. You should also be able to go deeper, all the way to the code, and even how it is going to be deployed on the final environment where it’s going to run. So, you need to be prepared to discuss all those things related to end-to-end software development.

For example, if you are a Python Django developer, you should be prepared to answer any questions relating to that language in depth. It’s also good if you’re capable of answering questions about system design and also planning as well.

Where Developers Get Tripped Up in the Technical Screen

During a technical screening, most people are not prepared to go into detail on algorithms and data structures. Again, it comes back to preparation. We often have people complain that they don’t need to know this stuff for the work they do but being competent with both algorithms and data structures is very important for high-level work. Another thing I see a lot of candidates struggle with is when we ask them to explain various concepts in English. I’ll emphasize again, that having strong English communication skills is vital to ensure placement with top-tier US opportunities.

Final Words of Advice

To wrap up this post, I want to emphasize a couple of the key points I’ve made above. In Silicon Valley, it’s very competitive to find good work. If you’re trying to get into this market as a remote engineer, you have to be truly exceptional. Turing’s tests are designed to filter out all but the best candidates to be matched with our clients.

If you’re really serious about securing one of these most in-demand positions, my advice is as follows:

  • Preparation is critical. If you have a weakness, work to improve it
  • Don’t underestimate the importance of understanding algorithms and data structures because if you do, you’ll fail the MCQs or the technical screen
  • Make sure your ability to communicate in English is up to the task. If it’s not, take action to improve it
  • Be sure to have a portfolio that includes projects related to the languages you claim to know
  • Polish your CV. Scrub it of mistakes because if you don’t, we’ll notice them and that will hurt your chances

Next Time

In my next post, I’ll be talking about what you should expect once you’ve passed the MCQ and technical screens, how candidates are matched with opportunities and what you should do to ensure that your onboarding process goes as smoothly and quickly as possible.

 

By Feb 5, 2020
Management

10 Traits of the Best Remote Managers

A recent Inc. article recalled a time back in 2002 when Google tested a hypothesis that managers were a “necessary evil” and weren’t important. This hypothesis wound up being incorrect, but it ultimately led to Google’s discovery of ten traits of highly effective managers. Interestingly, these traits seem to be even more critical for managers of remote employees…. View Article

A recent Inc. article recalled a time back in 2002 when Google tested a hypothesis that managers were a “necessary evil” and weren’t important. This hypothesis wound up being incorrect, but it ultimately led to Google’s discovery of ten traits of highly effective managers.

Interestingly, these traits seem to be even more critical for managers of remote employees. Here are the characteristics and why they matter for boundaryless teams.

1. Be a good coach.

While coaching is beneficial for in-office employees, it’s even more crucial for remote teams who don’t meet and influence each other in person. The best remote managers coach their employees by helping them improve their productivity. They also help their teams sharpen their career skills and coach them toward staying self-inspired and self-motivated.

2. Empower teams and don’t micromanage.

While micromanaging is ineffective in the office, it’s an absolute death knell for remote teams. Constant emails and Slack messages to the same employee regarding every aspect of their work reflects a complete lack of trust by a manager. It means the manager has no confidence in the employee’s talents.

The best managers trust their remote teams. They empower their staff with the tools and coaching needed to do excellent work on their own.

Operating with a high level of trust requires good hiring practices. So hire the most skilled people on earth (an ability made possible by remote work) and then trust them to do what they do best.

3. Create an inclusive team environment, showing concern for success and well-being.

Many companies have a mix of remote teams and in-office employees. Managers need to foster morale and a strong sense of community. If a distant team member feels left out of the company’s social structure and culture, their sense of isolation will make their work suffer. Managers can’t let this happen.

4. Be productive and results-oriented.

Traditionally, a primary measure of employee performance has been the number of hours spent in the office. But managers of remote employees need to shift this standard to one of results. As long as an employee is performing well, when and where they work should be of little concern.

5. Be a good communicator. Listen and share information.

Communication has always been important in business. But with distributed teams, it becomes even more important. As a general rule, managers should do what they can to communicate overly. All staff must be receiving the right communications at the right time, regardless of their location.

6. Have a clear vision/strategy for the team.

As the Inc. article pointed out, “with no North Star, employees sail into the rocks.” Especially with a remote team, a manager should involve the entire employee base in the creation of the team strategy for success.

7. Support career development and discuss performance.

I already mentioned the mistake of neglecting remote employees and allowing them to feel isolated. It’s also essential to help them grow in their careers and make sure they know they’re appreciated.

Help them work through their weaknesses, point out opportunities, and acknowledge them for their strengths. When employees aren’t physically present with their manager and co-workers, career development needs to be an even stronger effort than it is with office workers.

8. Have the expertise to advise the team.

The best managers are highly proficient advisors who gain trust and admiration from the team. These characteristics are especially important for employees who don’t often (if ever) see their managers in person. The leader of a remote team should be even more skilled in their trade than the highest-performing team members.

9. Collaborate.

The need to collaborate is magnified with remote teams. Team leaders should be aware of the latest apps for messaging and video conferencing. Managers should also encourage their people to test tools and suggest new ones.

10. Be a strong decision maker.

Boundaryless teams must have someone to count on for quick, proactive decision making. Otherwise, the “out of sight, out of mind” nature of a distributed workforce will lead to attitudes of “it’s not my job.”

Remote teams need to know a project’s direction, and everybody should understand who is doing what. Managers should be trustworthy, quick-thinking, and decisive.

By Jan 14, 2020
Person smiling in front of a laptop
Management

How to Make Remote Workers Feel Like Part of the Team

There are two answers to the question of how to make a remote worker feel like part of the team- a short one and a long one. The short answer is: Just be human. Treat your remote workers just as any other employee (just as any other person, rather). Be empathetic and be there for… View Article

There are two answers to the question of how to make a remote worker feel like part of the team- a short one and a long one.

The short answer is: Just be human. Treat your remote workers just as any other employee (just as any other person, rather). Be empathetic and be there for them in whatever capacity you need to or can be.

Sounds simple enough, right? And it is! But the easiest things are sometimes the hardest to implement. The following explains how to do just that:

1. Inclusion

Include your remote workers when it comes to planning and setting up tasks. Ask for their input and feedback instead of just assigning them predetermined tasks and projects. A simple, “What do you think?,” can go a long way.

2. Fly them out!

For many people that live in remote parts of the world, the prospect of flying out to the Silicon Valley may be a dream come true. Even if your remote workers don’t necessarily live that far away, flying your employees out can go a long way in terms of building respect and trust between you and them.

Beyond all of that, in terms of increased communication and team-bonding, this is a great idea.

3. Fly yourself out!

The next best thing to flying your remote workers out to you, is to fly yourself out to them. By learning about their local culture and trying to assimilate, you make yourself more personable and are able to build a more respectful and empathetic relationship.

4. Understand culturally important events.

In today’s environment, sensitivity to different cultures is critical. For instance, in Eastern Europe, birthdays are extremely important, so some companies send birthday cakes and decorations to remote workers’ houses and have an online celebration with the team. This is an example of a great gesture to show that you care about your employees and want to make an effort.

5. Meetings

When conducting meetings, you want to make sure that your remote employees truly feel included. A lot of times in group meetings, remote workers feel disengaged as a lot of the focus falls on those physically present in the office. One way to solve this problem is by having purely video-based meetings. This means that both local and remote workers dial in on separate, individual screens. This makes for a more balanced interaction, ensuring that no one feels left out. Lastly, make sure that your meeting notes are pre-distributed so that everyone has the same level of knowledge.

It’s all quite simple, really: treat all your employees fairly and equally. Respect the ambitions of your remote workers and be open to hearing them out, as well as implementing their ideas, if they choose to present them. If you follow these guidelines then your remote workers will be happy and feel as though they are a part of the office, even if they can’t actually be there.

By Feb 7, 2019
Sunglasses on a beach
Management

Incentives and Freelance Workers: A 3-Point Guide

It’s summer and the heat’s never been worse. Sweat drips down your face, as an itch crawls up your back. It’s 115 degrees. The world closes around you. Blackness. Then you take a sip of lemonade. Sweet, simple, iced lemonade. The cool refreshment brings you back from what feels like the brink of death. This… View Article

It’s summer and the heat’s never been worse. Sweat drips down your face, as an itch crawls up your back. It’s 115 degrees. The world closes around you. Blackness.

Then you take a sip of lemonade. Sweet, simple, iced lemonade.

The cool refreshment brings you back from what feels like the brink of death.

This feeling of overwhelming relief given by a sip of lemonade on a hot day, is similar to the feeling of hiring a freelancer for a project. They are a short-term solution to a short-term problem– a quick fix. Like a little sip of lemonade.

It is predicted that by 2025, the majority of workers in the United States will be freelancers. As a manager, you will likely find yourself managing freelancers, as well as your usual long-term employees, in the future of your career. Motivating and incentivizing these workers to do a great job will be essential.

But how do you incentivize a freelancer, seeing as they aren’t full-time employees and therefore, don’t receive company benefits? How do you ensure that a short-term employee gives their assignment their all, when they have relatively little to gain?

Here are some ways to increase the happiness of your freelancers, and therefore, ensure that they provide quality work for your company:

1. Avoid Micromanagement

There is a reason why a freelancer chooses to be a freelancer. They
are self-starters who value their independence over anything else.
The last thing that they want (particularly if they’re doing some sort of
creative work) is for you to interfere or keep a constant eye on them.

Let them be.

You hired them because you were impressed with their work. They’re
good at what they do, so trust them.

That being said, it only stands to reason that as a manager, you will
be concerned about having materials completed and turned in, in a
timely manner.

Project management tools, such as Evernote, Trello, and Microsoft
Project are all useful when it comes to managing freelance workers.
These tools allow you to “check in” and ensure that tasks are being
completed in a specific time frame, while also giving the freelancer
their space.

2. Diverse Work, Not Money

A recent Stanford study found that money did not prove to be a significant incentive for freelance workers. While this may seem counterintuitive, in the words of entrepreneur, Peter Daisyme:

One of the reasons they freelance is because they may have personalities where they can get easily bored doing the same job day in and day out, and prefer the fast-paced nature of having different clients in varying industries who provide them with diverse assignments. It’s important to create this aspect of the freelance culture because it is what excites them and keeps them focused and working hard.”

If you’ve hired a freelance writer to work on blog posts, for example, you may want to increase their responsibilities over time. Writing infographics, whitepapers, producing social media content, graphic posts, scripts for videos- these are all excellent examples of diverse tasks that you could give to your freelancer to keep work challenging and interesting for them.

3. Long-Term Freelancers

Hiring freelance workers can be an optimal strategy, if it suits your business goals. There are many benefits to hiring freelancers, but the top ones include reduced employer risk, access to a larger talent pool, overall flexibility of workers, and the ability of your company to save money, since you don’t have to pay for full benefits for these workers.

However, due to the fact that freelancers aren’t given the benefits that full-time employees receive, it is important to throw something their way to make your company stand out as the place where freelancers want to lend their talents.

For instance, Microsoft recently announced that it will be giving their 2,000+ contractors and vendors 15 days of paid vacation and sick leave. A benefit like this won’t cost your company that much in the long run and will give you an edge over other companies looking to hire freelancers.

Other work-life benefits that you may consider offering to freelancers, include:

-Paid breaks: Over 71% of freelancers want paid breaks and only 28% of companies offer provide that.

-Health and well-being benefits: These benefits do not have to be as elaborate as they are for the full-time employees, but having something as an option for freelancers will make your company stand out.

-Paid time off: A recent Limeade survey found that providing paid-time off corresponds to a 13% increase in worker engagement.

By showing respect for your freelancer and their time through these actions and benefits, you will ensure that your company receives a positive reputation in the freelancer community. This will allow you to continue to utilize the diverse talent that hiring freelancers can provide to you, as well as keeping your employees happy and productive.

By Jan 23, 2019
Headphones on a desk
Management

4 Ways to Improve Communication with Remote Teams

When discussing the possibility of hiring remote workers, your company may express concerns over whether standards when it comes to communication, productivity, and teamwork may take a hit if they begin hiring employees to work outside of the office. While this is a natural concern, we are here to tell you that even if your… View Article

When discussing the possibility of hiring remote workers, your company may express concerns over whether standards when it comes to communication, productivity, and teamwork may take a hit if they begin hiring employees to work outside of the office.

While this is a natural concern, we are here to tell you that even if your company chooses to hire remote employees, it is still more than possible to maintain the same ideals that you hold for your regular, in-office staff.

The key to this is, of course, communication!

By maximizing communication between yourself and your company’s remote employees, it will feel as though they really are a part of the office.

Here are some ways to do just that:

1. Develop Smart Teams

In a recent study, MIT professors concluded that regardless of an on or offline set-up, the important ingredients for a “smart team” are the same: frequent communication, equal participation, and high emotion-reading skills (empathy, basically).

Part of this comes down to just hiring the right candidates- people with shared values and ethics. And, yes, this sounds a lot like “corporate jargon”, but if your employees aren’t intrinsically motivated to complete a task and aren’t on-board with the company mission, they are more likely to procrastinate their work, leading to lower levels of productivity.

Additionally, it’s also important to make sure that your remote workers are comfortable with the communication technology that your company prefers to use. For instance, if you prefer to communicate with employees via video chat rather than e-mail, you’ll want to be sure that those in your charge are all comfortable using that form of communication.

It’s important to invest in people and to treat them as you would any onsite worker. So, essentially, invest in travel and get to know your remote employees face-to-face, if possible. (Many remote companies plan at least semi-annual meetups for their workforce!) Build rapport. Keep your personal connections alive by discussing topics outside out work. Include remote employees in online communication channels, be it Slack, Skype, Perch or another tool that your company uses.

Remember: remote workers are as much part of the company as any other employee and should be treated as such. Recognition goes a long way.

2. Recognize Individual Contributions

It’s important to set up clear “Objectives and Key Results” (OKRs) for all of your employees. Use project management tools like Trello, Asana, or Microsoft Project for this.

Once all of your workers know the tasks that they need to complete, be sure to recognize (both publicly and privately) the accomplishments of your workforce. Weekly shout-outs on general company channels, for instance, go a long way.

3. Over-Communicate

When trying to make up for the lack of physical interaction, over-communicating (communicating more often, with more detail than you normally would) is the best way to build and maintain a steady working relationship with your remote employees.

Be sure to use multiple communication channels to keep up with your employees- e-mail, text, phone, video, etc. However, do not send the same message to your remote workers via multiple channels. You want your frequent communications to serve specific purposes, rather than become redundant and unwelcomed by your employees.

4. Two Is Better Than One- Pair Your Workers!

A recent study found that paired programmers work “twice as fast” to produce code that is simpler, better designed, and easier to extend. The study proves that not only does paired programming keep things fun for remote workers, it also greatly improves productivity.

All workers, at the end of the day, are human beings and social creatures. Therefore, by making the workplace a less isolating experience, you are sure to get far more from your employees in the way of quality work.

Remote workers may not be physically in your office, but by following the steps listed above, they can still feel like a central part of your workplace, while allowing you, as an employer, to take advantage of remote talent that may not have been available to you otherwise.

By Jan 23, 2019