Nearly everyone carries a small computer in their pocket – there are 120 million smartphone owners in the US. Companies are rushing to redesign websites to work on mobile devices, especially with Google now considering mobile friendliness a factor in search result rankings. That, plus the development of mobile apps, creates a lot of opportunity for smart mobile developers. Because mobile is so hot, though, there's a lot of competition for those jobs. Developers can stand out in their interview by having answers ready for these 10 questions:
1. Can you show me samples of your mobile work? Companies want proof of developer skills, and there's no better proof than a working app or website.
2. What smartphone do you carry? There are quirks on every phone that delight or frustrate end users. Developers who are familiar with the end-user experience on a specific platform are in the best position to develop apps that delight, rather than frustrate.
3. How did your previous apps make money? Apps can use different models to earn a profit; potential employers want to make sure their developers understand how to incorporate features that let the app make money.
4. How do you define the requirements and features for the app? Communication is key to delivering a successful product. If the developer will be working as part of a corporate team, understanding the software development methodology used is critical. If this is an independent development gig, the client needs to know how the developer will keep in touch.
5. What features make an app stand out? Demonstrate knowledge of features like GPS and social media links that can provide innovative functionality and let an app stand out in the crowded marketplace.
6. How do you test an app? Apps that don't work are worse than no app at all for a business. Be prepared to speak to how you test apps and ensure they work across multiple platforms.
7. How is an app submitted to the app store? Demonstrate an understanding of the app lifecycle by being able to explain how an app is approved for sale in the relevant app store.
8. How do you design an app to work on multiple platforms? There are several strategies for creating apps that work across iOS and Android versions. Be prepared to speak about several approaches and their strengths and weaknesses.
9. How do you handle security in a mobile app? High-profile data breaches have made users more aware of risks to privacy and security. Interviewees should be able to discuss the security issues relevant to mobile applications, and how the applications they've previously developed defended against that risk.
10. Can you provide references? Because developing apps is often a team effort, even after companies review work samples, they'll want to speak to previous employers or clients to verify a candidate's role in the project.
When employees could collect a gold watch and a pension check at the end of their career, companies could count on employee loyalty. Now that those perks of longevity are gone, it's harder to find employees who won't chase after bigger rewards elsewhere. But because the impact of turnover on business is so significant, companies can benefit by trying to assess whether an interviewee will stick around to make a long-term contribution.
Review Their Employee History
If a candidate's held eight jobs in six years, that's a sure sign they're likely to move on rapidly from your company, too. On the other hand, if they've held six jobs in eight years, that may not indicate a lifetime commitment, but does means they've stayed in one place long enough to see a project through to completion.
Ask Why They Left Previous Jobs
Sometimes there are good reasons for leaving a previous job after a short time period. Moving on because a company failed is different than moving on because of boredom. It's also useful to note how they describe their previous employers. Speaking positively about former employers is a form of brand loyalty that can benefit you, even once they've moved on.
Discuss Why They're Interested In Your Company
If the interviewee has researched your business and can talk about the specifics of your company, that level of interest can mean they're emotionally invested in the idea of working for you. It also indicates they would be committed to the position.
Assess Whether the Candidate's Values Match Company Values
Keeping employees isn't only about tangible rewards like money, or offering them interesting projects. The employee also needs to feel comfortable about themselves after a day spent at the office. Ask about the candidate's personal values to see whether they mesh with the business's values. If the company operates in sensitive lines of business, ask the candidate whether they're comfortable working in those areas.
Discuss Their Long-Term Plans
Candidates who've thought about their career path are often motivated strivers. Ask them about their long-term goals, and discuss how they can achieve those objectives within your company. Help candidates envision themselves staying with your company before they start the job; once they begin working for you, be prepared to back up your interview talk and support them on their career journey. Company loyalty goes both ways, after all.
There are many business applications still running on Cobol, but new developers would never base their career solely around learning Cobol. Even for developers who are working with more modern languages and methodologies, specializing in a single technology isn't the best basis for a career.
Besides the fact that technology changes rapidly (Cobol aside!), developers with a skill set across the technology stack are more valuable to their organization. These developers can step up and pitch in wherever help is needed, and their understanding of the challenges of different technologies provides a foundation for working in architecture, project lead, or managerial roles in addition to a varied programming career.
Software ultimately runs on physical facilities, so understanding the limitations of hardware and networks helps engineers make appropriate design decisions. Projects can either take advantage of, or be limited by, the specific operating system they are running on, so understanding this is key. Network configurations raise performance issues and security concerns, especially with growing use of the cloud. Mobile devices offer unique challenges as well. Applications won't succeed unless developers understand these issues and handle them appropriately.
There are fads and trends in programming, so while knowing a specific language is helpful for a while, having a solid foundation in good software engineering practices is more important. Developers need to fully grasp the concepts of object-oriented design in order to write reusable code that speeds projects. Debugging skills are often overlooked, but crucial. So is the ability to reverse engineer and work with existing code, so developers should practice reading and analyzing code they didn't write.
Ultimately, most applications require manipulating data, so developers should be comfortable with a variety of databases. Developers should be able to write SQL queries and work with stored procedures. Although many data-dependent projects will have DBAs to fine-tune the database, developers should be comfortable with the basics of database design and performance tuning. Because "big data" is increasing in importance, developers should learn how to work with very large datasets.
Understand Front Ends
Applications aren't useful until someone uses them, so developers need to understand what makes an effective front end. A designer may polish the look and feel, but developers should understand what works well on different platforms – thick clients still exist, and web applications and mobile apps present different challenges.