Founder and Developer2016 - PRESENTMike (LoudUp LTD)
- Built the artist and band management app from the planning stage to the launch. Planned the functionality of the 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. The API was later migrated from ASP.NET Web API 4.5.2 to ASP.NET Core 2.0, and then later to ASP.NET Core 3.0.
- Built the iOS and Android apps using Xamarin iOS and Xamarin Android. This included functionality such as task and event management, goal setting, and financial management - entering income and expenses, uploading receipts, and budgeting.
- 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.
- Built various integrations (OAuth authentication using Facebook, Twitter, and Apple), installed attribution using the Branch SDK, integrated Mixpanel in both the app and API for analytics, and maps and location autocomplete using the Google APIs.
- 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. Implemented charting to show how the account balance has changed over time. Implemented push notifications using Microsoft Azure, as well as local notifications for task and event reminders.
- 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.
- 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. Set up a full continuous integration and continuous delivery pipeline using Visual Studio App Center.
- In 2020, I built a web application with the same functionality as the mobile application using React and Stripe for the subscriptions. I also built the marketing pages as static pages using Gatsby, with a Contentful integration for the blog content.
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, and SoundCloud. Integrated with SparkPost for sending emails, Google for location and map services, YouTube and Vimeo for videos, MusicBrainz for artist information, and others.
- 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 platform, rate songs and videos, post comments, and send private messages. I also developed a forum, a news feed, and a real-time activity feed.
- Built a location-based search functionality allowing users to search for other users based on the distance from a 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.
- Rewrote a large part of the application in 2019/2020 from ASP.NET MVC and jQuery to use a .NET Core Web API and React stack.
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 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 peripheral apps and services to support the main application, carrying out functions such as loading customer data from other bank systems, updating trade statuses based on events in other systems, and producing end of day reports.
- 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.
- Created reusable components 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.
- Managed a team of three developers, one based in London and two based offshore.