Published in


Best tech company to work for in 2019 is — as always — illusive

Workplace By rawpixel on pixabay

What is 1st Generation software company?

  • Rigorous time & activity monitoring
  • Oak cabinets filled with books from 60s-70s, narrating some founding principles of software — no one loans books from this library, but they are always there.
  • High quality leather chairs and posh cabins for managers and salespeople — in complete contrast with non-ergo chairs in tiny cubicles for developers
  • Endless documentation — often on paper. In fact, it is rigorous specification — describing what happens when user’s focus moves out of each textfield — in a 20 fields form fill-up. And you need to write it, most of the time!
  • Manual testing is the lantern before lightbulb, and you must embrace it. Development cannot start before 100% green test case review, and integration testing cannot start before 100% green unit testing charts. They are often documented inside excel sheets, and worse, they are always emailed within the team, but rarely versioned!
  • By the time product reaches end user, specification guy might have retired / died / changed the industry. (not quite though, they used to be quite patient in those days!)
  • Documentation followed by review meetings that have little impact on end product / service being built
  • You must log every minute of your work — earlier on paper, now in an ugly looking monitoring system.
  • ISO / CMM audits may make or break your career — make sure your canteen is serving the right food to the auditor, even if it’s not your job.
  • Worse, you are evaluated based on what you put there. Honesty is often punished.
  • Work estimates are based on number of lines (ewww…) — and employees are often rewarded based on their code-writing volume history.
  • That reward consists of tasks proclaiming greater technical challenge, and quite less often, money.
  • As a developer, you cannot browse the Internet unless it is bestowed upon you as a privilege.
  • But you get a personal shiny telephone (remember — no mobile!) on your desk. Enjoy!
Photo by Jon Tyson on Unsplash

What defines a 2nd Generation software company?

  • Workplace web-browsing isn’t a sin but an important part of daily work-routine.
  • Regulated & meaningful web browsing is always welcome, but browsing Kylie Jenner’s instagram feed is still considered uncool during office hours. And being uncool is more shameful than facing a ban.
  • Documentation is OK with minimal size, but specifications are scowled at. That actually puts you — the developer — in a fix because you are assumed to know how things should work, and you must revise it until it pleases your manager’s eyes.
  • Meetings are agile, and often describes more than what is in the source control.
  • Bottlenecks are hated, and emphasis is often “Get whatever gets the ball rolling” rather than going for “all-serving generic solution”
  • If you do not show up on that bi-weekly beer party, you are labeled as out-of-culture, and you must fix it.
  • Working remotely is OK, with acceptable excuses (sick child) and everyone knows it is your spouse wanting some quality time with you. <Wink wink.> (Movie theaters are often packed with remotely working bosses :)). </Wink Wink>
  • Software processes are replaced by agile workflows, and you are still judged on Story points you complete — irrespective of how those story points were initially allocated.
  • Scrum Master is a role even in smaller teams, and if you miss to advance a JIRA ticket or submit Pull request, you are the woman who committed adultery, and must face stones from every bigger sinner.
  • They take greater effort in knowing what keeps you happy. Perks take precedence over salary figures, and you are often asked if you like your tech stack, though nothing is guaranteed because these choices are often made by business needs.

What defines a 3rd Generation software company?

  • Little or no rules around company assets — at least tangible ones — inside the office space: stationary, internet, gym, cafeteria, game room. The list extends based on whether company is 7 figure or 10 figure.
  • Facebook and Google are already known to provide great perks, but so many of them provide for your kid’s education too. Just check the list that includes familiar names like Paypal, Twitter, Airbnb, Intel and LinkedIn. Most of them consistently make it to the list of best tech companies to work for.
  • They all possess central repository of knowledge that one can build upon — pre-built software libraries and frameworks that one could readily use. Each of these developer heavens have their sizable Github presence, including Google, Facebook, Apple & Microsoft.
  • You can shift attention to projects that interest you. Google reluctantly killed its 20% pet-project time, but Google was never alone. As far as you do not falter on your delivery dates, often, this allowance exists without announcement. That’s how open source thrived. And that’s how you acquire newer tech skills through online learning — even at workplace.
  • Remote anywhere: Now this is where it gets exciting, and you could call it Gen 3.1 if you want. Their infrastructure allows devs to work from anywhere in the world. And this is not just couple of days per week work from home advantage. It’s for lifetime. Working on Thailand beach is no longer a new fad. While this may or may not apply to giants, there are bunch of companies that only exist on the cyberspace — Automattic, the company that created wordpress leads the pack.
  • You always face that sweet choice of choosing your workplace based on cost of living, and company provides you with the stipend. Heck, you can also livestream what you do while living offshore.
  • There is little or minimal work-hours tracking. But some friendly collaboration tool always tracks you — be it skype for business, Microsoft Teams, Slack, or P2Theme — also used by makers of WordPress.
  • Be ready to travel at least once in a year to meet with your international co-workers to really feel the culture.
  • You maybe already wondering how to get into fully-remote company — that’s where noose gets tighter. They all have rigorous 4–8 weeks interview system that involves project work (often in a team) to evaluate if you are really fit for working independently. Beyond this, the entire process is not-so-transparent, because exceptional devs rarely blog / brag / fret about their remote heavens and hells. And that’s what make them the hardest aim on the dartboard.
  • There are fully remote firms that are worse than 1st Gen process monsters — such as bodyshop like GTeam (Devfactory). They exploit devs off freelancer platforms — you are waiting for a boring 3–4 rounds of tedious technical evaluation — some tests where you can google answers, and some weird IT project that you could fail / make for 1000 reasons. Bottomline? All decisions are completely non-transparent with respect to hiring and firing people.
  • Recruiting reps are puppets, uhhh, chatbots.
  • Requirements are often high-context, meaning that you understood them from single line (“Implement single sign on mechanism”). If you cannot code without Google, no luck asking a coworker, too, since every minute of your time is billed. Anything that is far from product team’s expectation can get you fired.
  • If entire team is remote, your entire presence is what you accomplish in terms of your software delivery. Your presence in a company is defined not by the person you are, but by the developer persona you represent. Good luck being proud of your work.


Your best company to work for lies somewhere in the intersections



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Pen Magnet

Author of Comprehensive Approach to Senior Developer Interview), Startup writer, Programmer, Tech Career Blogger, Education Engagement Enthusiast