Posts tagged "developer"

In 3 years these high-paying tech jobs pay six-figure salaries

April 11, 2019 Posted by News, Recruiting, Technology 0 thoughts on “In 3 years these high-paying tech jobs pay six-figure salaries”

Earning a six-figure salary might not be as far from reach as you may think.

Entry-level positions for data scientists, product managers, and developers could pay $100,000 or more, according to a new study from Comparably, a website that rates workplace culture and compensation based on self-reported data.

In its latest study, Comparably analyzed the salaries of employees in the technology industry with three years of experience or less, which it evaluated from more than 8,000 employee records. The highest salary on the list was for the position of data scientist, which Comparably’s report indicates has an average entry-level salary of $113,254.

Comparably’s results share some similarities with data published by job search platform Monster, which listed web and software developer positions in its list of the highest-paying entry-level tech jobs.

The findings also underscore the increased emphasis on technical skills over traditional experience in the technology sector. Apple CEO Tim Cook even recently said that about half of the company’s US employment last year was made up of people who did not have a four-year degree.

See below for the top 10 highest-paying entry-level jobs in tech, according to Comparably.

10. QA Analyst

Average Salary: $70,383

A QA analyst looks for issues in websites and software and is responsible for making sure those problems are corrected, according to Comparably’s description. Duties and responsibilities could include conducting software audits and making recommendations for repairing defects, as a sample listing from ZipRecruiter notes.

9. Marketing Manager

Average Salary: $70,392

A marketing manager typically serves as the median between the IT department and marketing division, says Comparably. As is the case with many of the positions on this list, the day-to-day duties and responsibilities will differ depending on the employer.

8. Sales Representative

Average Salary: $70, 622

At a technology company, a sales representative’s goal would be to cultivate sales with potential clients, Comparably says in its description. This could entail giving presentations about the company’s tech products and services.

7. UI/UX Designer

Average Salary: $84,841

Employees in this role are responsible for a website’s user experience, including making sure that it adheres to the company’s vision, as Comparably notes. Responsibilities for a position like this could include designing elements like menus and widgets and illustrating design ideas through storyboards, according to a sample job description from Workable.

6. DevOps Engineer

Average Salary: $89,300

A DevOps engineer typically manages software development and automates systems, says Comparably. Testing implemented designs, handling code deployments, and building and testing automation tools are all duties that could fall under a DevOps engineer’s responsibilities, according to ZipRecruiter.

5. Sales Engineer

Average Salary: $90,575

The role of the sales engineer is to sell tech services and products through sales and technology, according to Comparably. In this role, you may be expected to establish a rapport with customers and potential customers to identify service requirements and prepare cost estimates by working closely with engineers and other technical personnel, according to a sample job listing from Monster.

4. Mobile Developer

Average Salary: $98,317

A mobile developer, as the title implies, works on applications for mobile devices. In this role, you may be required to design interfaces, troubleshoot and debug the product, and support the entire app life cycle from concept through post-launch support, according to a sample job listing from Workable.

3. Developer

Average Salary: $100,610

A developer designs and tests software, as Comparably notes. Responsibilities will vary depending on the type of developer job and the company. But a sample description from Indeed indicates a software developer role would entail writing, editing, maintaining, and testing computer software.

2. Product Manager

Average Salary: $106,127

This type of role usually involves planning different stages of a product’s development and rollout and then maintaining that product post-launch, according to Comparably. This could involve conducting market research, determining specifications and production timelines, and developing marketing strategies, says Monster.

1. Data Scientist

Average Salary: $113,254

A data scientist gathers insights by using tools to mine through large amounts of data, according to Comparably’s description. Employees in this role typically use these insights to deliver data-driven solutions to business problems, according to a Glassdoor sample job listing.

Please follow and like us:
0

Why It’s Hard To Hire A Perl Developer

January 22, 2019 Posted by Programming 0 thoughts on “Why It’s Hard To Hire A Perl Developer”


Among the many dynamic scripting languages, Perl seems to be a forgotten sibling, unsupported by new APIs. In this modern age of programming, Hiring Managers are always eager to hire the developer who knows the latest and greatest framework. For a while, Ruby on Rails stole the show as the framework to use in order to bootstrap your app. Now, Python’s in the limelight as the defacto language for coding machine learning algorithms. JavaScript even entered the fray recently with Node, which allowed JavaScript-centric organizations to create a linguistically monolithic stack. Then you have PHP, practically the dynamic language of the internet; 30% of websites use WordPress, a CMS built on PHP.

Comparatively, Perl doesn’t fall into a recognizable niche. The problem with that lies in the reason Perl was created in the first place. The language, created by the Larry Wall in 1987, was designed to be more of a Swiss Army knife than a language like C, which seeks to optimize memory usage. The idea behind the language was to counter the complexity of C by providing a language that was easy to use and quick to write. Jeremy Pickett, a former PayPal developer said when referring to Perl, “It is a seriously good multi-platform, easy to learn, easy to port language that can save your bacon. Centos 5.x memory debug?  No problem. Windows 2k8 registry audit? Let’s go! Web server? Done and done. Pen testing tool? Don’t even get me started.”

Jeremy’s quote fits the principle of the Perl language, which is, “get the job done.” An experienced developer can immediately see the problem that then arises when you want to hire a developer who’s ethos is to use a  monkey wrench to solve a problem when an elegant solution can be had. And because the barrier to competence is so low due to the one size fits all philosophy of the language, you have a pool of mediocre talent who’ve probably only learned Perl to deal with automation issues.  To compound this problem of availability, the problems that Perl attempts to solve are in-house. You don’t really need a Perl developer until you need one, in a sense. Companies aren’t building their tech stacks with Perl, they’re just solving industry specific problems with the language, problems that don’t require a team of developers. This means Computer Science students eager for work, will likely ignore Perl in favor of Python or C++.

This is not to say that there aren’t great Perl developers out there. The Perl 5 community features CPAN, a library of modules created by Perl developers. You can find active developers on PerlMonks and Perl’s subreddit. Perl Mongers is a group of Perl developers who meet locally to discuss changes to the language. The talent is out there. It’s up to a Hiring Manager to know who to look for and what to ask. For example, one shouldn’t adhere to the misconception that Perl 6 is an upgrade to Perl 5. Rather, Perl 6 is more of a rebranding that allows beginner and hackers easier access to the language. Simply, Wall saw how accessible Ruby was and decided to make a Perl version of it, saying in a conference in 2000, “In Perl 6, we decided it would be better to fix the language than fix the user.”

Perl 6 fixed some issues, but the community is small and there are very few reliable modules for a developer to work with. For now, the only recourse is to focus on the current Perl 5 developers. Within that pool, you want to select developers who have matured beyond the Perl philosophy and have applied practises like continuous integration that ensure that their code is maintainable and, thus, scalable.

Aside from ensuring that your candidate has read Perl Best Practices by Damian Conway, here are some questions that chromatic provided in his blog post if you’re planning on hiring a Perl developer.  

  • What do variable sigils indicate in Perl 5?
  • What’s the difference between accessing an array element with $items[$index] and @items[$index]?
  • What’s the difference between == and eq?
  • What do you get if you evaluate a hash in list context?
  • How do you look up keywords in the Perl documentation?
  • What is the difference between a function and a method in Perl 5?
  • When does Perl 5 reclaim the memory used by a variable?
  • How do you ensure that the default scope of a variable is lexical?
  • How do you load and import symbols from a Perl 5 module?
  • What governs how Perl 5 loads modules How can you influence the list of directories from which perl attempts to load modules?
  • How do you look up error messages in the Perl 5 documentation? (Award bonus points for knowing how to enable explanations of all error messages encountered.)
  • What happens when you pass an array into a function?
  • How do you pass one or more distinct arrays into a function?
  • What is the difference, on the caller side, between return; and return undef;?
  • Where do tests go in a standard CPAN distribution?
  • How do you run tests in a standard CPAN distribution?
  • What command do you use to install new distributions from the CPAN?
  • Why would you use the three-argument form of the open builtin?
  • How do you detect (and report) errors from system calls such as open? (Award bonus points for knowing how to enable automatic detection and reporting of errors.)
  • How do you throw an exception in Perl 5?
  • How do you catch an exception in Perl 5?
  • What is the difference between reading a file with for and with while?
  • How do you handle parameters within a method or function in Perl 5?
  • What do parentheses around the variable name in my ($value) = @_; mean, and what would happen if you removed them?
  • Is new a builtin function/keyword?
  • How do you read the documentation of a core library? A CPAN module?
  • How do you access only the values of a Perl 5 hash?

If those questions weren’t enough to ease your difficulty, here are some more questions provided by a Stack Overflow user.

  • What is a reference?
  • How does Perl implement object orientation?
  • How does Perl’s object orientation differ from other languages like C# and Java?
  • Traditional object orientation in core Perl has largely been superseded by what?
    • Why?
  • What is the difference between a package and a module?
  • What features were implemented in 5.10?
  • What is a Schwartzian transform?
  • Explain the difference between these lines of code and the values of the variables.
  • my $a = (4, 5, 6); my @a = (4, 5, 6); my $b = 4, 5, 6; my $c = @a;
  • What are some of Perl’s greatest strengths?
  • What are some of Perl’s greatest weaknesses?
  • Name several hallmarks of the “modern Perl” movement.
  • What does the binding operator do?
  • What does the flip-flop operator do?
  • What is the difference between for and foreach?
  • What makes Perl difficult to parse?
  • What are prototypes?
  • What is AUTOLOAD?
  • What is the Perl motto?
    • Why is this a problem?
  • What does use strict; do? Why is it useful?
  • What does the following block of code do?
  • print (3 + 4) * 2;

Tests

  • Implement grep using map.
  • Implement and use a dispatch table.
  • Given a block of text, replace a word in that block with the return value of a function that takes that word as an argument.
  • Implement a module, including documentation compatible with perldoc.
  • Slurp a file.
  • Draw a table that illustrates Perl’s concept of truthiness.

Conclusion

Perl isn’t a flashy language. But software development isn’t a flashy occupation either. Sometimes, to fix a system, you just need a language that can get the job done. For that, you need a Perl programmer who has stuck with the language despite its faults when other have run off to trending languages. They’re hard to find. But they’re out there, hacking away at modules that will optimize your workflow.

Please follow and like us:
0