Naguel

I'm Nahuel, and these are my work experiences, ideas and thoughts as a web developer working on the eCommerce industry.

How to write a resume

How to write a resume

I know this one probably isn't the first article you ended up reading about how to write a resume. I understand, you are looking for a job change or your first opportunity and this matters so much that you are looking for many suggestions.

I happen to be on the other side of the table as I screen candidates based on their resumes and I get to conduct interviews. Those interviews, by the way, happens only if the resume appeals me, and that's why it matters: a resume can give you your first shot at a job position or totally kill your opportunity.

Since I get to see some resumes every now and then, I'm already expecting something from them when I grab one, and I'll try to tell you what's that so you can write a good one.

Look, I know this is a long article, but it's your resume we are talking about.

It is worth the time.

Anatomy of a resume

Introduction

Say something before diving into the hard data of your work experience and studies. That's how you prove to be human.

This is not exactly a cover letter but something shorter and more general (not aiming directly at the company you are applying to). Imagine only having 20 seconds to introduce yourself at a date and that's about it.

Paint an overall picture of who you are, what are you looking at and what are you capable of.

For example, I'm a developer and this is my introduction:

Hi there, I'm a Full Stack Developer, more inclined to the Front End part of it, who has been working with eCommerce platforms like Magento since 2013.

I usually work with xHTML, CSS, SASS, Compass, LESS, JavaScript, VUE, jQuery, a little bit of Grunt, PHP, Laravel, another little bit of MySQL, Git as a revision control system, Agile methodology with Scrum as an agile development method, and of course Magento.

I really like English, which is my secondary language, that's why I'm very happy with my IELTS Life Skills B1 (IELTS UKVI) certification.

A good introduction will give the company you are applying to an idea of where you might fit.

Experience

This is the most important bit, where job hunters focus when reading a resume, and it's surprising how many people got it wrong.

Experience is about listing your entire career in a way that becomes easy to read and to understand, so it needs to be perfect.

There are two ways I would recommend this to be done: one is by listing roles and the company where that role happened (that's the classic approach), and another way is to list companies and roles performed while working for each company (which is the recommended option if you had multiple roles in the same place, or to show career progress inside the company).

LinkedIn uses these two approaches combined depending on how many roles you add to the same company.

The main issue I always encounter within this section is that people usually list the title of the role, the company, the dates when that happened, and nothing more, but that's not even close to be enough.

List the actual tasks you take care of while performing on a specific position. When people read your resume they need to know what you have actually done, the real stuff you have actually done.

For example, a common job title is the "Technical Leader" for a web development agency. What that means to you?, because certainly it doesn't mean the same on every company. Did you code review stuff or that wasn't your job? Did you manage deployments or that didn't fall into your job description? Did you coach people? What else?

I'm a Full Stack Developer at my company... and I do code reviews, deployments, I interview people, take care of the onboarding of new employees, etcetera. The tasks I perform are not usually associated with the title of the role I have so that's why it's also important to be specific.

Depending on the job and/or role it might be worthy to also specify the projects you worked on, which could be a good idea if you operated as a freelance for some period of time.

Certifications

This is how you validate your previous listed experience.

Everybody know that a certification on its own is no evidence at all that you dominate the platform/software/field that certification is about, but they are used as a filter during the screening of several resumes.

So, if you have them, add them. It's more for like "Oh, look, she has this certification, so she dedicated personal time to get it, that tells something of her".

If you happen to have a certification on a different language, besides any study that proves you speak it, this is the place to add them.

Language certifications are pretty important, specially if you are looking for a job in a foreign company.

Additional projects

A lot of people do freelance stuff at the same time that works at a company as a full-time employee, collaborates on an Open Source project, or maintains a personal one.

Whatever is your case, or if you have something similar, you should list that too as it's part of your experience. And, the fact that you did that in parallel of having your regular job it's a plus the interviewer will consider.

For technical positions such as web developers this is also the moment when you introduce your personal repositories (such as GitHub), or any other social network account with focus on showing your work as a portfolio (for example, Behance).

As an interviewer, and as a resume screener (assuming that's a thing), I'm mainly focus on the technical aspects of the candidate, so a GitHub account (or similar) is for me a glimpse of the actual coding skills of the person applying for the job.

Education

Your experience (and the additional stuff you did), on top of your certifications, leaves your common education on a secondary position.

What you have done during your career, your career itself, it's your education, so at one point your attendance to college or Uni doesn't really matter. But, that's only true if you actually have a career to show.

There's still something worth highlighting here which are courses taken that are related to your professional career, either directly or complementing it.

Bonus track

Social networks?

Only if they add something to your professional profile, otherwise I wouldn't bother mentioning them.

A good examples of social networks worth mention are Twitter (if your use it professionally), GitHub (or similar version control system), and of course LinkedIn.

If you have a personal site, such as a blog, and specially if it's related to what you do professionally, mention it as well.

Hobbies?

Yes, of course. There are humans reading resumes made by other humans, so prove to be one.

A list of hobbies gives people a glimpse of your personality, and it's always good to know what you appreciate in life besides working.

Of course, this is pretty much optional, and you should share this personal side of you at the capacity you are comfortable at.

Additional personal data?

We are talking contact information here, which is important because, well, you want to be contacted back.

But also your country of residence, which is pretty much key information for time zone reasons, specially if you are applying at a foreign company.

Designs matters?

Depends on what you do for a living. If you work on something related to design, then yes, it does, and pretty much.

But, for example, if you are a developer, I personally don't care much about design and my main focus is on the content of the resume rather than how pretty that is.

Having LinkedIn

This is a double-edged sword.

LinkedIn is great, it's the perfect way to show your entire professional career. It gives you the ability to add everything we just discussed before and more.

From my personal point of view, I think having LinkedIn is enough, and that it could be your final resume. You don't need anything else.

For example, I don't have another resume but my LinkedIn profile, and when I applied to the current job I have I remember saying...

You can check my experience in my LinkedIn profile at https://www.linkedin.com/in/nahuelsanchez, let me know if you want a PDF version of my CV or something else.

...but that PDF version wasn't necessary because my LinkedIn profile had everything, it's complete.

And that's my point. If you are going to have a LinkedIn profile, have it up to date, have everything there. Make it your final and only one resume that's always available for whoever wants to read it.

Otherwise, what happens if I see a profile with content midway is that I assume that's all of your career. I can't tell if you were lazy and didn't update what I consider to be your resume.


If you are a web developer you can find me on LinkedIn and check my profile which I consider to be a good example to follow (not a perfect one, I said "good").

Also, again, if you are a web developer (which is my "area of expertise"), find me again on LinkedIn and tell me if you would like me to review your profile (after you applied to it everything that was presented here, of course).

Install Elasticsearch for Magento 2 on macOS

Install Elasticsearch for Magento 2 on macOS

Depending on the Magento version you have, or the Elasticsearch version you want, the process of getting this work locally can be easy or a nightmare I'll try to simplify here in this post.

If you already know what version to install, skip the following and jump straight to the installation instructions.

What Elasticsearch version do you need?

If we dive into the official Magento documentation and take a quick look at the different changes made to it across time, we can learn a few things.

Magento 2.3.4 documentation

Available at the magento/devdocs' GitHub repo, tag 2.3.4.

Magento 2.3.1 adds support for Elasticsearch 6.x and it is enabled by default. Magento still provides connectivity for Elasticsearch 2.x and 5.x but these must be enabled in order to use these versions.

Magento 2.3.5 documentation

Available at the magento/devdocs' GitHub repo, tag 2.3.5.

Magento 2.3.5 adds support for Elasticsearch 7.x.x (default) and 6.8.x. Both ES 2.x and 5.x are End of Life and are no longer supported in Magento.

Magento 2.4 documentation

Available at the magento/devdocs' GitHub repo, branch 2.4.1-develop.

You must install and configure Elasticsearch 7.6.x before upgrading to Magento 2.4.0.
Magento does not support Elasticsearch 2.x, 5.x, and 6.x.

Or, to summarize:

  • For Magento 2.3.1 to Magento 2.3.4 you need to install Elasticsearch 6.x.
  • For Magento 2.3.5 to Magento 2.3.n (anything before 2.4.0) you'll need to install Elasticsearch 7.x.x. It works also with 6.8.x, but version 7.x.x is easy to install.
  • For Magento 2.4.0 and up you need to install Elasticsearch 7.6.x. No support for previous versions.

If you are working with multiple Magento projects on different versions, I would suggest you to install Elasticsearch 6.x to support from Magento 2.3.1 to Magento 2.3.5, and everything before Magento 2.4.

If you have all projects on Magento 2.3.5 and up then install Elasticsearch 7.6.x.

Install Elasticsearch 6.x on macOS

You need Homebrew first, so please install it by doing the following:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

You can check the official Homebrew page for more information about it and alternative installations options.

Then, we need to add a third-party repo to Homebrew and a few packages, including Elasticsearch itself.

brew tap elastic/tap; brew cask install homebrew/cask-versions/adoptopenjdk8; brew install elasticsearch@6.8;

When you do that you'll get a lot of output on your terminal, but you need to only care for the installation path of the last elasticsearch@6.8 package.

➜  brew install elasticsearch@6.8;
==> Downloading https://homebrew.bintray.com/bottles/elasticsearch%406.8-6.8.8.catalina.bottle.tar.gz
Already downloaded: /Users/nahuelsanchez/Library/Caches/Homebrew/downloads/01d0782011cbecdb3b1125469ee2ed60ef07926a8f36752c64d1b8c2b763736d--elasticsearch@6.8-6.8.8.catalina.bottle.tar.gz
==> Pouring elasticsearch@6.8-6.8.8.catalina.bottle.tar.gz
==> /usr/local/Cellar/elasticsearch@6.8/6.8.8/bin/elasticsearch-keystore create
==> Caveats
Data: /usr/local/var/lib/elasticsearch/
Logs: /usr/local/var/log/elasticsearch/elasticsearch_nahuelsanchez.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config: /usr/local/etc/elasticsearch/

elasticsearch@6.8 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have elasticsearch@6.8 first in your PATH run:
  echo 'export PATH="/usr/local/opt/elasticsearch@6.8/bin:$PATH"' >> ~/.zshrc
  
To have launchd start elasticsearch@6.8 now and restart at login:
  brew services start elasticsearch@6.8
Or, if you don't want/need a background service you can just run:
  elasticsearch
==> Summary
🍺  /usr/local/Cellar/elasticsearch@6.8/6.8.8: 136 files, 103.4MB

The path below "Summary" is the one we need to mind, where mine is /usr/local/Cellar/elasticsearch@6.8/6.8.8.

Go to that folder and install a few Elasticsearch plugins.

bin/elasticsearch-plugin install analysis-phonetic bin/elasticsearch-plugin install analysis-icu; bin/elasticsearch-plugin install analysis-smartcn;

Now, because only God knows why, we need to fix something on this freshly installed Elasticsearch package, otherwise it won't start.

Standing again into that installation path, cd into the libexec/config folders, and edit the jvm.options file.

Comment the line it says 8:-Xloggc:logs/gc.log by adding a # at the beginning of it, and below add 8:-Xloggc:/tmp/logs_gc.log.

This is how the file might ended up looking

You are basically done now.

Start Elasticsearch by doing brew services start elasticsearch@6.8.

➜  brew services start elasticsearch@6.8
==> Successfully started `elasticsearch@6.8` (label: homebrew.mxcl.elasticsearch@6.8)

To check if everything is good, you can do a cURL to the Elasticsearch instance running.

➜  curl "http://localhost:9200/_nodes/settings?pretty=true"
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "elasticsearch_brew",
  "nodes" : {
    "ArBWW_c3QRunhfQn460sxQ" : {
      "name" : "ArBWW_c",
      "transport_address" : "127.0.0.1:9300",
      "host" : "127.0.0.1",
      "ip" : "127.0.0.1",
      "version" : "6.8.8",
      "build_flavor" : "oss",
      "build_type" : "tar",
      "build_hash" : "2f4c224",
      "roles" : [
        "master",
        "data",
        "ingest"
      ],
      "settings" : {
        "client" : {
          "type" : "node"
        },
        "cluster" : {
          "name" : "elasticsearch_brew"
        },
        "http" : {
          "type" : {
            "default" : "netty4"
          }
        },
        "node" : {
          "name" : "ArBWW_c"
        },
        "path" : {
          "data" : [
            "/usr/local/var/lib/elasticsearch"
          ],
          "logs" : "/usr/local/var/log/elasticsearch",
          "home" : "/usr/local/Cellar/elasticsearch@6.8/6.8.8/libexec"
        },
        "transport" : {
          "type" : {
            "default" : "netty4"
          }
        }
      }
    }
  }
}

That host and port on that cURL command (which by default is localhost:9200) is the host and port you need to use for configuring Elasticsearch in Magento. If it doesn't work, try the same cURL call but with 127.0.0.1:9200.

Remember to brew services stop elasticsearch@6.8 when you are done working so it's not running forever in your computer.

Install Elasticsearch 7.x on macOS

You need Homebrew first, so please install it by doing the following:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

You can check the official Homebrew page for more information about it and alternative installations options.

Then, we need to add a third-party repo to Homebrew and the Elasticsearch package itself.

brew tap elastic/tap; brew install elastic/tap/elasticsearch-full;

When you do that you'll get a lot of output on your terminal, but you need to only care for the installation path of the elastic/tap/elasticsearch-full package, which is located just at the end below "Summary".

For example, mine says /usr/local/Cellar/elasticsearch-full/7.8.0.

Go to that folder and install a few Elasticsearch plugins.

bin/elasticsearch-plugin install analysis-phonetic bin/elasticsearch-plugin install analysis-icu; bin/elasticsearch-plugin install analysis-smartcn;

That's all, basically.

Start Elasticsearch by doing brew services start elastic/tap/elasticsearch-full.

To check if everything is good, you can do a cURL to the Elasticsearch instance by running curl "http://localhost:9200/_nodes/settings?pretty=true" which will output a big JSON.

That host and port on that cURL command (which by default is localhost:9200) is the host and port you need to use for configuring Elasticsearch in Magento. If it doesn't work, try the same cURL call but with 127.0.0.1:9200.

Remember to brew services stop elastic/tap/elasticsearch-full when you are done working so it's not running forever in your computer.

Can I have both installed at the same time?

No... well, I didn't try it but I think you can't. I would avoid such experiment.

What you can do for sure is uninstall one and install the other on demand.

If you do that you need to uninstall the Elasticsearch plugins you install it and install them again so you ended up with the right plugins version compatible with the Elasticsearch version currently installed.

Anything else?

Reindex Magento before trying to load the store.

Building a positive company culture with a remote team

Building a positive company culture with a remote team

You should already know that having a remote team and moving away, at some capacity, from having an office and mandating everybody to attend it in favour of working from home, have plenty of advantages... but it also requires companies to re-think their culture and adapt it for including remote members.

This is something to be face for either companies having all of their employees remote (no office whatsoever) or for those companies with a mix.

Since we are in the middle of a pandemic (#covid19), this work from home thing stopped from being optional for some companies and everybody was forced into it.

Nevertheless, I personally think that work from home, or at least a flexible scheme that combines office time and home time, is the new way to go, so preparing for that reality can't be pushed forward.

Working for home has a lot of benefits for both the employees and the employers, but it's not about only having Wi-Fi at home.

No more bs against working from home thanks to a pandemic
Companies were forced to reorganize quickly to continue working with their employees from home: the bs around this was cut immediately, the scepticism towards having people working from their homes disappeared. It had too, there was no other option.

People not used to work from home will struggle with their new situation, specially because separating work from life is not easy when both happens in the same physical environment. Anyway, that's a different problem.

But what companies can do is to work on a culture to makes every remote team member welcome.

You want to have a great team culture because you want people to stay with you, and you want those who stay to like showing up to do the work, which will result in better stuff being done, in progress being made.

Do not think for a second that a classic culture, rules, or way to go for when you were on an office will accommodate everybody now working in pajamas. That process of yours needs to be dust off and made again.

Bake a culture that brings down the feeling of being away

This should be the main objective of your new culture: the idea of making everybody as welcome as possible, part of something, a team, removing the sensation of just having people logging time and solving tickets with an interaction boiled down to only asking questions after a technical brief.

That's not a team member, that's a contractor or freelance you got there. Which is fine, if that's what you are after, but the approach in this post is to adapt your previous "going to the office" to "walking from bed to desk".

The culture needs to integrate people by bringing down the barriers imposed by everything being digital and virtual now.

There are a lot of thing we are no even aware we are missing by not being in the same place, like, for example, there's no more "I'm making coffee, anybody wants some?". There's an element of... human touch?... we need to re-incorporate.

Videos are now part of your meetings

There's an incredible change on people's behaviour when having a call with and without the camera turned ON.

When you are talking to somebody and you can see them, and you also know you can be seen, you are both in presence of a more honest conversation taking place. Your call becomes more real because the camera forces everybody to have accountability on what's being said.

For example, it's not the same to provide an estimation or deadline for a task by saying it "face to face" than by only using the microphone. The camera is a constant reminder that you are talking to an human being, and that what you say and how you say it matter.

This is particularly important when the meeting is about something else than actual classic work tasks, like on performance reviews.

Fun is allowed and encouraged

Cameras turned ON during a call also relaxes the conversation, and helps to emulate what happens on a meeting taking place in real physical conference rooms.

Nobody walks into a meeting, on a physical room, and sits down straight to business. There's some water cooler moments before and after work actually happens, and that's okay, that should be somehow, at some level, encouraged.

The same should be allowed to happen on any other conversation tool you have, specially on the one you are using to chat, a.k.a. Slack.

Don't expect people to be robots, to talk either verbally or in writing as if their were always wearing a suit and saying something to the President of the United States.

On a real office there's music sometimes, chit-chat happening on a corner, or jokes appearing during shop talk, but on Slacks that's down to memes, gifs, and emojis, which bring something else for the entire team, easing the working day and removing pressure. A small venting crack perhaps, on complicated days.

Having fun is a way of team building, and there's plenty of activities that a company can promote to achieve this (besides just using emojis on Slack).

I know it was typical for assembled office teams to get pizza on a Friday, going for some after office time at a pub, and came up with team activities. Now, you just need to think of stuff that can be done remotely.

Team building becomes now more important than ever, as "having a team" doesn't happen as easy as maybe before.

Again, in these particular times were people are in a lockdown due to the Coronavirus, a meeting to just laugh is more than welcome, specially on companies suddenly forced to be remote with no employee ready for it.

For example, the company I work for promoted a few Fridays for games over Zoom where we separated into two teams and played charades... while wearing costumes, fancy dresses, and props.

Meet to improve the remote work

Of course, having a remote team doesn't mean nobody meets each other in person ever again. On the contrary, if you have the possibility to assemble the entire team on a physical space every now and then, great, take it.

For remote employees, meeting each other in person, or meeting the "team from the office", has a real impact on how they perceive the company and what they think of it.

You will witness a change on how people communicate online after a meet up takes place, because people will have had a chance to know other people voices, tone, and expressions.

Sending people stuff will also do the work, and I'm talking delivery packages with beer or whatever gift you can think of. Employees must be rewarded, specially those hard workers that were key on a specific date or task.

Ask what people need

Finally, at the end, and as usual, everything is down to just asking what people need or want. But as obvious as this seems to be, it happens to be the thing we do the lesser.

Take time to ask and listen. Sit down and have a conversation with your remote employees to understand what they need and what their feelings are towards working remote.

Again, specially for those companies that hadn't other option but to make everybody work from home.

If budget is not a problem, help employees to set up their working environment at home, where the priority is the chair.

Buy them a comfy chair... that's what I was trying to say all this time.

Prepare for a job interview

Prepare for a job interview

If you are my boss and you are reading this... no, I'm not looking for another job!

About two years ago I decided to quit the job I had back then after around 6 years on the same company, and I had to prepare for the incoming interviews I was planning to have (fun fact, I only had one) because for that period of time I had none (yep, I'm that loyal) so I considered myself a little bit rusty on that area.

Looking for a new job is a job itself. It's not just about scheduling interviews and going to them, you need to prepare, otherwise your chances are pretty low (trust me, I conduct interviews, so I'm on the other side of the table).

No politician in America will tell you this, but every boss will: You can’t just show up. You need a plan to succeed.

"Thank You for Being Late" by Thomas L. Friedman

Once I wrote a post about how being average at work is over and how it won't take you anywhere, and that concept applies now again for your job hunting.

Average is officially over, so don’t be that at work
Average is officially over because it won’t take you, your company, your team, anywhere. There was a time when you would learn a skill and that would be enough to succeed at work, but nowadays what you learn has an expire date as much as the milk in your refrigerator.

Update your resume and experience information

Sounds basic but you will be surprised if I tell you how many candidates don't do it and how they end up saying things such as "Oh, no, after that job I have another position for a few years but I sent you the outdated resume".

The resume is your opening, it speaks for you before you even utter a word, and it's what gives you your interview (or the reason why you don't get one).

It doesn't need to be long, nor fancy. It just needs to be up to date, including your current and past experiences (all of them relevant to the job you are looking for, at least), with not only the job titles and dates, but with a short list of the actual tasks you performed.

Don't tell me you were a "Front end developer", but tell me what you actually did on that role, with what technologies did you work, of what other "soft" tasks you were part of (did you interview people? did you conduct workshops?).

Say "Hi" with a cover letter

You can't just attach a PDF of your resume and send it to a thousand emails... well, yes, you can, won't be ideal... or do it, that's fine, but include a cover letter.

The cover letter is how you say "Hi". In the real world you don't walk into a company's office and throw a printed resume at the HR employee working at that moment: you say "Hi" before.

In a few lines, in a short text, you can introduce yourself by telling a little bit about who you are, what's your current situation and what are you looking for.

You can have a template, but I would suggest you to personalize it for each application. Remember to talk like an human.

Take a look at what I sent when applying for my current job, in 2018:

Hello,

I’m a front end developer focused on eCommerce, specifically in Magento and VTEX, and I have been working with these two platforms since 2013 starting with Magento 1 even before the RWD theme and now dealing with Magento 2 while getting to know what’s coming in PWA related to this platform.

Right now I work at Current Company (https://www.linkedin.com/company/current-company) but I’m looking for a change. I guess by the “Career openings” section in your website that you probably aren’t looking to fill any position with a person working remote, but a friend that went through your recruiting process told me about you and I thought it wouldn't be much of an inconvenience to apply.

If by any chance you’re looking for a remote developer I also completed the developer test available at GitHub, and here’s the link with the requested functionalities: https://github.com/link-to-tes

You can check my experience in my LinkedIn profile at https://www.linkedin.com/in/nahuelsanchez, let me know if you want a PDF version of my CV or something else.

Thank you very much.

Nahuel

The subject of that email was "I'm a Magento front-end developer".

Prepare to be Googled

The very least thing that will happen on the process of reviewing your application is that your LinkedIn profile will be checked, your GitHub account will be tracked down... you will be searched on Google.

If you are going to have a LinkedIn profile, then have it up to date, otherwise is counterproductive. If you have this polished then you will be already covering the previous section about having a good resume (check mine).

Something really good to have in order to highlight yourself among other candidates is to own a blog, related, even if vaguely, to the job you are looking for.

Clearly, owning a blog is not easy at all as it requires time to build an archive of data worth showing, but it is also a good example of how looking for a new job is not something that should (must? will?) happen quickly.

You need to build an online presence, specially on the IT sector: participate in forums, Twitter, engage in LinkedIn conversations, attend conferences, be a "member of the community" at some capacity.

Have a reason for changing jobs

Money is a reason, and it's a valid one, just have that clear before the interview and be able to explain it.

When I changed jobs years ago I remember the reason was that I was feeling always on a run on my previous position, not enjoying it, and I mainly though that the way we were doing things could be different.

I didn't know exactly how different, but I knew the processes could be better in a way, and me looking for a job change was mostly focused on looking for a different way to work on web development related projects.

Whatever is driving you into looking for a new job is personal, and only you know it.

My two cents here is that don't let any anger to your current job or current company be the main reason why you are thinking of quitting and moving on.

Decide how much money you are after

Be serious. We all want a million dollars, and maybe you think you are worth that much, that's fine, just as long as you are being realistic.

Deciding how much money we would like to be pay on our next job starts with knowing how much we are doing right now in our current position, and how that is translated into the different payment forms existing out there.

For example, maybe you are getting a monthly salary right now, but that's not exactly how all companies pay its employees. Some pays every 15 days, some talks salary while expressing it on a year-time period, a lot of companies on the IT sector have a price per hour scheme, and not all companies use the same currency.

Take your current salary on its current form, and understand how to express it in all its variations, so you know how much you are currently worth when asked.

Having this all clear makes it easy to not only decide how much to ask for then, but it will come at handy when reviewing a counter proposal or comparing different offers in case you are lucky enough to find yourself on that position.

Know the company you are applying at

I can understand that you will be applying for multiple positions at the same time looking to win one, but that's no excuse to come unprepared for those interview opportunities you nailed.

Between the moment the interview is scheduled and when it actually happens there's plenty of time to investigate the company that is giving you a shot.

Looking at the company's website is the very least you must do, but there's clearly more. For example, since I applied to an eCommerce agency, I reviewed the sites they have launched to check the designs they were doing and how their code looked like.

If you have ever been on a first date with somebody you didn't really know much, you might as well have stalked him/her on plenty of social media sites... well, this is kind of the same situation.

It is possible that you will be asked, by the company itself, why you have chosen them, and even if you are not you still need to know the company you are applying at to actually discover if you think you'll fit or not.

Have a script at hand

Everything you had prepared before, and more, needs to be with you during the interview, which is extremely easy if the interview happens online.

  • Have in detail what a normal work day looks like for you.
  • Have your experienced detailed, with the actual tasks you performed, in case you need to go deep into them while talking.
  • Have a list of projects you worked on, with a short explanation for them and the technologies you used.
  • Have the reasons you are having that interview in writing, in case you were asked for.
  • Have your current salary, and what you will be requesting now, at hand in case the discussion reaches that point.

The interview itself should be human friendly, and it's a bidirectional conversation, which means that you can (and certainly must) ask questions too, specifically focused in knowing the company beyond what you discovered while stalking it.

Be prepare to share something personal too, as again this is a conversation between humans. Do you have any hobby you would like to share? Any activities besides working that will be worth mention? Something about your family?

Finally, learn from past interviews. If you don't land the first one, try to understand what could you have done different, what you missed, and be even more prepare in the next one.

Good luck!

How to become a web developer in a lot of not easy steps

How to become a web developer in a lot of not easy steps

I'm being ask that a lot! No, for real, I'm not saying that for the sake of a cliche moment in the post, but the problem is that the answer is not that short nor that simple, hence this article.

Decide what's your thing

While the idea behind this how-to question is kind of the same, the answer depends exactly on what kind of developer you would like to be, because the offer is extensive out there.

I'm a web developer, a Full Stack developer that works with eCommerce platforms, so there lays my expertise, but maybe you are looking to become an iOS developer, Java developer, a videogames creator, or something else.

Clearly, the first thing you need to do is to decide that.

Take into consideration that if you are planning on making a living out of this job you will need to like it, and second you will need to investigate the job prospects of that choice you are now making (I don't think COBOL is really wanted these days, considering it's a language from 1959, for example).

Not all developers are the same, and not all guys and gals you see with code on theirs computers are creating a program for a PC (which I tend to think it's the general assumption when I say I'm a "programmer").

Start with some courses

I have to be honest here and say that I'm not impress by courses when I see them on resumes, because them alone tell me nothing. But I will assume here that you have no experience as a developer whatsoever, and that you are starting from scratch, therefore is safe to say that while a lot of courses won't land you on a job position, it's for sure the way to start.

It's the starting line not the finish line.

Based on what you decided on the last section related to what kind of developer you would like to become, now you can filter out some of the courses available all over the world.

My suggestion here is to go local, meaning pick a course provider from your city or country because they tend to have partnerships in place with IT companies in a way you can ended up as a trainee there after completing a course.

Investigate that. Not only find a course you would like to follow and suits you, but try to do it on a place (school?) that IT companies then use to recruit from.

Play around, play a lot

Courses usually end up with a real project you would be uploading into GitHub or similar.

That's not enough. From my point of view, practice beats theory.

After the course you will be on your own. Yeah, I mean, you can start a new one, but as I said before I'm not impress by courses as I expect "real" practice.

This is when you need to start building up your portfolio, meaning a GitHub with small projects, practice code, snippets, something to show, something not just only to tell others you are more than theory but also for applying that theory into real stuff, for actually keep on learning.

Do not forget courses will provide you with the basics, and you won't become a Senior developer following courses. It will be up to you, and that's with practice.

The way it happened to me is that I had a WordPress blog (not this one, another one, ages ago), with a basic theme that I wanted to customize. So I started doing small changes, then wanted more complex ones, and one thing led to another. That's how I started.

Land a job no matter the salary

With courses on your resume and a portfolio to show is time to become real. Bye bye training wheels!

Unfortunately, this is not easy, not because of the opportunities out there that I think are plenty on the IT sector, but because you will need to escape your comfort zone.

If you are reading this you might as well have a stable job already and this idea of becoming a developer is a plan for the short term future, so at some point, with courses already finished and code already uploaded into GitHub, you will need to decide how much salary you will be willing to let go in order to start on the business.

A trainee position won't pay much. Actually, if it pays at all that's a win already, but you need to start somewhere. For example, you can be a lawyer now and there's no chance your first job as a developer will match your current income. Accept that.

Take your first opportunity on the real world as a way to learn how a company operates for real, how working on a real project looks like. This is your chance to learn the real stuff.

Your first job might be a sacrifice in terms of money, but after this, with one job experience in your resume, the opportunities will increase exponentially.

I know, it's scary, but come on, you first job won't be a Senior position. Get real, face it, it will be worth it.