I am a freelance iOS developer, technical consultant, and open-source contributor. I have a wealth of experience working with clients from around the world. I offer my services as an iOS developer for hire to work with businesses of all sizes including start-ups, creative agencies, designers, individuals and other freelancers & developers.

The work I provide is of the highest quality, fully responsive, and tested in a wide range of devices. I take great care to ensure each project is well-architected, well-documented and easily maintainable so you can enhance an app as your company grows.

Before becoming a freelancer I worked as a C# developer for a company developing large enterprise solutions. There I’ve deeply learned C# and T-SQL, and have obtained an eye for detail and appreciation for software design, knowledge of architecting and working with large databases, as well as knowing how to efficiently project manage and work with clients and teammates successfully.

I maintain a high code quality standard and use static code analyzer. Writing code that is documented and easy to read means it can be maintained and scaled in the future and allows co-workers to quickly work with it.

I started сreating iOS apps since iOS 6 being a C# developer. During my career as a freelance iOS developer, I created more than 40 apps and formed a good portfolio. Here are few selected pieces from it:

Sometimes I contribute to other open source projects and create my own. I’m author of DCKit, a set of @IBDesignable iOS controls with useful @IBInspectable properties. Check out my Github profile for other open source contributions.

I also maintain a blog about software development, project management and freelancing.

Skills

Mobile development

Swift
Swift
Objective C
Objective C

I have many years experience as an iOS developer, creating native iPhone/iPad apps and games using Swift/Objective C. I was using good old Objective-C before late 2014, then I learned Swift and liked it’s simplicity and expressiveness. I noticed that using Swift greatly reduces development time, therefore I completely switched to Swift in early 2015. Currently, I’m actively using all the features it offers, such as generics, enums with associated values, protocols, value types and many others. They allow me to create a robust yet flexible applications for my clients and maintain KISS, DRY, SOLID programming principles.

My mobile development process the use of tools such as Xcode, Git, Cocoapods, SwiftLint, and Xcode Instruments to profile and optimize an app.

Apple constantly develops their programming tools and introduces new features designed to make the programming process more effective. I’m trying to use them in my work if they are useful. For example, I started using Storyboards as soon as Apple had introduced them, and they had improved my productivity. AutoLayout is another great example; I believe it’s a mandatory for every app to have it used, so the app looks great on a wide range of devices: from iPhone 4S to iPhone 7 Plus.

Backend development

iOS development is what I specialize in, but I also have a good knowledge of server backend technologies. Sometimes the client already has the server and the backend developer. Then we’re working together to architect and build an API to the server. In most cases, it’s a REST API (JSON), but I also have a great experience with WebSockets for realtime data transmitting.

I have closely worked with few BaaS services: Google Firebase, Parse.com. After Parse team had released Parse Server I migrated Parse.com backends to self-hosted Parse Server instances running on VPS. That was a good reason to learn how to directly work with MongoDB and the server app, and how things are organized on the server side.

I have a good knowledge of TypeScript and use it to create a backend logic for server apps running Google Firebase. I like its expressiveness that lets to create a solid object-oriented architecture.

Payment processing integrations

Some of my clients sell physical goods or services through iOS apps I’ve developed. In the sake of having better conversion rates, we integrated a payment processing functionality right into apps using third-party payment services, such as Stripe and PayPal. Both of them have iOS SDKs that I’m familiar with.

Working with payments is a non-trivial task requiring not only client-side integrations but also server-side checks for security purposes. I implemented the necessary backend logic to make sure the payment process is safe for both the user and the client.

Stripe SDK has a native support of Apple Pay, so we’ve enabled it to eliminate the need to manually type card or shipping details.

Design

I convert designs to high-performance code whilst respecting your designer’s compositions. I consider design to be just as important as development and aim to combine both to produce high-quality user experience. I always keep in mind that iOS users are very fastidious people in terms of user interface.

I tend to follow Apple Human Interface Guidelines in composing UI for iOS apps. When I see my client wants to add a control uncommon for iOS platform or apply a UI pattern, which is not fitting small iPhone screen, I let the client know about that and suggest an alternative solution according to Apple HIGs.

Please note I’m not a designer. I can create simple interfaces using standard iOS controls, but I suggest you hire a professional designer to draw a great UI.

Achievements

In my spare time I like to help other iOS developers on Stack Overflow:

profile for Andrey Gordeev at Stack Overflow, Q&A for professional and enthusiast programmers

My profile is in top 5% amongst others in ios, iphone, swift, objective-c and sql tags. Most of the reputation I earned by answering iOS/Swift-related questions, but there are also popular answers for c#, sql and vba/vb.net tags.

Stack Overflow Developer Story shows off my projects, blog posts and top SO answers in a chronological order.

Upwork is my main channel to work with clients since 2012. My Upwork profile is pretty strong: I have 100% job success score, Top Rated badge and more than 3,000 hours tracked. My clients are very satisfied with the work I deliver as well. All of the reviews I have have 5 stars.