Let’s face it. As an engineer you get a ton of job offers. Most have great “perks” and high-salaries. But choosing which tech company to work for isn’t only about the money. Sure another 10k in your pocket is nice — but if you hate your job it’s probably not worth it.
Choosing doesn’t need to be complicated though. You just need to consider a few key attributes. We’ve polled engineers to compile a starter list here — so you don’t have to.
Consider re-assessing job opportunities and find your ultimate workspace by looking at these attributes the next time you consider something new:
Flat(ish) Organizational Structure
A flatter organization in the tech world usually means more effective execution in a lot of areas. On-boarding, innovations, iterations and approvals. More importantly though it helps facilitates autonomy and open communication to explore and innovate, as well as empower you to judge and decide.
A few years ago, Google employees were asked on Quora what their favourite perk was. An overwhelmingly popular response was “the people”. Surprising?
Well they say you’re the sum of the 5-people you spend the most time with. At work this isn’t any different. Working beside smart, experienced and self-motivated people gives you inspiration, energy and education. It’ll push you to become better. You’ll develop faster and feel more fulfilled at work. It’s invaluable. Don’t overlook this one.
Appreciation for the Fundamentals
In a thoughtful article called How to be a great software developer, Peter Nixey, CEO of Twistilled, writes the following
“Companies are built on people and teams who day in, day out, commit good code that enables others do the same…in all likelihood you and your team will depend, should depend not on those who think they are “Rockstars” or “Ninjas” but on reliable people who work in reliable ways.”
While you want an opportunity that will let you shine, you don’t want to join a team so high on being “brilliant” that they gather dust on the basic habits. The processes and responsibilities that drive “effectiveness” in a fast-moving world are dependent upon detail and solid fundamentals.
Encouragement of Expertise & Clear Commitment to Skills Development
An ideal organization will have a culture of deep-diving and developing experts. Think languages, frameworks and technologies to name a few. People who are truly interested in their craft. Expertise facilitates innovation and efficiency as it allows developers to quickly and intelligently apply deep-knowledge. The organization should also take a formal and tactical approach to evolving the talent of their employees, not just have a passive “we support you in your personal initiatives to grow” mentality.
Encouragement of Broad Knowledge
But expertise should not come at the cost of broad-based knowledge. Opportunities for learning new frameworks, design skills, and collaborating with other experts is also key to skills growth. Understanding a users experience or learning about interaction design can help you innovate in development. It also keeps things exciting. Finding an environment where this is encouraged. It doesn’t always have to be on projects — it can be in “20% time” or “innovation time”. Regardless of when it is, it’ll help you progress quickly.
Openness to Integration of 3rd Party Tools
FOTPI (Fear Of Third-Party Integration) is a killer. Engineering groups should not only be financially supported in exploring 3rd party tools to optimize simplicity, system performance and product functionality, but they should be encouraged to investigate new technologies and partnerships. It won’t always be a more effective approach than building it yourself, but having the flexibility and buy-in to always have it as an option is valuable from a perspective of both skills development and creative problem solving.
Collaborative and Hands-On Product Management
Try to find out how the Product Management team works relative to the engineering group. Product Managers who are more inclusive in the decision-making process or available to engage in that process helps. It will ultimately lead to developers accumulating more ownership over their products and enhanced perspectives to apply to ongoing decision-making.
Creative, Challenging Products in a Growing Market
There’s only so much you can grow as a developer if you are caged by a bland product or stuck churning out in a totally ripe market just hoping for small, incremental gains in commercial cruise control. Ideally, the organization you join is constantly designing and developing product that is necessarily novel with an opportunity in their market path for explosive growth. A company like this will truly push you to go beyond your potential.
Active Integration Between Work & Life
As I wrote in a previous piece, work-life balance is a misnomer; it’s more about work-life integration. As the piece states, “The best tech companies are the ones constantly working towards a state in which the “life benefits” provided to their employees both inside and outside the confines of the office walls are so well designed that “work” is almost seamlessly embraced as a source of enrichment for life.” Make sure an organization takes that stance and has active programs set up (e.g., Yoga, fitness, meditation, meals, etc.) to allow more life to come from being an employee.
Engineering Participation in the Hiring Process
Take a look at who is involved in the interview process; is it just senior levels of management and exec, or is it peers? And in your opinion, based on experience, is it the right peers? A well-structured (read: appropriately “flat”), conscientious tech organization with a productive, collaborative culture has a healthy involvement of developers in the interview and hiring process. If that is not the case, don’t be surprised if their day-to-day internal processes are similarly opaque.
These are just some of the attributes you can look for. Hopefully it’ll help you narrow in on the tech companies that really resonate with you.
Have others that you think should be included in the list? Send us a tweet @myplanetHQ