“You must be shapeless, formless, like water. When you pour water in a cup, it becomes the cup. When you pour water in a bottle, it becomes the bottle. When you pour water in a teapot, it becomes the teapot. Water can drip and it can crash. Become like water my friend.” — Bruce Lee

 

I like to consider myself as being technology agnostic in that I try to find the most effective tool for the job as opposed to forcing one tool to be the solution for every problem. That being said below are a few of the libraries, frameworks and technologies that I’ve used in varying amounts based on the need of the project.

iOS Development

Swift / SwiftUI – primary development choice
Obj-C – for legacy support Xcode – native iOS IDE
XCTest – unit testing
Core Data – data persistence
Core* Services – for handling a variety of tasks like location, animation, camera, image and bluetooth
CocoaPods – 3rd party library management for products like AlamoFire and Facebook login
MVC / MVVM – design patterns

 

Android Development

Kotlin / Java – primary languages
Android Studio – native Android IDE
Espresso – Android UI Testing
Google Play Services – for sign-in, Maps, Notifications
Room – data persistence
LiveData – for creating dynamic components
DataBinding – used for easier code maintenance and reduced UI calls
Lifecycle – used for access to component states
ViewModel – distribution of code responsibilities

Support Technologies

WebServices – JSON/GSON, REST, SOAP
Firebase – real-time database, cloud based authentication
AWS – cloud based storage through S3
Jira / Confluence – team communication and workflow
Slack – team communication
Git / GitHub – version control
BitBucket / SourceTree – version control
Jenkins / Hudson – continuous integration
Sketch/Adobe XD – Emergency “no design team available” UI needs.

Recent Project Highlights

>

x2vol

intellivol

Native iOS mobile application.

etrip

dikita, inc

Native Android mobile application.

Accuscribe

Beacon technologies

Native iOS mobile application.