Hiring Elixir programmers vs looking for a job as an Elixir programmer?

Hello all,

Could I ask for your help please? I’m in unique position where I have a few months to get my startup off the ground and raise capital from VCs, of which if I’m successful, will be actively looking for Elixir programmers.

However, if I can’t raise capital or generate revenue, I’ll be in a position where I, myself, need to find a job and would hope that my time spent invested in learning Elixir would help me find employment.

So I have two questions for you experienced programmers:

  1. What are the main things you look for in a new job offer/company? I’m guessing salary is top of the list but I also remember Paul Graham of Y Combinator saying in the past that the best engineers are drawn to the more exciting and innovative languages vs other, older Enterprise languages. Or take Google where I believe they let their engineers work on their own specific projects 20% of the time?

  2. How would you recommend looking for a job? Indeed.com? Linkedin recruiters? Meetup networking events?

While I’m a fan of Elixir’s benefits, I’m worried that due to it not being as widely implemented as other languages, that it would be more difficult to find a job since there’s fewer companies hiring?

Any thoughts or opinions greatly appreciated.
Thanks in advance!
Sy

3 Likes

It has been repeatedly mentioned on these forums that employers shouldn’t restrict themselves to Elixir programmers but instead also look for good programmers willing to learn Elixir. At least Elixir doesn’t have the stigma attached to it that Fred Hébert has repeatedly reported for Erlang.

would hope that my time spent invested in learning Elixir would help me find employment.

At this point learning Elixir to “help find employment” is putting the cart before the horse - unless you are settling for no less than an Elixir career. In that case you have automatically, by choice restricted your acceptable opportunities.

So it may take a bit more effort and commitment to make it happen - which may take some short term compromises like temporarily taking a non-Elixir position.

I’m guessing salary is top of the list

If it is, why focus on Elixir? For a top salary prioritize developing the skillset that is necessary to earn that salary in your particular circumstance. The rub is that you are going have to spend 8+ hrs a day, 5+ days a week doing whatever it takes to earn that salary. So it better be something you can at least tolerate but hopefully you can enjoy - considering the time you are going to be spending doing it. The priority is ultimately yours.

best engineers are drawn to the more exciting and innovative languages

These are people who have already proven themselves - likely because they somehow found a way to work hard even through the tedious stuff because there was some element of the work they found to be rewarding (or they at least had the sense to move onto something more rewarding despite how much they were being paid - after they “paid their dues”).

Or take Google where I believe they let their engineers work on their own specific projects 20% of the time?

While the project may be your’s, Google restricts the technologies that can the employed (AFAIK). If that’s OK with you and you like the environment what’s stopping you?

Deciding what’s a priority is ultimately up to you. And whether or not you are the one making the decision, the consequences are entirely your’s to bear so you may as well be very deliberate in making the decisions.

Example: Failing your way to success: LeSean Thomas at TEDxSinchon

  • Decides to work as an animator - discovers that animation usually doesn’t happen on US soil.
  • Works in the part of the animation business that he has access to - this puts him in the path of his Korean animation colleagues.
  • He expresses interest to practice animation in Korea - I can only assume the standard reaction was “you’re batshit crazy”.
  • However because he was good at what he was doing and because he persisted eventually he was sponsored to work in Korea.
  • Working in Korea was no picnic but he followed his chosen path.
5 Likes

I’ve read on a few occasions that this either no longer exists or has shifted towards Google being willing to let their engineers work 120% time with the last 20% being a little more discretional. It’s not like people are working on normal projects Mon-Thu, and doing whatever they want on Friday.

1 Like

If you could provide a bit more info I think people would be able to provide better advice. Things that would help is a bit of background info and such simple things as location and target location. So say you are in EU but looking for a job in SV or … One general consideration is like 70-80% of Elixir jobs I’ve seen also require Ruby.

3 Likes

The StackOverflow Developer surveys will answer Question 1).

Here’s the most recent one for 2017:

Pasting the top 5 from “How Do Developers Assess Potential Jobs?” here:

  1. Opportunities for professional development
  • The compensation and benefits offered
  • The office environment I’d be working in
  • The languages, frameworks, and other technologies I’d be working with
  • The amount of time I’d have to spend commuting
1 Like

Hey guys, thanks very much for the opinions and feedback. I really appreciate it.

I’ll respond to each of your posts further below. As a reminder, I myself AM NEW to programming so might be looking for a job as junior developer so I appreciate any feedback from BOTH a prospective employee as well as prospective employer perspective. Additionally, our mission statement is to help independent artists, musicians and fashion designers so I would like that commitment to helping people to extend to the engineers as well in whatever capacity that might be. I know this might be a bad example but even McDonalds has a university so I’d like to think that whether as an employer or employee, there would always be continuous learning and improvement so there was never any wasted time and regrets for time spent.

@svilen - Thanks for the link! That’s exactly what I was looking for! Although could you or anyone else elaborate on the “opportunities for professional development”? If there was a better version of the Google policy to allow engineers to work on their own projects, would that suffice or is there something else more obvious that I might be missing? Possibly ongoing education from a very knowledgeable CTO like these guys?

I think that ties into what I said above, possibly? Where there would always be continuous improvement? I know for myself and my partner, we’ve not only learned (the bare basics) of Elixir, html, css, JS, Python in past few months but are diving into Spark, Hadoop, GIS, Swift (possibly Clojure) and it’s been very fun to learn new paradigms and ways of thinking to see how they can all connect to each other and solve real life problems. Are those languages that experienced engineers would be attracted to or would they want Java and .Net programs? Or would they prefer to only work in one or two and not have to deal with so many?

Lastly, I personally LOVE telecommuting as I HATE traffic with a passion so that would be hypocritical of me to expect that of people I work with although I would imagine there’d have to be a good “trust” system in place to ensure stuff got completed in a timely manner.

@andre1sk Thanks for Ruby tip Andre! That makes sense as Elixir is a natural fit for companies that currently use Ruby/Rails. I initially tried learning Ruby on Rails as my first language last year via this well known online course but as I’ve found common among them, was outdated, so got stuck on very basic tasks (I didn’t know about Stackoverflow yet), so gave up to focus on functional programming languages (Elixir) but I guess I’ll have to study up on Ruby if I’m not successful in my endeavors.

As for location, I live in Southern California but actually grew up in San Francisco/Silicon Valley. Ironically, the very demographic who we’re trying to help was displaced by the growing tech industry as costs of living is too high so ideally, I’d like to see if having a team who telecommuted was feasible and/or combination of what Zappos did where they moved to a more affordable, yet still exciting location, Las Vegas.

@CptnKirk Thanks for Google feedback. As mentioned above, if there was a better Google-like system where coders could work on their passion projects so long as their main job was done, would that be more appealing and count under the “Opportunities for professional development” item mentioned in StackOverflow survey? If there was more freedom to work on whatever project AND it simultaneously tied into what the company was doing, would that be acceptable? (ex. you design a drawing app, so you let our client artists get to test it out and use it?) Does that make sense? Somehow tie it into what the customers are doing? Or would experienced engineers want to design the next Google and have 100% control? Putting myself in your shoes, I guess I would but is there a way to make it a win/win so everybody benefits? Maybe allowing company to have first shot at being VC for it?

@peerreynders -Thank you for your long thoughtful post. I’ll reply separately so I can respond to every point you made.

1 Like

Thanks again @peerreynders I really appreciate your time spent in sharing your thoughts and opinions.

Please see below for my responses

Thanks @peerreynders
Are there certain qualities/indicators to specifically find programmers who are WILLING to learn Elixir? Or did the advice given by others above and also the survey pretty much cover it?

[quote=“peerreynders, post:2, topic:12069, full:true”]

At this point learning Elixir to “help find employment” is putting the cart before the horse - unless you are settling for no less than an Elixir career. In that case you have automatically, by choice restricted your acceptable opportunities.

So it may take a bit more effort and commitment to make it happen - which may take some short term compromises like temporarily taking a non-Elixir position.[/quote]

I forgot to specify that I’ve also learned basic html/css/javascript as a by-product of setting up our app so was thinking if I learned more Node.js or dived deeper into html/css would provide a backup for me so that there would be a larger pool of potential employers?

[quote]> I’m guessing salary is top of the list

If it is, why focus on Elixir? For a top salary prioritize developing the skillset that is necessary to earn that salary in your particular circumstance. The rub is that you are going have to spend 8+ hrs a day, 5+ days a week doing whatever it takes to earn that salary. So it better be something you can at least tolerate but hopefully you can enjoy - considering the time you are going to be spending doing it. The priority is ultimately yours.[/quote]

Actually, for me salary isn’t the most important requirement but I was trying to be conservative and put myself in the shoes of an experienced coder who has “paid their dues” (as you mentioned below) but wanted to confirm my assumptions

[quote]

These are people who have already proven themselves - likely because they somehow found a way to work hard even through the tedious stuff because there was some element of the work they found to be rewarding (or they at least had the sense to move onto something more rewarding despite how much they were being paid - after they “paid their dues”).

While the project may be your’s, Google restricts the technologies that can the employed (AFAIK). If that’s OK with you and you like the environment what’s stopping you? [/quote]

Thanks for mentioning this. I am seeing a trend based on your comment and the others where this supposed benefit of Google is not all it’s cracked up to be although I will do more research on this because as I mentioned in above in my first reply, our mission statement is to help artists so I would like to think, NO, i would WANT to promote a culture where engineers were allowed to pursue their ART.

Thanks again for your thoughts and opinions @peerreynders ! I can’t thank you enough

Well SF and SoCal are def. places with higher concentration of Elixir jobs (if you are OK with the idea of moving back). I’d say attending relevant meetups could be a good way to connect with people for both of your goals.

1 Like

Professional development — I’m sure there are some proper definitions of the term, but in practice, it depends on the person. Each one of us has his/her own ideas about his/her future career. It could mean contributing to the Engineering community by doing open source; contributing to non-profit organisations; improving your programming and interpersonal skills… or all of the above. Depends how you see yourself in the future.

As an employer, including things like:

  • Variety of projects and/or challenges to work on
  • Opportunities to mentor others and be mentored as well
  • Contributing to open source projects or non-profit orgs
  • Opportunities to “touch” various aspects of the business, not just engineering

Can definitely help (list is not exhaustive).

I have no particular expertise in the matter. However in the process of trying to find people who can become productive as quickly as possible “wasting” time trying to find a reasonable close match to the current requirements can delay work starting. Furthermore over time business needs change anyway so people who can adapt are preferable anyway.

Now I’ve come across anecdotes of people not wanting to invest any time in learning Erlang because they were concerned that they marketability might suffer. I don’t think Elixir has the same problem - I would imagine it’s much easier to find people willing to learn and work with Elixir than to find people with “commercial Elixir experience”. The real challenge is identifying “good programmers”.

FYI:

if I learned more Node.js or dived deeper into html/css would provide a backup for me so that there would be a larger pool of potential employers?

At the risk of being trite and unhelpful: Skills are good, yes. But:

  • What are the skills that employers value where you are or where you want to be.
  • Over the long haul you have to provide value to others in a way that you can find rewarding. (In the near and short term there are always less than perfect compromises to be made as there are always bills to be paid - but keep an eye on the prize).

Lets say your prize is to be an “Elixir developer” - but you can’t connect with that right now:

For example, is there a

  • RoR shop
  • Node.js shop
  • Python shop (example)

that may need to scale soon? Can you connect with one of them? Now in the end they may decide to adopt Go instead but at least it buys you some time for that Elixir job to show up somewhere else.

our mission statement is to help artists so I would like to think, NO, i would WANT to promote a culture where engineers were allowed to pursue their ART.

Now if this is your prize things are a bit more challenging. In my experience software development jobs don’t often leave you much time to do your “own thing” - in fact often it is expected to make sacrifices at “crunch time” - which can happen far more often than most people like.

So obviously right now you are trying to make a go of it - but if that doesn’t work out are there any businesses that operate at the fringe of your vision and connect with one of them and help them “automate” something?

For me new job needs to be stable on same or better rules than I had in best of my previous jobs. I do not require bigger salary, because salary from my previous job was enough for me (in my city/with my costs etc.).

I prefer to use multiple places rather than focus on one. Elixir Radar, Linkedin, Elixir Forum and more. The most important thing is to create a good profile that recruiters will not skip at start, but it’s talk for another thread. :smile:

There is enough companies which needs Elixir developers. The real problem could begin when you do not want to relocate at all. :smiley:

Thanks @andre1sk Good to know! Yes, there are a few meetups here and there although some costs a few hundred dollars. Seems like a lot just to say hello to people although I imagine that might be a filter?

@svilen

Thanks @svilen! I appreciate the list. At least it gives me points of reference to expand upon. I especially like the part where you say it depends on the person so would hope to set up a system that was open/flexible in nature to accommodate new ideas in addition to existing ideas.

@peerreynders

[quote=“peerreynders, post:10, topic:12069, full:true”]

I have no particular expertise in the matter. However in the process of trying to find people who can become productive as quickly as possible “wasting” time trying to find a reasonable close match to the current requirements can delay work starting. Furthermore over time business needs change anyway so people who can adapt are preferable anyway.

Now I’ve come across anecdotes of people not wanting to invest any time in learning Erlang because they were concerned that they marketability might suffer. I don’t think Elixir has the same problem - I would imagine it’s much easier to find people willing to learn and work with Elixir than to find people with “commercial Elixir experience”. The real challenge is identifying “good programmers”.

FYI:

Agree with everything you say. My previous career was in real estate so I always had the philosophy of striving to find win/win scenarios where everybody benefited as opposed to it being a zero sum game. I guess what it comes down to is what’s a priority right now since I want to focus on what is best for my startup as opposed to what job market’s needs are although you’ve helped clarity what to think about SHOULD I have to apply for jobs in future.

[quote]
Lets say your prize is to be an “Elixir developer” - but you can’t connect with that right now:

For example, is there a

  • RoR shop
  • Node.js shop
  • Python shop (example)

that may need to scale soon? Can you connect with one of them? Now in the end they may decide to adopt Go instead but at least it buys you some time for that Elixir job to show up somewhere else. [/quote]

Thanks for those insights. Yes, that would be an idea target employer market to go after, those who are looking to scale soon and per your previous post, now know that Ruby would be a good additional language to learn to supplement Elixir. And/or also focus on Node since I’m already familiar with basic JS

our mission statement is to help artists so I would like to think, NO, i would WANT to promote a culture where engineers were allowed to pursue their ART.[quote]

Now if this is your prize things are a bit more challenging. In my experience software development jobs don’t often leave you much time to do your “own thing” - in fact often it is expected to make sacrifices at “crunch time” - which can happen far more often than most people like. [/quote]

Thanks for this value bomb! So if I am fortunate to be in a position to be the employer, I would def try to see if we could provide this type of environment since it would be a unique benefit that no other company has.

Thanks again!

1 Like

From my experience:

  1. The following:
  • Salary?
  • Is it a remote role?
  • Is it a real Elixir role or is it looking for a Ruby dev pretending to be an Elixir dev? (too many of the latter, these days)
  • Is it an interesting project?
  • What are the other team members like?
  1. I have an awesome recruitment agent who knows the tech and knows what I want.

There are plenty of Elixir roles for the right people. No one really wants to hire a Rubyist for the role, though.

Lee

1 Like

Thanks for feedback @LSylvester

  1. How about of a difference %wise, would you expect for a remote gig?
  2. What would you consider “interesting”? (this is a very important topic I’m finding as depending on the industry, will dictate what demographic to go after both from employee and employer perspective)
  3. Do you have a general opinion on what personality traits most engineers prefer about other team members? Additionally, how would one find out that info? If I’m looking for a job, can I ask an employer if the other team members like beer and similarly, if I’m hiring, would one be allowed to say “yeah, the other team members love polka dancing and beer”

So, Elixir / Erlang coders are often more experienced devs. They would much rather be building out an IoT server framework or telecommunications platform to building, say, a web server that could easily be written in Node or Ruby. Working with a team who are happy, inspiring and think outside of the box is preferable to working for a bunch of miserable 9-5’ers who barely speak. It’s all about keeping interest levels high.

From the other perspective, if you are happy to hire remote developers, then you have a bigger pool to choose from. Most of my colleagues are remote. They’re interesting guys, fun to work with, and have a different perspective than most devs. Being able to choose based on skill and ingenuity, while not being crippled by geolocation, makes a huge difference. Also, for some devs working further afield, they are happier working where they don’t have to spend four hours a day in transit getting to the office or when they can be flexible around children and partners etc.

3 Likes

Wow, thanks @LSylvester! This is really great feedback. Not to change topics but since you mentioned IoT, I actually attended some online IoT conference hosted by Intel and I remember asking several engineers there what programming language they used and 5 ouf of 5 said Python with 1 out of them saying they also used Java. Additionally, 3 other CIOs of Smart Cities I’ve spoken with also mentioned Python for their open city data

Do you find Elixir/Erlang being used in IoT more in the future? If so, how would that work since Python seems to be popular language?

Thanks again

It’s a “you use what you know” thing. Python is often used as a first programming language and there are lots of libraries that interface with capabilities implemented in more performant languages. This gives people the opportunity to have a “running start” on their problem rather than having to potentially build something from the ground up (and Python is typically easy to hire for).

For most embedded systems there typically has to be a C compiler and once that and it’s standard libraries are fairly compliant, Python is usually the next step. I’d imagine that compiling the BEAM/Erlang on an embedded system could be a bit more work but Erlang works on the Raspberry Pi. However “higher end” IoT could benefit from something like GRiSP.

“Elixir and the Internet of Things” by Doug Rohrer - describes a situation back in 2014 (or earlier) where a Ruby implementation wasn’t performant enough and Elixir was used instead.

So in some sense it fits the Worse Is Better/Tyranny of Good Enough theme. It kind of works to a point so people don’t look for a way that could be better.

There's another way to go!

1 Like

I used to work for a great IoT company, that produces commercial products, and we developed in Erlang. The great aspect of Erlang / Elixir for IoT is that it’s super flexible and powerful for writing binary packet parsers / encoders and handles the distributed / small process handling side of things naturally. In my honest opinion, Erlang / Elixir is made for IoT. It was literally made for telecommunications, and IoT is simply the modern take on that same old problem. So, while Python and Java both get the job done, Erlang / Elixir can get it done faster, with fewer devs and with less code. I’d stake that as a fact, rather than opinion :slight_smile:

2 Likes

Ah, yes, I was talking of IoT from the server aspect. There are Nerves for Elixir coding on embedded devices, but C and Assembler will make a faster product. Python is great because of the sheer number of compatible libraries for RPi etc., but most commercial tools need C or Assembly Language. For the server, though, use Erlang / Elixir.

1 Like

@LSylvester Ahh, very cool to know. Thanks for explaining. Not to change the topic once again, but based on what you said above, would that mean that Erlang/Elixir would be a great choice for blockchain related projects?

@peerreynders Thanks again for giving me insight as to how things usually get done. So despite there being better “performant” options, it’s not uncommon for programmers to just choose the most convenient option. But based on that philosophy, doesn’t that lead to stagnation and lack of innovation although I imagine it depends on the context then and ultimately, priorities of the company, whether a convenient solution is preferred vs long term innovation.