Cyprus : startup visa proposal

CNA shares some interesting news:

A proposal promoting startups visa, aiming to attract entrepreneurs from non-EU countries will be submitted to the next meeting of the Council of Ministers for approval, Cyprus President Nicos Anastasiades has said.

Addressing a graduation ceremony of IDEA, a starup programme co-founded by Bank of Cyprus and CIIM, the President also announced that a proposal from the legal framework for university spinoffs, liking academic research with entrepreneurship will be tabled within the next three months.

“We believe that the Cypriot startup visa will be one of the most competitive and will bring multiple benefits in the medium-term both as regards new jobs as well as promoting innovation and research and the boosting the competitiveness of our economy,” the President said.

Of course, knowing how long things take in this country (especially if the government is involved) and how twisted they get by the implementation time, one shouldn’t hold one’s breath.  But there’s hope, if nothing else…

Engineers Salary Data

Amitj Aggarwal, former Staff Engineer at Google (2008-2012), has collected a whole bunch of data in regards to engineers salaries, in USA and worldwide.  His points seem to be overly optimistic at times, but I don’t have any links handy to contradict his research.

Here are a few points to get you started:

  • Zoho, Salesforce pay 40% more than Oracle, Cisco, GE!!!
  • Top 7% or so engineers at Netflix, Amazon, Google, Facebook are paid more than $1.4M per year. Next 10% make $700K on average.
  • Facebook has lost relevance to Slack, LinkedIn, Snapchat, Pinterest and Quora. If you are working at Facebook ask for a 50% raise else move to a startup.
  • Oracle is loosing to cloud startups. If you are working at Oracle ask for a 60% raise else move to a startup.
  • ENGINEERS DO NOT WASTE MONEY ON AN MBA. You will make 2X more on average as an engineer.
  • Tableau, Splunk, Slack, Airbnb, Quora, Twitter, Facebook, Google pay more than $320K salary to their top hires. Definitely interview at these fine places. Uber top engineer salaries are $190-340K per year.
  • Starting salaries for fresh software engineering graduates is now $130K-160K. Ask shamelessly. For the best ones its ~$180K.
  • Apple pays 60% more than Samsung.

101 Most Common Interview Questions with Pass or Fail Answers

Following the recent post “10 Favorite Job Interview Questions for Linux System Administrators“, here is a more generic, but a much more comprehensive resource – “101 Most Common Interview Questions with Pass or Fail Answers“.  It’s not as technical, but it provides a good summary of common interview questions, from the generic ones like “Why do you want to leave your current company”, through brainteasers like “How many gas stations are there in the United States?”, to stress and communication ones like “What did you do when you had a boss you didn’t get along with?”.  The good thing is that you’ll find not only the questions, but also the suggestions on how to answer them.

Altogether, it’s a great resource to go through before your next interview.  Most of these questions are very common, no matter which position you are applying to.

What is a Senior Developer?

I’ve been hiring, firing, and working with developers of all sorts for the last couple of decades.  In those years, I realized that each developer is very unique – their strong and weak sides, knowledge gaps, working rhythm, social interaction, communication abilities, etc.  But regardless of how unique each developer is, it is often useful to group them into expertise levels, like junior and senior.  Companies do that for a variety of reasons – billing rates, expectations, training required, responsibility, etc.

And this is where things get tricky.  One needs a good definition of what a senior developer is (other definitions can be derived from this one one too).  There is no standard definition that everybody agrees upon, so each one has their own.

I mostly consider a senior developer to be self-sufficient and self-motivated.  It’s somebody who has the expertise to solve, or find ways of solving any kind of technical problems.  It’s also someone who can see the company’s business needs and issues, and can find work to do, even if nothing has been recently assigned to him.  A senior developer would also provide guidance and mentorship to the junior teammates. I’ve also came to believe that people with the real expertise have no problem discussing complex technical issues in simple terms, but that’s just a side note.

Anyway, recently, I came across this very short blog post, which sent me a spree of pages, charts, and discussions:

Because of this “What is a senior developer?” conversation on Reddit, I am reminded of the Construx Professional Development Ladders, as mentioned to me long ago by Alejandro Garcia Fernandez. Here is a sample ladder for developers.

The original article for the Reddit discussion – “The Conjoined Triangles of Senior-Level Development” is absolutely brilliant.  In the beginning it provides a chart of the conjoined triangles of senior-level development, which reflects my definition and understanding:


But it doesn’t stop there. It dives deeper into the problem, and, eventually features this Venn diagram:


.. and more.  By now, I’ve read the article three times, but I keep coming back to it – it just makes me think and rethink over and over again.  Once it settles in my head a bit, I’ll look deeper into the Professional Development Ladder and it’s example application to the senior developer.

Overall, this is a very thought provoking bunch of links.

10 Favorite Job Interview Questions for Linux System Administrators

As someone who interviews a lot of people (mostly for the web development positions though, not system administration), I’m always looking for more ideas on what to ask the candidates.  Today I came across “10 Favorite Job Interview Questions for Linux System Administrators“, which has a few of bits that I liked.

First of all, this GitHub repository is super awesomeness.  It also links to a few other resources with more questions and ideas.  Not only for sysadmin interviews.

Then, this one is funny, yet somewhat challenging:

2. Name and describe a different Linux/Unix command for each letter of the alphabet. But also, describe how a common flush toilet works.

It also checks that you know the alphabet.

9. Print the content of a file backwards.

“I like broad questions where each person could give a different answer depending on their depth of knowledge. My personal answer is 8 characters not including the filename.” – Marc Merlin, Google.

This one caught me by surprise.  My immediate thought was “tac some_file“, but that’s obviously not enough.  tac only prints the lines in reverse order.  Which is not the same as reversing the file.  Perl to the rescue, but I wonder what’s the most elegant way to do it without the scripting language.

As always, interview questions are not only useful for the interviews.  They are a good measure of your own knowledge gaps and habit pitfalls.  This time was no exception.

Why Some People Get Promoted (And Others Don’t)

I enjoyed reading the article “Why Some People Get Promoted (And Others Don’t)“.  Unlike many other in this domain, it is simple, direct, and to the point.  TLDR version:

  1. Do great things.
  2. Tell people.

There are quite a few links to external resources, with research and insightful quotes.  Here are a couple of my favorite bits:

‘[S]ent does not mean received’ is a profound thing. Half of your job in this studio is doing your work, the other half of your job is communicating that it’s been done. Because if you do it, and I don’t hear about it, how do I know what’s going on? I’m not trying to control everything, but in an intimate work environment, where we’re really trying to develop something complex, a nod, saying, ‘I got it,’ helps move things along.

And this part, which resonates with my inner blogger:

Asking for help is part of getting better at your job.

3. Work where people can see you.

Gaining visibility might require going outside your office. Maybe you have a side project, or maybe your work culture isn’t a healthy environment to pursue visibility.

Promoting yourself doesn’t have to be on someone else’s terms. Write a book, start a blog, make a side-project, collaborate with new people outside of work, or speak at panels and conferences. Tell people about what you’ve done, what you’re doing, why it’s important, and how you did it. Give talks, teach others, raise your hand for new projects.

On full stack developers

I came across an excellent blog post on full stack developers – “The full stack developer is a myth“.  I do much agree on what is being said there.  Firstly, the stack itself.

Non-exhaustive list of a technical stack layers and components
Non-exhaustive list of a technical stack layers and components

Secondly, on the problem:

A full stack developer is a myth not because none exist, but because the term is meaningless. It’s no different from a coding ninja or rockstar, but at least everyone knows those terms don’t actually mean anything.

Even limiting the term to a more specific context like web stack or mobile stack, you’d still get quite a bit of technology for a single person.  And yes, it’s changing a lot and fast too!

Every year there are new components added to each layer and every couple of years there’s a new layer added to it. Is it really reasonable to put out job applications asking for a full stack developer? It’s not only unreasonable, it’s stupid. Particularly when you start looking for one person who’s an expert in security, web development, UX, and servers; and this isn’t at all an uncommon expectation.

More so, there is a geographical component to this as well.  If you are in a small country like Cyprus, with very few technical establishments, even further down simplifying the stack won’t help you much.  Finding a web developer with good knowledge of HTTP, HTML, CSS, JavaScript, PHP, and MySQL is already a challenge.   And that’s like three or four layers…

On compensation

Once someone actually gets into Google, Bock said his department also looks at compensation differently. Most HR managers try to keep salaries within a limited range for any given position. But that creates a discrepancy between the productivity of the best workers and their salaries. The best employees are anywhere from 50-200% more productive than the average employee. “It makes no sense to pay them just this much more,” Bock said, holding his fingers an inch apart. “LeBron James is way better than just about anybody playing sports, and he makes a lot more money. And no one looks at that and says it’s unfair.”

Forbes, “Google HR Boss: We Don’t Care Where You Went To College