Founder and Developer2016 - PRESENTMike (LoudUp LTD)
Technologies: Xamarin iOS, Xamarin Android, MVVMCross, C#, ASP.NET Web API, MongoDB, React.js
- Built the artist and band management app from the planning and design stages to the launch.
- Planned the functionality of various screens and worked with a designer on creating designs, collaborating through multiple iterations to finalize each screen.
- Created a back-end REST API using ASP.NET Web API, interfacing with a MongoDB database.
- Built both the iOS and Android versions of the app using Xamarin iOS and Xamarin Android. This included functionality such as task management, event management, goal setting and tracking, and financial management - the ability to enter income and expenses, upload receipts, and track planned vs actual amounts for both income and expenses.
- Developed OAuth authentication, using both Facebook and Twitter accounts, and a custom username and password.
- Implemented charting with the OxyPlot library to show how the account balance has changed over time.
- Developed the applications using the Xamarin Native framework but using the MVVM pattern, allowing 100% access to native features while achieving over 70% of code sharing across the iOS and Android versions.
- Developed in-app subscriptions using both the Apple App Store and Google Play store, including full server-side validation.
- Integrated Crashlytics using Visual Studio App Center.
- Built custom offline sync functionality, enabling the app to be functional offline and sync with the API when back online. This included logic for handling conflicts and retries.
- Implemented push notifications using Microsoft Azure, as well as local notifications for task and event reminders.
- Integrated the Branch SDK for install attribution.
- Integrated Mixpanel in both the app and API for analytics.
- Implemented maps and location autocomplete using the Google Maps and Places APIs.
- Set up a full continuous integration and continuous delivery pipeline using Visual Studio App Center.
- Wrote unit tests for both the app and back-end, and also UI tests for the app. Tested the UI on multiple devices using Xamarin Test Cloud.
- Worked with a designer on the website for the app - mikeapp.co, and converted the static pages into a dynamic web application using React.js and Redux, interfacing with the REST API to retrieve currency and pricing information, and blog content.
- Migrated the REST API from ASP.NET Web API 4.5.2 to ASP.NET Core 2.0. Implemented server-side rendering for the React application using the .NET Core SpaServices functionality.
Founder and Web Developer2013 - PRESENTLoudUp LTD
- Built the music-based social network from the design phase to the launch.
- Architected and implemented the user interface working together with a designer and designed the database.
- Designed user registration and login features as well as OAuth integration using Facebook and SoundCloud.
- Integrated with various social platforms such as Facebook, Twitter, SoundCloud, and Google+. Also integrated with MailChimp for the application mailing list, Mandrill for sending transactional emails, Google for location and map services, BotScout for bot/spam detection, YouTube and Vimeo for videos, MusicBrainz for artist information, and GeoNames for city, state, and country information.
- Developed an ad serving component allowing adverts to be dynamically added and served based on advert type, user location, user type, and screen size.
- Implemented music playing functionality using the jPlayer plugin allowing music to be streamed from SoundCloud.
- Designed and implemented social networking features allowing users to connect to the other users on the platforms, rate songs and videos, post comments, and send private messages. I also developed a discussion forum, a news feed, and a real-time activity feed.
- Developed location based search functionality allowing users to search for other users based on the distance from their current location using the longitude/latitude data provided by the GeoNames data feed and the geography data type provided by SQL Server.
- Developed peripheral applications allowing unread notifications to be emailed to the user every evening, sending emails with suggested users for users to connect to, and sending notifications for incomplete profiles.
Web Developer2015 - 2016WaterStreet Company (via Toptal)
- Worked to complete the development of a new auto insurance application.
- Developed the endorsement functionality for making changes to an existing auto insurance policy.
- Developed the Policy Cancellation and Reinstatement functionality.
- Developed integrations to external services to allow validation of previous policies.
- Developed functionality for underwriters to override points applied to policies resulting in a policy premium recalculation. Also worked on implementing the business logic around when points should be applied to a policy.
- Worked on improving the display of the billing information for the policies so that agents could clearly see the breakdown of premiums and fees, the payments that had been made, and the payments currently due or past due.
- Developed the action items functionality, enabling action items to be assigned to agents or underwriters, and reviewed and handled using the application.
- Worked on the functionality for uploading documents, adding memos, and downloading forms.
- Worked using the Agile methodology with daily stand-ups and weekly sprints.
Software Developer2005 - 2013Bank of America Merrill Lynch
- Created a web-based foreign exchange trading platform for booking live trades using streaming prices, viewing trade blotters, and real-time profit/loss calculations.
- Created various peripheral applications and services to support the main application, carrying out functions such as loading customer data from various other bank systems, updating trade statuses based on events in other systems, and producing end of day reports. These were created as console applications which would run as scheduled tasks and windows services.
- Created a web service API to allow other bank systems to interface with this application. The interface allowed other banks to retrieve rates, book trades, and query information.
- Developed enhancements to the application such as pre-deal credit checking, 24 hour trading, FX Options (Vanilla and Exotic), Limit Orders, integrating with new pricing sources, and new reporting tools for various teams such as operations, finance, and office managers.
- Created various reusable components for the team to use to help with functions such as reconciling data, rate calculations, converting between time zones, reading and writing to queues using IBM WebSphere MQ technology, and querying the Active Directory to get user information.
- Participated in the support rota dealing with Help Desk queries on a weekly basis. This included speaking to traders, financial advisers, and the finance/operations teams about any system related queries or issues they had and investigating and resolving any issues raised.
- Managed a team of 3 developers - 1 based in London and 2 based offshore.