Come, stay Busy with us.
At Busy Apps, we're a small, passionate team of pioneers and veterans, driven by our belief in quality of work and a customer-first ideology.
Our mission is to craft powerful, flexible and easy to use productivity tools that enable people to do more, and achieve more in less time. From students to teachers, to the world's most prestigious companies, our work empowers and impacts the lives of many, and knowing that keeps us pushing boundaries.
Ideal Candidate:
We're looking for a hands-on, ambitious and an energetic Junior Software Engineer to join our engineering team to work remotely from the comfort of their home. If you're the sort that would take apart a toaster to see how it works, or split open a battery to see what's inside, you may be an ideal candidate; although that isn't part of the job description.
Your role:
You will be joining a small team to work on our core products; BusyCal and BusyContacts. Both of these apps are mission-critical and highly complex, from the model, to the implementation logic and all the way up to the view. You will be exposed to a variety of challenges, from simple refactoring to thinking outside of the box in order to solve complex problems, all the while considering performance implications of any code you write.
From day one, you'll be a first-class citizen, enjoined with ownership of the projects and considered an integral part of the team. This will come with an elevated set of responsibilities and expectations around quality, time and dedication. You will be given the opportunity to make key architectural decisions, re-writing small to large parts of existing core functionality as well as work on new ideas.
Improving existing processes, sharing, writing and testing code, as well as related documentation, will be on your daily agenda. You will be exposed to the full spectrum of product development, from dealing with customer support directly to bringing ideas and designs to life; working on our products will help you rapidly accelerate your growth in both experience and skill.
This is a fully remote position, allowing you the flexibility to work from any location you prefer and on a schedule that works best for you. You will be expected to to give at least 8 hours of work, 5 days each week, at times working to meet an aggressive release schedule, with the possibility of occasionally spending a few hours over weekend releases to address immediate, critical bug reports. You will need a decently equipped Mac to work on, preferably with the latest macOS installed (10.15 Catalina) along with the latest tools (Xcode 11). The projects are hundreds of thousands of lines of code, with several compilation-intensive sub-modules, to give you an idea.
Your skills:
You will need to have a certain level of skill, and a yearning to improve it, ready to take up challenges by entering unknown territories, from reading complex technical specifications to RFCs of open standards such as CalDAV and CardDAV. When necessary, you will have to have the time and energy outside of usual working hours, for self-study and self-improvement in order to aid you in fulfilling your expected role. Specifically, you should have:
- Experience in both Objective-C and Swift, and the ability to translate code from one language to another is a must
- Experience or good-enough exposure working with both AppKit (macOS) and UIKit (iOS) is a must
- Intermediate to Advance experience in Core Data related topics is a must
- Experience in writing custom controls and custom drawing routines (drawRect / CALayers etc al)
- Experience in writing automated tests, working with mock objects and classes and general test-driven-development strategies
- Experience using Instruments to measure and time code, as well as identify and fix performance bottlenecks
- Experience in Git is a must
- Experience working with EventKit is a bonus
- Experience in GCD and what must and must not be executed on the main thread is a must
- Experience in RxSwift / RxObjC is a bonus
- Experience or prior knowledge of WebDAV / CalDAV / CardDAV is a bonus
- Experience in creating custom Frameworks is a bonus
- Experience and solid grasp of common programming patterns and protocols, such as the observer pattern, delegates etc
- Proven ability to work autonomously and remain self-motivated is a must
- The ability to use and customize various development tools and scripts to improve existing build processes and their reliability
- Solid knowledge and understanding of concurrency, mult-threading, asynchronous operations and related problems such as race conditions, semaphores, thread pools, locking etc is a must
- Solid understanding of networking calls and background tasks
- A drive to learn new technologies in order to modernize existing workflows and code
- Eagerness to solve complex problems elegantly is a must
- Fluency in written and spoken English
Your renumeration:
More information will be shared once you apply for the position. We are looking to offer either a monthly, competitive salary or an hourly rate depending upon the candidate, their availability, skill and various other factors.
Application process:
We are not looking to hire immediately, and so the successful candidate may start roughly around January 2020 or earlier.
If you feel intimidated by the many requirements, or are over confident, you may not be a suitable candidate. If you feel you don't fit the mould completely, you should probably still apply. The underlying requirement is that of a go-to, proactive, skilled candidate with a let-me-at-em attitude; one who understands the mission-critical nature of our products and its implications. If some or a few of the requirements aren't met, but you feel strongly about your ability to play a vital role and are very eager to learn, please apply.
We look forward to hearing from you and consequently working with you. Please note, once you apply, we will only get back to you once we have enough candidates in a pool for screening, and have successfully shortlisted you. We may also contact you sooner in case we have further questions or require clarification around particular experiences or expertise.
Please send in your CVs by writing to us here.