How to identify a great tech organisation before you join

Published on January 02, 2022

This is foundational series article. Read more here

Tagged: #developer-experience #management

Follow me on twitter for more posts like this

No one wants to waste time working for an organisation that’s a bad fit. But how do you know a good place from a bad place until you actually work there?

It’s important to spend the same amount of time analysing a potential organisation as they spend analysing you!

During an interview process an organisation has personality testing, resumes, tech testing, behavioural testing, reference checks, bank checks, police checks and more.

If it sounds like a very one-sided process that’s because it is! But there are ways you can bring more balance and here are some important things to research before accepting any engineering job offer.

The referral

The absolute best way to know if an organisation is going to be a great match for you is by getting a referral from someone already there that you have worked with before. You can investigate all the topics below over a couple of coffees.

I’d be reluctant to join any organisation now unless I knew someone there that has lasted for 1+ years.

Another good idea is to check your network for anyone that worked at the organisation in the past. Just be aware that organisations do change over time so older information might not be relevant. Also large organisations can have huge variations between teams so be aware of that.

How are they hiring?

Your first chat will probably be with a recruiter. It depends on the context but if they’re asking you questions you can also ask them a couple of questions about the organisation’s hiring practices.

Do they depend on organic applications vs internal references Vs internal recruiters Vs external recruiter? Some organisations are so desirable to work for that they don’t do much sourcing for talent (sourcing means going out and finding people). These orgs can take their pick of internal referrals and direct applications. Some organisations have to use internal or external recruiters to find people.

It’s worth noting if the organisation has to use external recruiters. Why aren’t they getting many direct applications or referrals? Why haven’t they invested in an internal recruiter? There might be valid reasons here like the company is too new or too small. Or the market might be tough like it was in 2021. Important to know why though.

Ask about the recruitment process also. What are the steps? Ask how long you should wait for a response after completing a stage of their recruitment process? A week or more is long these days.

If an organisation needs a personality or behavioural test before having any kind of in-person interview with you then you should be wary of what kind of organisation it is. You should at least make sure that you will also get the results of the test afterwards so you at least get something for your time.

Learning

Always ask what the learning structure is like at the organisation. Most great organisations will have accounts with popular online learning platforms, they purchase books, they offer secondment opportunities. Good web companies will pay for certifications for cloud providers or similar. Some organisations will occasionally send people to conferences or external trainings.

There is a rule of thumb for career learning where around 70% of learning is “on the tools”. This is your day to day role. 20% of learning is semi-formal internal training - this is lunchtime talks, peer review and comment on your work, mentoring and coaching from your organisation. 10% of learning is formal - conferences and specific courses. How much of this is provided at your org and how regular is it?

A high signal for how much you will learn at an organisation is if there’s a community practice from the organisation. Is it “famous” in the community? Does it share technical excellence outwards? This is more difficult for smaller organisations so it’s an extra strong signal for small orgs!

Ask “Why isn’t someone being promoted into the role?” that you’re applying for. Why was the organisation not able to train someone internally?

The future

Have they done any “Get our house in order” work recently? Are there any worrying technical debt or process issues on the horizon as the organisation grows? Every organisation will need to explicitly invest in internal improvement as it grows. If it doesn’t it will smash into a ceiling where old ways of doing things don’t work any more. Check if the organisation is self-aware.

Ask about how new ideas get added to the product and are any of your interviewer’s ideas in the product? This can be founder led, customer driven or maybe internal innovation. It could be all of those! Figure out if the inputs to the team is a problem or strategy that the team executes on. Or if the team gets a list of features to build from the founder or other external source. I prefer getting problems or strategies. Make sure this process matches your expectations.

Is there a backlog? How does work get prioritised from backlog to team iteration? A red flag here is that 3-4 iterations are pre-filled already. It just signals that there is a very long loop between learning something and changing the direction of the product.

How does work get done?

Individuals and tasks vs teams and problems - Some organisations focus on the team and problem and some orgs focus on tasks and individuals. There are advantages and disadvantages to both. Try to understand which one this organisation is.

How does the team collaborate? Asynchronously, synchronously, is it mostly remote? This is a personal preference on which culture you enjoy more but make sure that your preferred style matches the organisation or team you’re joining.

Does the organisation support a realistic work-life balance? When last did the interviewers do overtime? How was that managed? e.g. did they get bonuses or time off to compensate?

Make sure that your standards for engineering practice will match the organisation. You don’t want to have to beg for permission to do your job right. There are products and organisations out there that are scrappy, have limited engineering budgets and are moving very quickly. They don’t have time for practices that would be normal at Microsoft or Google. When a small startup makes a mistake it has less impact than when a big org messes up. Make sure this appetite for risk and investment into engineering matches your expectations.

How does the organization measure output, outcomes, impact? What are the metrics? Which of the three are emphasised in the metrics?

Product engineering

Is there a UX practice? What does that look like? What is the ratio of UX to engineering? Every product organisation these days should have some sort of UX practice. The bar for quality experiences is very high.

Is there automated test coverage of some kind and is it increasing or decreasing? Every organisation (i.e. any team > 1) should have some automated testing to prevent regressions while moving forward with improvements. The software we build these days is just too complicated to understand an entire system. Even if you do understand every part of a system you will have to upgrade third party dependencies at some point, or your host will upgrade. Having automated testing reduces the risk of these operational events.

Is the team a cost center or a profit center? It’s almost always better to work for a profit center in an organisation. Most organisations these days have realised that any IT or engineering function is a profit center but some have not. Make sure you can answer this for the organisation you’re joining!

Technical stuff

This will be very specific to your role rather than the organisation so I have very little detail here. You should already know what to ask about the specific tech. I would recommend reading the Accelerate book and asking if they monitor the 4 metrics.

  • Lead Time - The time it takes to validate, design, implement and ship a new valuable thing
  • Deployment Frequency - The number of times per developer per day we ship to production
  • Change Failure Percentage - When you deploy to production so regularly, do you keep breaking it? Signs of change failure could be red deployments, - bugs, alerts etc…
  • Mean Time to Recovery / Resolution - If there is a failure during a change, how long does it take you on average to recover?

For example great organisations have a lead time of “on demand” to ship a meaningful change. Bad orgs ship at monthly or longer cadence. There might be valid reasons for a monthly release cycle but releasing on demand makes everything about engineering less stressful so consider carefully joining any organisation still shipping weekly or monthly.

Execution culture and Innovation culture

Marty Cagan talks about how product organisational cultures usually fall into one of two buckets - execution or innovation driven. Sometimes, but rarely, they can be both.

Execution cultures are focused on commitment, urgency, accountability, collaboration, results.

Innovation cultures are focused on experimentation, open minds, empowerment, customer focus, product discovery.

Execution cultures are usually more difficult places to work, but it’s dependent on what kind of culture you excel in also.

You should have a think about which culture you enjoy and then make sure the organisation you want to join matches that preference.

More detail here: https://svpg.com/innovation-vs-execution/

Transparency

There are organisations that practice extreme transparency but they’re not too common. Too much transparency can be distracting e.g. if you’re asked to give feedback on org-wide change every few weeks it starts to become a chore.

But the organisation should be sharing what’s happening at a regular cadence. Does the organisation share business objectives and strategy to the rest of the team regularly? Do they follow up and share reporting regularly?

What is the NPS for the employees of the organisation? Is it even measured? Is it published? How is it acted upon? The organisation should be running some kind of process to measure how well employees are enjoying their work.

Customer focus and kind companies

I prefer companies that are focused on customer success. I think they are better places to work. It’s important to understand that the customers are the people who pay for the product.

It might not be obvious who the real customer of a product is from the outside. Social media is an example where decisions are driven by what’s good for their advertising customer, not social media account holders, account holders are incidental customers of the platform.

Figure out if you want to help the real customers of the organisation you’re joining.

When you know who the primary customers and incidental customers are then you should figure out if it is a kind company. In my perfect world we would would all only ever work for kind companies!

Summary

I hope these tips help you find an amazing organisation. I do recommend looking for a referral if it’s at all possible. It’s so much easier to check a company’s culture via someone you trust.

Best of luck!

Let me know if I missed anything or if you have any comments over on Twitter.

Darragh ORiordan

Hi! I'm Darragh ORiordan.

I live and work in Sydney, Australia building supporting happy teams that create high quality software for the web.

I also make tools for busy developers! Do you have a new M1 Mac to setup? Have you ever spent a week getting your dev environment just right?

My DevShell tooling will save you 30+ hours configuring your dev environment with all the best modern tools. Get it here

https://darraghoriordan.gumroad.com/l/devshell


Read more articles like this one...

List of article summaries

#developer-experience

Consistent modern shell tooling on MacOS and Windows WSL for developers

I regularly code on both MacOS and Windows machines and I was always annoyed how different the default experiences are on each. I need to use the same tools and the same experience on both.

Windows “WSL” (Windows Subsystem for Linux) is a great tool for this you can use on Windows 10 and newer. The latest version lets you run a full Ubuntu instance that integrates seamlessly with the underlying windows instance.

By using WSL2 you can have a (mostly) identical developer experience jumping between MacOS and Windows.

Better tooling for Developers

Many of the terminal tools that come with unix environments are functionally similar to how they were 20 years ago. But other developer tooling has advanced quite a bit since then.

You can replace tools like ls or cat with modern equivalents that support full colour, unicode icons, git state and more. Terminal prompts can be made git aware and use colour to indicate state so you don’t have to query git so often.

Keeping developer experience consistent across machines

Keeping any shell changes you make on one machine up to date on all the machines you code on is a nightmare without the right tooling.

This article also explains all the tools I use and how I keep the same terminal setup consistent on MacOS and Windows!

Let’s go!

#developer-experience

How engineers can help deliver software effectively

Delivery managers and team leads have the responsibility to deliver a software system via an engineering team.

Your customer wants every feature to work perfectly and they want it delivered yesterday. Your team wants to learn and grow.

It’s a tough role managing all the stakeholders and creators in a project.

Engineers can help drive great delivery by empathising with and supporting the delivery manager or leads in a project team.

#developer-experience

Set vscode as the default for text files on mac

How to set the default text editor to be visual studio code on the mac

Update 29 Jan 2022 - I added this and more to comprehensive instructions for configuring a modern developer shell and MAcOS in another article here. You should check that out.