Hi there!

So. I’m on the 4th beer, sitting at one of the JFK terminals (New York City) and waiting for British Airlines, the plane for London. It was incredibly smart choice to book the plane at 6PM where I had to check out from the hotel at 11AM. I can tell you that 5 hours on the terminal is a very long time to go! Obviously, I have spare time so I’m going to take this opportunity to do a semi-short write out about the things that I learned in the past 15 years. That’s how much I am in this business. Not all professional of course. I would say about 11–12 years is a professional experience.

This story is not about how to write code but about something deeper, something that comes with experience and usually something you have to learn on your own skin. In translation, the hard way.

About Me

So who the hell am I is what you’re probably asking yourself right? It would be nice from me to do some short background before I do state ANY of the things below.

My official full name is Nevio Vesić. Look at that ć and treat it as c. Pronunciation of it is a bit of a challenge. I know. It’s a strange name. I’ve been named Nev, N, Nevi, Nevo, Vio, Navio. The most creative come usually from Starbucks. Fuckers.

Rijeka (Croatia) is the town where I live in. For those not knowing about where the hell that is, check this: https://en.wikipedia.org/wiki/Rijeka

It’s nice small industrial town. Not much to do, not much to see but is my home and I love it.

I’m 30 years old. Well 31 almost… I’ve grown some gray hair which scares the shit out of me!

Now to some more fun facts about me. If you’re on Linkedin, you can check my profile https://hr.linkedin.com/in/neviovesic. If you choose, for whatever reason to add me to your network, I’ll gladly accept the invitation. I’m one of those LION assholes with 15k+ of the contacts. I don’t SPAM. Hell, you won’t even get welcome email from me haha.

I believe it was mid-June 2000 when I’ve for the first time encounter with thought to become the software engineer. How I know that is because I have some old files that date to it. It was actually 11k lines of the code calculator written in C++. Was it bad, trust me, more than you can possibly imagine!

I was playing with C++ for some time after that and about 15 years ago, 2001, I discovered PHP! For past 3 years, I’m only supporting old things I did on the PHP. I’m no longer using it. I was, however, active with it for about 12 years. I’ve done many projects on it. Done bunch of internal frameworks. I was using things such as Zend Framework, Symfony, CI and Cake.

Current http://www.zang.io that is out there is entirely written in PHP. Due to many factors, we never did rewrite it into something more concrete but give us approx 6–7 months from now (November 2016). You might be surprised with what you see :)

Zang was TelAPI 8 months ago. We were acquired by Avaya in March 2016. With Zang/TelAPI, I am around 6 years now. Zang is a telecommunication API provider. We do telecom stuff! VoIP and all of the jazz.

Approximately around 5 years ago I started heavily, on daily basis to code in Python. Mostly with Django, Flask and Twisted.

Last 2/2.5 years I’m mostly all in Go with legacy python support. We’re pretty much doing an entire rewrite from python into better, Go.

Beside all of it above, I know things on the frontend such as React, Angular, Ionic, React Native, Node, Sass, CSS3/HTML5 and much more. It’s just pointless to list them all here.

My primary daily occupations are:

a.) Senior Software Engineer @ Avaya Inc.

b.) Frontend Architect @ Zang Cloud.

My daily tasks are:

- One of core team members

- Frontend team manager/supervisor

- Frontend DevOps

- Architect frontend (Golang, React, Redux, Node.JS).

- Backend (API) engineering involvement

In translation, a bunch! For past roughly 9 years I am working as remote worker from Croatia. Mainly for the US companies.

If you want to know anything else please, use linkedin ref above and add me.

Code Monkey!

You might be wondering what does monkey have to do with the code. Expression “code monkey” is used to describe developer whose sole purpose is to write the code. Code monkey would write the code without any privileges to contribute more to the service by, example, stating obvious mistakes that more senior engineer is making him do. In translation, you’re somewhat of a senior slave. A personal bitch wherever you like it or not.

By stating the above, if you’re a newbie, cut the shit about being something bigger than that . Face it, you are new into the game! It’s your first job. You can be a developer for 10 years. You can be the most brilliant developer ever walked on this planet. Regardless of all of that, you are still new to the whole business and therefore your classification is “junior developer”.

Development is not all about coding. There are many other fractions you will need to understand. In fact, being able to code well is not something that makes you senior. Experience is!

So prepare yourself. All what is bad. All what is boring. All of it is coming your way.

Incredible thing is that while you’re new, you are going to be happy. If you are not as experienced in coding, you will feel like you are re-inventing the spacecraft.

Why is it like that. Why is it that cruel? The answer to it partially lies behind fact that we live in a cruel world. The second portion of the answer is related to the fact that you are a newbie. Your solutions may or may not be adequate and therefore your solutions must be waged. They are going to be addressed, waged but most likely, there will be something you haven’t thought about that would result in even bigger damage.

You can expect to be junior for some time (year/s). In the reality, it’s all up to you. However, there is one nasty trick. Regardless of how much in the reality you are ready, it is not up to you to get adequate title addressed. Your management decides about that. You can be persistent but in the end, it’s up to them when and if they are going to start addressing that issue.

One thing is certain. You will have to study hard and code even harder if you want to get upper in the chain.

Before your thoughts and ideas are fully accepted (always appreciated) you will have to go through series of bumps on the road. Road you’re heading into is not as warm, flat and easy. It’s, in fact, nasty and mean.

In the moment your are senior, shit will hit the fan. As upper you are, as nastier place it is. Trust me. It’s fun but it comes with a shitload of responsibility that you have to deal with. There’s no I cannot. For I cannot you are going to get fired or bankrupt. While you’re junior, “I can’t do that” is always an option.

Companies usually have their own, internal hierarchy and rules around them. The example I’ve found on the net, displayed bellow, treat as the visual reference. It’s not the holy grail of hierarchy.

Taken from the http://www.hierarchystructure.com/computer-jobs-hierarchy/

You can check out http://www.hierarchystructure.com/ for more information about different hierarchies. Don’t treat this site as the holy grail.

Grow some balls!

This is, without any thinking, the most important thing you have to understand and understand it well!

You as whole depend on having as bigger balls as you can grow! As bigger they are, as better you are going to end up in your life.

The world ain’t all sunshine and rainbows. It’s a very mean and nasty place… and I don't care how tough you are, it will beat you to your knees and keep you there permanently, if you let it. You, me or nobody, is gonna hit as hard as life.

If you want something, go and get it! It’s that simple! Life is always the flat line. We are doing it to be complex. Get rid of maybe from your vocabulary.

Don’t let anyone treat you without well-deserved respect. Remember, you can always switch job. At least IT sector jobs are a bunch. As more senior you go, as more recruiters will literally fight for you. As more you’re exposed on the web, more and more recruiters will reach you.

By stating the above, if the owner of the company is treating you like shit, quit. Don’t look back.

Always value yourself. If you don’t value yourself how can you expect that anyone else does?

However, you need to know that there are boundaries. There’s thin line between valuing yourself and being egomaniac/asshole that no one will like. Remember to be a human being first. Everything else comes second.

About remote work

Don’t search for 100K if you’re not the very experienced software engineer. In fact, don’t search for it if your title is not the senior software engineer. Same just ain’t going to work out. Instead, focus yourself on your own personal evolution. Eat books, spread your wings across the web as much as possible. Learn. The earning moment will come. Be sure in that. It’s just matter of proper time. Nothing more.

You have to ensure to have enough. Fight for that. Don’t fight for something you know you’re not worth of. That’s very easily visible when speaking with HR guys. You cannot fake confidence to such level.

However, for experienced software engineer (senior), $100k yearly is the bare minimum. Anything below that is shit and you sir, are an idiot.

Idiot exclusion is valid only in cases where you’re working for the startup or you love what you do or people/company where you work at has something you’re searching for. These tradeoffs have to be your choice. If by any chance they are not, you have to start working on your self-esteem.

You can get offended now as much as you like but the reality is, you sir, have some deep issues you have to work on. Wake up!

Do not be deceived by attempts of the potential employer. They will most probably try to use the remote card on you. They are going to state that you are getting more by being a remote worker.

The reality is, for most of the remote workers, this is absolutely not hard fact but sadly, the exception.

Instead of writing down a bunch of elaborated text, I am going to try, to sum up into the list of the things you have to be aware of:

1.) You are going to use your own machine to do company work. For free.

2.) You are going to pay your bills such as electricity, water.

3.) You won’t have access to free drinks, food and such.

4.) High possibility that your room is your office. It’s hard to separate life from work while you do both of it in the same place.

The reality is, you are going to be at least 30% more productive working from home than from the office itself. Why is that, lies in the fact that at home, you are alone, at your own peace. There are no customer support, management, clients and overall, PEOPLE around you messing with your focus all the damn time.

8 hours in the office is in fact 3–4 hours of somewhat productive work. 8 hours at home is probably around 6 hours 30 minutes of very productive work. A big difference!

The additional very important fact is that you are going to be available 24/7 especially if you’re working like I am working from the Europe.

Time zones are as Trump says, nasty thing. By being in Europe, 6PM is noon in the EST (example state: New York) time zone!

If you’re working for MT (Mountain Time) or PST (Pacific Time) time zone, it’s even more radical. Can be 10AM or even 8AM! This is on Canada / United States side. Be aware of it.

In addition to the above, in many cases, you are going to be treated as contractor and contractor only. What same entails is really per company basis. Can be good, can be really bad. Realy bad = your vote == shit.

Your social life will be, without any doubt, damaged. Everyone, in the beginning, enjoys working remotely and just adore everything that comes along wit it. Ask them same question 6–8–10 years after.

You will see the shift in the answer. They’ll start saying how they love to work remotely BUT they miss people and office interaction.

Such damage grows proportionally as more you’re value and need social aspect of the life.

Not to mention drinks and all of the things that happen socially in the office which you are sir, going to miss if far away from the office!

Good thing is that you’re going to travel. Usually, companies offer trips to the HQ to visit them if you value to them.

Don’t get me wrong, I’m not bitching about this. I am in love in what I do and I don’t have an even tiny bit of the problems being available all the time for right causes. In fact, the beauty about my company is that no one is forcing me but still you can see me available at 9PM on the company calls.

I’m in fact enjoying the same as I love my work. I’m telling this to explain that working from home does come with some hidden aspects you have to be aware off. I’m telling this to explain that there’s much more than what’s on the surface.

Usually, you’ll, in the long run, have much fewer benefits than you have while working directly from the office.

For companies, that’s the best out of the both worlds. Less cost, more productivity. Be aware of that! Be aware again that companies sell remote work as “pure benefit for you” where in fact, sadly, in lots of cases, it’s opposite.

Be people person. Leave your ego at home.

There’s nothing worse than working for someone who’s full of shit (himself).

If you’re like that and at the same time, one of management, trust me, same behavior for your engineers just gets their boner hard about leaving the company permanently. There’s nothing you can do to change that. There are no benefits you can give. When they see your face, they want to jump out of the window. Different attitude is what they want from you. Nothing more, nothing less.

Instead of going at work happy you’re, as one who has to deal with such person is going into the nightmare. If you don’t have balls, you can get physical meltdown and really suffer like becoming depressed and in need of psychiatrist.

We all respect this kind of assholes as they are our supervisors but no one likes to really work for them. In addition to that, this kind of people usually are doing serious damage to the team confidence.

On the other hand, if you’re engineer and you’re asshole, same applies. No difference.

The fact is that no one likes this kind of people regardless of their hierarchy level. They’re usually avoided at all cost and joked behind their backs.

Above all, just don’t take up with bullshit even if it’s coming directly from your employer. If your employer is correctly tuned up, in the moment you tell him that he’s wrong, he’s going to look at you as value and treat you the same. If you agree on everything that he does and at the same time he’s wrong, that’s bad for you, for him and overall company.

Those who deserve your attention will be grateful to you if you point out their mistake to them. That’s called human interaction. Be gentle, be constructive, be open minded / accept self-criticism but speak up your mind! If you’re wrong, you’ll at least learn something! If not, you’ll help to put things on the right track.

Commit fully but stay with those that do the same for you.

You should always strive to commit fully to one thing. In this case, that thing would be your actual work. If for whatever reason you are not happy with the company you are working at, quit. It’s for your own sake that you’re doing things with passion, joy, and overall euphoria. Such approach will make your life much more satisfying both personally and professionally.

Understand however that there’s a tiny line between working and being exploited and understand that you’re going to be exploited.

There’s no if, it’s just when. Almost all of the companies will try to exploit you directly or indirectly as much as possible and at the same time give you as less as possible. You know, that’s business :) There’s reason why capitalism is on bad rep :))

Once you find that chosen company, stick with it. I found that balance at my current work and there’s absolutely no chance what so ever that I’d leave this company even if another company tops me up with another 100k. You’ll learn one day if you haven’t already that it’s not all about cash. Being wealthy is much more than just having loads of $$$.

Always be fair!

If you’re not living in a wealthy IT-centric country such as UK/US/CA, you’re most probably interested or dreaming of working for company that has HQ in one of these countries as it gives you greater stability, more fun projects and more $$$.

The $$$ part calculation is like this.

A senior software engineer is working from the office in the NYC. His market value is about a 150k year. If you work the same NYC company, under the same title, as the remote worker, from the eastern Europe, you should have roughly around 100k. That’s what I call fair.

You cannot expect to have as same as someone who’s living there. Even with 33% less, your standard of living is most probably better than them with 100% of the potential paycheck. Additionally, companies are looking for the cheaper force. If they wanted a 150k guy they would reach someone local. The point is, be humble. Don’t be greedy.

Be in the cheaper force but not cheap force. If you search for something, stand steady behind. Don’t search for the skies if you’re not grown your own wings. You’ll not get it. If you do, you’re one of rare and probably won’t last for long as you’ll be downgraded/fired.

Wage on accepting your first offer!

If you truly believe you’re good at your work, try not to accept the first offer you get in front of you. Decline it. Say you want more. Make sure you have solid reasons behind it because you’ll need to bring them up at that point.

Scratch this rule if you get something adequate in the first place. There’s fine line between wanting more and being greedy in the eyes of your employer. You don’t want to end up looking greedy in front of them. You want to end up looking like you appreciate yourself!

Work on your exposure!

One of the biggest retarded decisions you can do is to avoid being socially active on the network. Build your site, build your blog…

Build your social presence. Be active on sites such as stack overflow. You’ll need it. Don’t be stupid like me where I’ve put all into the companies and games and didn’t do any of the social presence.

Now I’m doing it, after 15 years in this business. :shotgun:

Plan your day!

Absolutely a MUST! Plan your day. Get in love in the calendar! Get in love into trello or some other good task management system.

Plan who you are, what you are, where you want to go and how you spend your time! This is something that will kick you off insanely.

Trust me, I know, it’s annoying but the end result is so beautiful.

Learn to say NO!

As more senior, as more people are dependent on you. Getting more and more senior will get more and more responsibilities into your way.

You need to learn to wage efficiently what you can and cannot do.

If you don’t believe you can do it, if you believe that there’s a lot of stress in accepting the same, say no. If you believe that some feature is not necessary now, say no. If you for say get the proposal for another off-job project, wage it, say no if you cannot commit.

DO NOT by any chance overcommit. Same will for sure end up in catastrophe for your reputation and if not reputation, your personal health, relationship, whatever.

Conclusion

This article is to be continued. I have much more things to say. Therefore, this is part 1. Part 2 will come shortly.

Please, speak up your mind if you have anything to say! If you believe I’m wrong, I please you to dump your thoughts. I’d be forever grateful if I learn something new from you.