Blog School of Programming Mobile Developer Spotlight: Alan Fineberg, iOS Engineer at Square

Mobile Developer Spotlight: Alan Fineberg, iOS Engineer at Square

We recently had the chance to speak with Alan Fineberg, an iOS engineer at Square who’s worked for companies including Google, Zillow and Yelp. Alan gives some incredibly interesting insight into his personal career journey from web to mobile development, and provides some helpful tips for beginners looking to get started in iOS or software development in general!

Alan Fineburg

What is your name and what do you do?

My name is Alan Fineberg. I’m an iOS engineer at Square, working primarily on the Register app for iPhone and iPad.

How would you describe your education and career progression?

I feel like my progression was fairly straightforward. I tried teaching myself how to code as a teenager with mixed results, studied Computer Engineering at UW in Seattle, and had a couple of internships. But I was uncertain about the job market when I graduated because the U.S. economy had just fallen off a cliff.

Fortunately, plenty of tech companies were still hiring at the time. I landed a job with Yelp as a web developer where I coded in Python. Mobile development and the iPhone in particular were blowing up, and after a year, I shifted from web development to iOS, which I’m still focused on.

So going back a bit, how did you first become interested in tech and programming?

I have early memories of being mesmerized by moving images on a TV screen. Then a revelatory moment arrived when I saw that a controller connected to a game console connected to the television could directly manipulate what was on the screen just by pressing buttons. Then, realizing that I could control the console somehow with programming made me think that programming was the next step to progressing from mesmerized kid to holding the puppet strings.

Most kids pretend to be superheroes or authority figures so they can feel powerful in a world that is run by adults. I wasn’t any different, and learning a few technology skills granted that same sense of having superpowers.

I tried to learn what I could about programming from the library starting when I was about 13 years old.  As you can imagine, there wasn’t much in the way of online classes back then! Instead there were books that seemed enormous, and I tried typing the code in from the book for as long as my attention would hold. I would usually have a typo so it wouldn’t work, and it felt like banging my head against a wall. I managed to keep at it sporadically throughout high school. Thankfully, some of the concepts stuck; enough to give me a head start when I took intro classes in college, and things finally started clicking into place from there.

At that point, did you ever think programming was something you could turn into a career?

Maybe because of the success of Microsoft at the time, I figured that if I learned how to do it well, there would be jobs out there. And I figured I would try to launch a career in the videogame industry, which had been my go-to response since age 9 when someone asked me what I wanted to do.

Let’s move to your first couple of jobs in tech. What lessons did you learn from them?

My favorite overall lesson is that despite appearances, there is never any magic. Even if it’s a company that seems large and mysterious like Google, they still have to describe each and every single one of their products in code to computers. So there’s only so many ways they could go about doing that effectively, and because people have already done this, it follows that everything these giant companies do is within the realm of human possibility. None of it is actually magic—anything that works has to work within the confines of what’s real.

You’ve worked for companies including Google, Zillow, Yelp, various gaming companies, and now Square. That’s a pretty diverse list! When looking for your next career jump, what usually drives the change? Do you target specific roles, companies, and/or products?

I look for companies that have a large audience, and I like it when companies find a way to open doors for people who otherwise would be locked out of certain areas. For example, Yelp started out by trying to allow people anywhere to become privy to what would otherwise be semi-private word-of-mouth discussions about local businesses. Zillow enables people to see what their home is worth and reduce their dependency on certain real estate services. Square lets anyone accept various forms of payment and run a business. All of these companies were the first of their kind to enable people with this kind of information and capability.

I also seek out companies with products that I would personally use and recommend to my friends and family; that’s the true litmus test.

How did you get started with iOS originally? When did you realize it was a viable career path?

I experimented with making iPhone apps in college, but Yelp was where I really got started. Mobile had been growing and seemed to be taking over, so I wanted to be where the action was. Yelp was a leader in mobile from the start, and it was a great place to cut my teeth. And there’s a huge demand for iOS engineers given the growth and scale of mobile technology, both now and then.

How would you describe your day-to-day job at Square? What do you like most about working at a company like Square, and what are some challenges you face in this kind of role?

At Square, I spend time in code building tools and features for the point-of-sale product Register, as well as working with a team to coordinate and hone new app releases. I really enjoy seeing the product in various shops and businesses and serving people who want to start and run their own business.

I also get to work alongside a very talented engineering team from which I’ve learned quite a bit. A challenge that’s ever-present is ensuring that we ship something that’s reliable and high-quality (it’s people’s money after all), while still building new features to keep up with our merchants’ growing business needs. So we’ve invested heavily in “safety net” processes instead of demanding that our programmers never make mistakes. It’s one of those cruxes of engineering—you can spend a long time weighing the various tradeoffs of time, money and quality, so you need a process to keep you moving forward.

How do you stay up to speed on changing trends in iOS development or other programming trends?

Working at Square means being immersed in this sort of news. Coworkers share news articles and blog posts through Slack, email, carrier pigeon, and in-person discussions, and we all try to stay on top of bleeding-edge developments. Plus, the core iOS developers at Apple are on Twitter, so following them (as well as iOS conference speakers) surfaces lots of tasty tech tidbits. I still use RSS and will subscribe to a blog if I’m enjoying its features. One good example (for seasoned iOS programmers) is Mike Ash’s blog.

And you also teach! You’re the instructor in the course Beginning iOS App Development at Udacity. How did that come about? What do you like about teaching in general or teaching Swift?

Previously, I was a TA in college and even taught guitar and tennis lessons. I feel compelled to share when my enthusiasm for a subject bubbles over, and I find it’s best to direct this toward students who desire to learn new things versus friends who politely smile and nod while I run off on a tangent.

When I saw on Twitter that Udacity was looking for a Swift course instructor, I was excited to jump in and teach again, as I’ve really enjoyed learning and writing code in Swift. And I could develop material on the side, while still working at Square. I enjoyed being able to develop content for students using the web, and gifs most of all. It was also nice to draw upon real examples to show students. I have memories of learning from examples that were purely illustrative with little practical use, and I thought I could deliver both.

What’s your advice for someone looking to learn iOS or break into the dev field in general?

My path is pretty straightforward, but there are many paths to becoming a software developer. With that said, here’s my advice:

  • Be a lifelong learner. In order to stay current with this industry as technology changes, we all have to keep learning on our own.
  • Ask lots of questions. Allow yourself to be that person. There’s so much to learn and you still have to climb the mountain on your own two feet, but it’s easier to make it when you don’t go at it alone, and there are lots of resources you can turn to if you run into obstacles or aren’t sure what to do next.
  • Be patient. As long as you’re making some progress, try to keep at it. Remember that trying to get a machine to do exactly what you tell it isn’t something that comes naturally, and it will test your patience. You may witness some bravado from those who seem to be complete naturals when it comes to coding, and it can be discouraging. But they’re usually just putting up a front; I can attest that true confidence is elusive for all of us, so try to keep at it!
  • Ask for help. Let’s be honest, the easiest way to break in is to know someone who is in the industry already, and see if they can help advise and open doors for you. One of the best career moves I made early on was asking a course instructor if she knew companies that needed interns during the winter. She knew someone at Zillow. That got the ball rolling for me and I haven’t looked back (until now!).

A huge “thank you” to Alan for sharing his career journey and for contributing all the great insight and career advice. Stay tuned for more compelling stories from industry developers very soon, and be sure to check out our many Udacity student spotlight posts!

Looking to get started with iOS development? Our Beginning iOS App Development Nanodegree program is the perfect entry point into iOS.

learn-more

Stay updated on the latest in technology

"*" indicates required fields

Stay updated on the Latest in Tech

Be first to hear about special offers, news, and resources from Udacity

"*" indicates required fields