What are employers looking for in an iOS developer? It's a good question. Let's find some good answers. Are they looking for someone who types code at a keyboard all day, or are they looking for more? This is typical career advice for iOS developers: - Make a GitHub profile and contribute to open source projects
- Sign up for Twitter and pitch in on relevant conversations
- Update your LinkedIn profile and your curriculum vitae
- Find and talk to potential employers, clients and/or recruiters
- Practice for the technical coding interview
- Go to networking events and talk to career coaches
It's good advice and I recommend you take it. But the problem is: almost anyone can do this. What makes your work yours? I'm suggesting a second approach: - Build your app portfolio
- Gain real-world experience
- Deliver beyond spec
This is how I've built my iOS career, built dozens of app projects, and worked for big brands and small startups. Today's lesson shows you how you can do original, professional and career-defining work. If you're looking for a checklist, you're looking for an excuse to be unoriginal. And that's not going to land you that next project! Let's get started. Build Your App Portfolio The first step to becoming a professional iOS developer is to understand that your portfolio is a crucial component of your work. It's as important as your professional reputation, keeping your tools sharp, and learning new things every day. Your app portfolio is the culmination of your work. They are carefully crafted projects, over the long term, that you carry around as a badge of accomplishment. When you interview with a potential employer or client, your portfolio can do the talking for you. You can fold it open in front of the interviewer and say: "Look, I did this great work. I'd love to add your project to it." You won't merely add it. You seek to start a collaboration that results in work that's more than good enough to belong in your portfolio. To do your work, you need your employer or client just as much as they need you. An app portfolio is more than a collection of app screenshots. Here's what you should highlight: - Technologies, tools and techniques you've worked with (including ones unrelated to app development)
- Insights you've gained, like subject matter expertise or "skill multipliers" (more on that later)
- Experiments, try-outs, studies, and finished-but-incomplete work
Your curriculum vitae (CV) should list former employers, your education, and a quick list of tools and techniques, so the interviewer can scan those and tick the appropriate boxes. I'm a fan of the 2-page developer CV. This hiring process is changing, but the reality is: interviewers will hang onto ticking off checklists for a while longer. What If You Don't Have Any Projects? Back to your app portfolio. A portfolio is a chance to showcase your best work. But what do you do if you don't yet have any work to showcase? You make work worth showcasing. It's that simple. In fact, "make work worth showcasing" is a damn fine approach to building a professional career! Let's look at a few misconceptions about portfolio projects: - It needs to be paid work (no it doesn't!)
- It needs to be only your best work (nope, your worst is fine too!)
- It needs to be for big-time clients and employers (no, "small" is OK too!)
Some of the best app development work I've done in the past 10 years wasn't for the biggest clients on my CV. I learned a lot from working on my own "failed" ideas, that made no money whatsoever. I learned a ton working for startups that "moved fast and broke things". Every app in your portfolio gives you the opportunity to connect with a potential employer or client. The first step is to do work that's worth showcasing. Gain Real-World Experience Let's look at a typical job posting for an iOS developer: - At least 5 years of experience as a software developer
- Experience with Swift, iOS, build tools and XCUnit
- Experience with "agile" and scrum
- Experience with unit testing, mocking and stubbing
- Knowledge of "clean architecture"
- Knowledge of security best practices
It looks like a fair deal, right? They need someone who can deliver. A developer with enough experience. Someone who takes input and produces output. But what does it mean to have experience and knowledge? The above job posting should have said: - We need a developer who's built enough apps to understand our business' needs and desires
- She should tick the boxes on whatever tools, frameworks and technologies she thinks are best to complete the work we require of her
- She needs to be independent, autonomous and in control
And it also should have said: - We need someone who has written spaghetti code before, tried to unit test it, failed, screwed up the project, and now knows how to do it better
- We need someone who doesn't hide behind "clean architecture", but a developer who can explain to us why the app is built like this
- When the app has a security breach, we need someone who can take responsibility and fix it
- We need someone who can ask the right questions, and tell us the best answers
It's not about experience, it's about real-world experience. As a career-oriented iOS developer, you need to ask yourself what it means to have gained experience. Make lots of mistakes! That's the only thing you need to do to gain real-world experience. Mistakes lead to insights, and insights lead to innovation, and innovation leads to progress. When you do work worth showcasing, you immediately gain real-world experience. Unless you avoid making mistakes – so don't do that. Start with a first app project that resonates with you. Test out different approaches, hypothesize what might work, and then try it out. - Did it work? Great, keep it!
- Did it fail? Great, fix it!
You want to test what works, make mistakes, fix those mistakes, and repeat the successes that you found. Always be testing. It's quite literally the recipe for life. Deliver Beyond Spec When you do work that follows the specifications, your employers and clients can find someone else who can do that same job cheaper. What's keeping your employers and clients from doing so, is the cost of change. They are used to working with you and it takes too much effort to replace you. Until it doesn't. Marketplaces like Upwork, Freelancer, and Toptal make it easier than ever to hire good developers that deliver good projects. Some of these developers have modest expenses, so they can afford to price themselves lower than you. It's a race to the bottom. I tell myself that those developers can't do what I do. But is that really true? And what is it that I do, anyway? Recently I explained to a freelance client that they don't hire me for iOS development services. They hire me to think critically, and to communicate. Writing code is just one of the things I do. What I really do, is make insightful decisions on their behalf. What does it mean to deliver beyond specifications? - Make a functional and technical design before you start coding
- Explain alternatives and choices in an insightful way
- Take your client, employer or team on a journey towards a result
- See your work through the eyes of another person
Of course you bring your skills, expertise and experience to your work. It's not that anyone can code apps perfectly, with zero effort. But now that some of us can code, and some of us can code cheaply – why should we hire you? A simple way to deliver beyond spec, is to develop a skill multiplier. As an iOS developer, you can... - ... learn about UI/UX and build apps with better usability
- ... learn about marketing and help make change happen
- ... learn about business, and understand that apps need to make a profit
- ... learn about any subject matter, like finance, life science, education, and use it to create apps that fit the needs of its users better
I like to think of the skill multiplier as an asset that appreciates in value over time. The more insights you gain in your field, the better you become: value = iOS x [skill multiplier] The same is not true for just iOS development. Other developers are more skillful than you are, and they know more than you, and they learn more than you. Working harder and learning faster isn't an option when everyone is racing to the bottom. When you bring another skill into the equation, it's suddenly much more difficult to replace a skillful developer who combines iOS development with marketing, UI/UX, business, science, etcetera. It's hard to be the world's greatest at one skill, but can you be in the Top 10 for 3 uniquely combined skills? Absolutely! What's Next? You want to tell a potential employer or client the story of you. You start by doing work worth showcasing. You gain real-world experience by doing so. Now you know that's what really matters to a client or employer. When you do your work, you deliver beyond spec. It's not a replacement for traditional career advice, like polishing your CV and contributing in your field. It's an extension of those things. Because when everybody can do what you do, the bar raises for all of us. And that's exactly where you can make a difference. See you tomorrow for Lesson 4! —Reinder PS. Looking for a course plan that helps you become a professional iOS developer? Check out the Professional bundle of my iOS development course. It's specifically designed for aspiring iOS professionals. |
0 Komentar untuk "[Lesson 3] What are employers *really* looking for in iOS devs?"