My small company, www.eggheadgames.com, has a set of niche puzzle apps for iOS (and Android). These share a common set of code, features and back-end services. We need an independent iOS developer (NOT a company) to be part of our small international team of 2-4 iOS engineers to work on new features and improvements to existing code.
We are looking for an independent developer, who loves good code and best practices. We use modern tools and invest in modern techniques like TDD and CI. We obsess over quality and help each other with code reviews and architecture design. We work closely with a designer who makes your work look amazing (at the same time as holding you to high standards!), and also does the work of getting the right sized images in the right format etc. so you can concentrate on coding.
This is a great position for a passionate developer (perhaps without formal qualifications). It's also a great position for someone experienced who just wants to do things right and not deal with time-wasting nonsense, or, who has done a lot of iOS programming, but not to the high standards they'd like, due to restrictions by the client to "just get it done fast". Or, you might be young and obsessed with programming. (One of our best engineers was a high-school student! You'll have to be special to be that person, but we welcome you and will teach you a lot and give you plenty of experience!)
Flexible Hours: Most of the team is currently working 20-30 hours/week. This will suit someone who has other part-time contract commitments -- or if you just don't want to work full-time because life has so many other things to offer! If you need to stop work for a week or two or more sometimes, that is ok too! We're looking to build a long-term relationship with a great (remote) working environment.
Your peers will be senior developers with great iOS skills. They will review your pull requests and provide feedback on best practices. Expect to be challenged. If you like that, you'll like working with us. If you just want to commit your changes and move to the next task, then this might not be the best environment for you.
Skills & Attitudes you'll need:
* strong knowledge and interest in iOS development best practices
* good Swift knowledge (or good Objective C with a desire to learn Swift)
* an obsession with doing things "right" instead of "good enough"
* good Xcode skills
* a desire to do or learn Test Driven Development where possible
* a reasonably modern iOS device (tablet or phone, both is good )
* GitHub issue tracking, check-ins, branching, pull request experience
* good English communication skills - be able to respond and contribute to issue comments, as most of our work coordination and tasking is done directly through GitHub
What we'll provide:
* prompt regular complete hassle-free payment for all work done
* small focused tasks with clear design specs, priority and milestones
* time to write quality code using TDD, including refactoring as needed
* code reviews, feedback, learning from each other
* continuous integration server
* no app store submission & other hassles - you can concentrate on coding
* weekly/bi-weekly release of all apps
For toolset and workflow, we require the use of Github (git) for source code control and its corresponding issues feature and tracked commits. We use GitFlow guidelines to encourage frequent commits during each milestone and accept changes only via pull requests (PR). Builds are validated on CircleCI/BuildBuddy with as much SwiftLint and other automated checks as we can throw at them, as well as a growing TDD suite.
Me: I am the project manager (and owner) for Egghead Games. I'm an experienced (i.e. old!) developer with too little time to do all the work myself. I have high standards, but I recognise and admire good software skills and am flexible and responsive to work with. I will take care of all builds and maintain the high bar on the quality of the overall app.
To give me a feel for your style, please show me a ViewController that you have written that you are proud of. We've found that this tells us a lot. Please do not give me anything secret of course!
Here are some of the smaller tasks that you might be given (taken from a recent list of outstanding iOS work):
* various feature related work
* convert some Objective-C++ view code to Swift equivalent
* fix SwiftLint warnings on an older section of source code
* split large storyboard into separate storyboards per view
* remove magic numbers from legacy storyboards
* refactor game logic into separate plain-old-swift class & add tests
Larger tasks pending include:
* add cross-platform puzzle status cloud sync
* build leaderboard module
* extract some common code into Frameworks to share between our apps
Each of these would be an issue, or group of issues, in Github and have supporting image assets and screen mocks as needed.