Andrzej Doyle
Verified Expert in Engineering
Algorithms Developer
Sheffield, United Kingdom
Toptal member since November 10, 2020
Andrzej is a senior back-end developer with fifteen years of experience in JVM languages, Java and Scala, including ten years' work for demanding financial clients such as IHS Markit and GSA Capital. He is adept at delivering a complete software project from conception to deployment, focusing on thoroughly understanding the underlying business problem.
Portfolio
Experience
Availability
Preferred Environment
IntelliJ IDEA, PyCharm, Linux, Windows
The most amazing...
...app I've developed was GSA's charge calculator, taking extremely complex business requirements and turning them into something robust, performant, and scalable.
Work Experience
Back-end Cloud Developer
Hype Labs Inc.
- Developed a REST API web server (Express on Node.js) to ingest data from worker nodes and expose aggregations to dashboards. Completed each sprint's targets on time and delivered a fully-deployed and end-to-end tested server by the deadline.
- Defined and ran a Substrate-based blockchain and integrated this into the web server via Polkadot for real-time charging of pilot customer wallets.
- Determined the schema and defined the automated migration for a PostgreSQL database. Tested performance on hotspots with refined queries and indices so that database throughput and order of magnitude were higher than required.
- Containerized the application using Docker and authored the CI/CD process using Bitbucket Pipelines for deployment onto the EC2 node. Wrote custom shell scripts for deployment on the bare node and guided the in-house team's transition to Beanstalk.
- Wrote automated tests for codebase covering all components and integrated with CI build. Added ESLint rule after async-related bug to pre-emptively catch all future issues of that type.
- Shared my technical knowledge and experience with the product owners when discussing potential features and direction of travel for the pilot and listened to the business case in order to advocate practical and effective choices.
Back-end Developer
Flint Hills Resources
- Collated limitations of existing systems and requirements for a replacement from users and used these to design and document an improved proposed architecture with target metrics at each stage.
- Developed, built, and deployed a proof of concept of this architecture using Fastify on Node.js, mocking out the real-world lambdas with various endpoints to reflect different conditions, like response size, time, etc.
- Wrote automated unit and integration tests of the PoC with Jest to validate invariants' correctness and design intent documentation. Over 90% coverage was achieved.
- Presented demo of architectural decisions to the client team. My clear articulation of my design uncovered a significant underlying issue in the client's existing architecture, prompting an early rethink and saving over $10 000.
Software Architect | Senior Developer
Envision Digital
- Designed the project's architecture from the ground up, taking theoretical algorithms and building out the multiple services, APIs, and infrastructure needed to execute these in a robust and performant context.
- Prototyped ideas arising from the theoretical side of the team, allowing them to observe the results in situ and have the freedom to try several ideas per week with concrete feedback.
- Oversaw the development across a team of four developers, drawing on my experience to convey the pros and cons of different methods, ensuring that all developers had a solid understanding of the problem, the likely pitfalls, and the desired solution.
Chief Technology Officer
EDA Family Solutions
- Evaluated technical architecture options, balancing performance concerns, price, feature set, future-proofing, reliability, and ease of integration. Established and built-out tech stack that hits our requirements on all these factors.
- Authored and revised workflows across the tech team, reduced developer onboarding headaches, and avoided style, structure, and integration conflicts.
- Planned roadmaps with other CXOs, reporting technical progress and highlighting technical risks in non-technical terms. The conclusions were realistic and balanced, indicating a good understanding of the situation and constraints.
- Architected, developed, and implemented a child-safety iOS application in Swift (7,000 lines of code), integrating with the Python (Flask) back end, emphasizing a minimal working set of user information for privacy and ethical concerns.
- Managed and mentored junior developers, mixing coaching with more administrative and pastoral aspects. The developer reports show they are thrilled with the set up and are learning a lot.
- Tracked, prioritized, and resolved bugs and feature requests via GitHub and Trello. Reviewed the other developers' branches and collaborated with those reviewing mine, picking up bugs and design issues before entering the codebase.
Core Technology Senior Developer
GSA Capital
- Led the development of the Alpha capture system, used by over 30 major banks and trading houses, generating £5 million in annual revenue.
- Architected, implemented, tested, and deployed the real-time charge calculator, tagging two million trades daily with over 20 types of configurable charges and commissions.
- Handled the out-of-hours support on rotation, minimizing disruption to time-critical processes through a full understanding of the internal and external systems empowering my decision-making process under pressure.
- Acted as an early adopter, evangelist, and advisor for Scala within GSA, which reached 90% take-up within the core and became the common language across all teams.
- Advanced the CI practices within the team. Deployed a prototype set up as a proof-of-concept, tuning it to incorporate our custom deployment steps and getting widespread buy-in for integration. Removed 99% of manual work and errors around deployment.
- Collaborated closely with my colleagues in the operations and trading teams to understand the details of their roles and incorporate this knowledge into the designs of systems they used. Named "most valuable colleague" several times due to this.
- Refactored a trade capture system serialization protocol at the heart of GSA's business. Extensive testing and careful three-phase deployment allowed this to go live with no downtime or errors and resulted in a 20-time increase in throughput.
- Liaised with the infrastructure team to determine the hardware setup required for each application, then commissioned and acceptance-tested it.
- Mentored and supervised the junior developers joining the team, sharing programming and business knowledge so new hires could pick up first-line support within three months of joining.
- Designed and maintained internal representation of financial products as a database and library (API). Integrated stakeholder information and understanding of financial services to cleanly model over 100,000 products across dozens of asset classes.
Associate Developer
IHS Markit
- Refactored the web app upload process, leading to a performance improvement by one order of magnitude and the acceptance of a new account of £70,000.
- Improved team productivity by introducing workflow tools, including Git, Hudson, JProfiler, and Sonar. This reduced the "code freeze" period around releases from two weeks to one day and enabled parallel development.
- Maintained documentation on the in-house wiki, focusing on relevance, correctness, and applicability. Praised by the manager for these efforts when other developers found it simple to take over basic maintenance and troubleshooting when needed.
- Designed, prototyped, and implemented scalable grid architecture for distributed calculation, which enabled the company to sign larger accounts (£3 million in expected revenue stream) and expand coverage to offer risk valuations.
- Reorganized the build process, removing fragile dependencies and refactoring unclear targets, saving an estimated 100 working hours a month on slow and broken builds and immeasurable improvements in morale and workflow.
- Mentored colleagues and developed their abilities in one-to-one and informal group training sessions.
- Automated the webserver validation process with Hudson and Nagios, saving around ten working hours a month of manual intervention and garnering commendation for the monthly meeting initiative.
- Wrote and monitored the automated test suites, which included the first full definition of correct behavior. While incomplete on my departure, this raised coverage from 11% to over 60% on the packages concerned.
- Replaced the custom database persistence library with Hibernate version, reducing defect report rate by over 90% and enabling developers to fix issues faster by one order of magnitude.
Java Developer
Site Intelligence
- Reworked the input parsing code underlying the whole application to run multithreaded. Performance gains of 540% enabled us to take on larger accounts returning an immediate £200,000 in licensing revenue.
- Created an email service integration module from initial specification to testing and delivery. This module was licensed for £55,000 in revenue in its first year.
- Took ownership of and improved the client-side JavaScript for customer deployment, including refactoring from previous global-procedural structure to unobtrusive object-encapsulated design, which enabled us to win an account with a large supermarket.
- Consulted with management to plan a feature set for future releases. The solid estimates and feedback on potential technical roadblocks improved the consistency of release delivery.
- Completed the ongoing development across multiple modules, including estimation, development, testing, time tracking, and liaising with the technical author.
Experience
Real-time Charge Calculator
I was in charge of investigating how we could automate the previously manual and error-prone process. Though the charges varied greatly in methodology, common elements could be extracted from them, and thus each "calculator" could be defined as a combination of functional blocks. I identified and implemented these components in a composable manner, setting up a daily batch to fully replace the manual process.
However, my favorite aspect of this application was its extensibility. Initially, the configuration involved hand-editing the XML, and it was relatively simple to add an HTML front-end with validation without modifying the core logic. Some processes wanted charges available before the end-of-day. It was straightforward to embed the calculation core in a real-time trade-watching process. Other teams wanted to run charge calculations in backtesting, apportioning, or virtual trade calculations. I embedded this logic in a library compatible with the simulation API.
I took an extremely thorny problem, and by stripping it down to an extensible core, built something beneficial that found its way into most teams' workflows.
Alpha Capture System
- Front-end web app to allow users to enter and track their investment ideas.
- Calculation module to evaluate the would-be performance of these ideas.
- Internal API feed to aggregate, filter, and present these ideas to our trading teams.
- Internal reporting front end for the derivation of commissions and rewards to the analysts under various criteria.
- Back end to tie everything together and serve data efficiently.
I was in charge of the development and architecture of all of these components, which often involved balancing priorities and paring down wishlists in the face of real-world constraints. Additionally (as was common at GSA), I acted as front-line support for the external and internal users, handling bug reports and general queries diplomatically.
This project's success was down to acknowledging the potentially huge scope and insisting on a clean and extensible core, followed by incremental development of features in an order that would maximize overall project value. Honest and open management of stakeholder expectations was key to maintaining their engagement.
P&L Visualizer
I was responsible for designing the application and creating the back end that would serve up the data. The performance was an essential requirement here. Through data warehousing techniques (including tiered pre-aggregation), I maintained sub-second response times for any combination of dimensions that the user query.
The design required close collaboration with the users and the Ops team that produced the input. I not only produced a coherent UX workflow but was also able to effect changes in the Ops workflow to better align with users' needs, such as exposing ETAs and progress for each day's data.
The single-page app sat on a Bootstrap framework, with custom JS to load data from the back end and pass to a dynamic charting library.
The initial version was a great success because of its clear usability, with the CEO especially keen on it for use in pitches. I then extended the back end to augment official totals with calculated P&L breakdowns in close collaboration with Ops to align the methodology, which found widespread approval.
EDA Child Safety App
I co-founded this startup with the CEO, taking full ownership of the technical side. It was decided to target Apple devices, and despite not having used Swift before, I built out a functional and well-architected MVP within the six-month estimate.
I also evaluated and procured the infrastructure required to create, deploy, and run the application, ensuring that the choices would suit our current low budget but be compatible with future growth.
I was responsible for recruiting students to help with the development as part of a university project and mentoring them to industry best practices. The individual I took on is still with us after the project ended, as he feels he is getting a lot from the relationship, and his contributions to the project are becoming more meaningful.
Together we built the back-end server in Python and Flask, prioritizing a clean, extensible core that both meets the needs of the MVP and provides a solid base for future development.
API Server/Blockchain Coordinator for Mesh Networking Project
Through this process, I was able to expose a set of APIs with endpoints representing clear operations from the clients' perspectives yet still obtain the information required to carry out the somewhat complex state changes and data flows that represented the business logic. This included a transaction-like submit/confirm functionality via status codes that prevented double-submissions of data, asynchronous handling of blockchain transactions with the API designed so that the results would appear in response to subsequent calls, and a database design so that clients could request raw or pre-aggregated data as required.
This project consistently hit all sprint goals and milestones and was validated by the client on time and within budget.
Education
Bachelor's Degree in Mathematics and Computer Science
University of Oxford - Oxford, UK
Skills
Libraries/APIs
JDBC, jQuery, REST APIs, jMock, Node.js, SQLAlchemy, Firebase iOS SDK, React
Tools
JProfiler, Hudson, Git, IntelliJ IDEA, Subversion (SVN), Cron, Xcode, GitHub, Trello, PyCharm, Sonar, CircleCI, RabbitMQ, MQTT, AWS ELB, JPackage
Languages
Java, Scala, Python, JavaScript, XML, Java 11, Bash Script, CSS, HTML, SQL, XSLT, TypeScript, CSS3, HTML5, Haskell, Swift, PHP, Ruby, Web Services Description Language (WSDL)
Frameworks
Spring, Flask, JSON Web Tokens (JWT), Hibernate, Bootstrap, WebApp, AngularJS, Angular, Swagger, Spring Boot, Fastify, Express.js, Substrate
Paradigms
API Architecture, Application Architecture, Back-end Architecture, Object-oriented Programming (OOP), Object-oriented Design (OOD), Functional Programming, Continuous Integration (CI), Unit Testing, Requirements Analysis, Refactoring, User Acceptance Testing (UAT), Object-relational Mapping (ORM), DevOps, Scalable Application, Continuous Delivery (CD), Mobile App Design, Microservices, Testing, Manual Testing, Serverless Architecture, ETL, Design Patterns
Storage
Databases, RDBMS, Relational Databases, SQL Server 2012, Microsoft SQL Server, SQL Performance, MySQL, MongoDB, NoSQL, PostgreSQL, Oracle PL/SQL, SQLite, Graph Databases, Neo4j, JSON, Elasticsearch, Amazon S3 (AWS S3)
Platforms
Amazon Web Services (AWS), iOS, AWS Elastic Beanstalk, Docker, Windows, Linux, Twilio, Oracle, Apache Kafka, Kubernetes, Firebase, Amazon EC2, AWS Lambda, Blockchain, Mobile
Industry Expertise
Project Management, Banking & Finance
Other
Back-end, HTTP, Web Servers, Data Loading, Technical Architecture, Stakeholder Management, API Design, Architecture, API Integration, Back-end Development, Financial Services, Fintech, Software Architecture, Solution Architecture, APIs, Coding, CI/CD Pipelines, Software Design, System Architecture Design, Project Planning, Data Structures, Algorithms, Analysis, Bug Triage, Team Mentoring, Deployment, App Support, Performance, Technical Leadership, Full-stack, Mentorship & Coaching, XML Web Services, CTO, Interviewing, Recruitment, Code Review, Profit & Loss (P&L), User Experience (UX), User Interface (UI), Single-page Applications (SPA), Caching, Optimization, Feature Planning, Product Roadmaps, Infrastructure, Monitoring, Build Configurations, Financial Modeling, Financial Market Data, Large Data Sets, Full-stack Development, Cloud Platforms, Web Scraping, Real-time Data, Web Development, Leadership, Scalable Architecture, Compilers, Parsers, Agile Deployment, App Store Acceptance Process, Mobile App Development, Front-end Development, Front-end, Data Warehousing, Graphing, Data Warehouse Design, Internet of Things (IoT), Enterprise Java Beans (EJB), IoT Security, EnOS, Serverless, Open Charge Point Protocol (OCPP), Digital Payments, Message Queues, Prototyping, Proof of Concept (POC), API Gateways, Authentication, Amazon RDS, Hibernate 3, Distributed Systems, Containerization, Async/Await, IPC, WebSockets, Engineering, TIBCO, PIP
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring