I love solving problems. I love technology. I believe that any particular technology is neutral and a means to an end, and not an end in itself. So you will find me celebrating problems solved well applying technology, over being obsessed about any particular technologies themselves.
Skills
- Team building: recruiting, mentoring, and growing talent
- Learning and coaching through reviews and meaningful in-time feedback
- Collaborating asynchronously, and communicating unambiguously – both verbal and written (including documentation)
- Ability to communicate ideas in a language suited to the target audience (adapting to their level of familiarity to the subject)
- Working with agility
- Accepting that most decisions have trade-offs, and making pragmatic ones
- Working with mindfulness about scaling, security and privacy implications
- Most importantly, being hungry to learn and aware that what I know is a drop and what I don’t is an ocean
I list the technologies I have worked with below, grouped by their place in the stack. I do not claim to be an expert on any of those. But when I am actively using one on a project, I strive to know them deeply.
- Front-End:
- HTML, CSS, Responsive Design, Progressive Enhancement, Performance Optimisation, Accessibility
- JavaScript, React, MobX, SwiftUI
- Browser Extensions
- Back-End:
- APIs: REST, GraphQL, gRPC
- Languages: JavaScript (Node.js), Java, Swift, Python, Ruby, Groovy
- Web Frameworks: Express, Spring Boot, Vapor, Grails, Sinatra
- Persistence:
- Databases: MySQL, Postgres, DynamoDB, Mongo, Redis
- Streaming: Kafka, Kinesis
- Testing: Testing: Jest, Spock, JUnit, Cypress
- Infrastructure:
- Containers: Docker, Kubernetes, Helm
- Cloud & Infrastructure: AWS, Azure, Terraform
- Observability: Grafana, Prometheus, Tempo, Splunk, Datadog
- General Concepts: 12 Factor App, CAP, Horizontal Scaling
- Developer Tooling:
- Build Systems: Maven, Gradle, Webpack, Gulp
- Version Control: Git (and GitHub), Perforce
- Continuous Integration: GitHub Actions, Jenkins, CircleCI
Work Experience
Maersk
Engineering Director (August 2022 - current)
- Leading a greenfield initiative to improve visibility of the supply chain for our customers, building a new team of 20 members from scratch.
- Spearheaded the delivery of a core feature for a modern platform that combined data from multiple internal micro-services to provide a one-shop reporting solution for our users. This was needed to enable customer migrations from a legacy system.
Platform Architect (April 2021 - August 2022)
- Evaluated technical landscape and synergy as part of due diligence in the acquisition of 3 target companies within the E-Commerce Logistics business. Also headed initiatives in immediately actioning up some items post closure of the acquisition.
- Led the integration of a previous acquisition completely into our technology ecosystem, transitioning their applications to Azure cloud infrastructure.
Principal Software Engineer (September 2020 – March 2021)
- Led designing the architecture and approach for consolidating our various CRM solutions.
- Led the evaluation of technical capabilities offered by different vendors as part of an RFP process to land on a single CRM vendor.
Senior Software Engineer (March 2017 – September 2020)
- Led a team building a “Connected Trips” experience for travellers that pieces together items booked separately for the same trip, and proactively reaches out to the travellers when something goes wrong.
- Led a team of developers on migrating our legacy Trip Management experience over to a modern front-end stack.
- Led a team of developers working with our call centre agents building tools to help our agents interact with customers more efficiently.
- Built integrations for Slack, bringing the power of many of our internal tools right into chat, hence improving developer productivity. Continued to maintain this as an (inner) open-source project welcoming contributions from the rest of the organisation.
- Recruited and mentored engineers while setting up a new office in Amman, Jordan.
Software Development Engineer 2 (September 2014 – February 2017)
- Implemented integration of Apple Pay within the Expedia iOS app.
- Built few Chrome and Safari extensions to improve developer productivity by bringing information from different stacks and environments directly to their finger tips.
- Created chat-bots in HipChat for controlling deployments of applications onto the cloud (AWS).
- Created a league around CI/CD within the company.
- Set up a mechanism (based on GitHub APIs and AWS deployment events) to automatically generate release notes for (thousands of) applications getting deployed across all teams. Created mechanism for operations teams to quickly isolate new causes of issues using the same data.
- Created dashboards for teams across the company to have easy visibility about the deployment status of their apps across multiple regions in the cloud.
Software Development Engineer 1 (September 2013 – August 2014)
- Involved in the design and implementation of the migration of our Landing Pages into the cloud (AWS) – using the opportunity to also make gains on our page performance.
- Initially hired as a front-end expert, I led the effort to build responsive versions of our Search (SEO & SEM) Landing Pages.
British Sky Broadcasting
Software Engineer (March 2012 – September 2013)
- Worked on the main homepage (sky.com) of the company which was a high-traffic site with around a million views everyday.
- Worked on maintaining the old CMS, and creation of a new one - both using Groovy and Grails. For the new project, introduced and pushed for a strict test-driven culture using Spock to write our tests.
- Worked closely with UX and Design teams to evolve the homepage into a “responsive” form using progressive enhancement techniques.
- Worked on few common modules of code and content that were shared/consumed across all of Sky’s teams. These services were being provided via a Sinatra app hosted on Cloud Foundry.
- Actively researched and introduced new ideas and techniques to the team through talks and brown-bag sessions, and influenced choosing the technologies adopted to build the solutions.
Institute of Philosophy (University of London)
Software Engineer (March 2011 – March 2012)
- Worked as the main developer on PhilEvents – an event listing web application for philosophers.
- Involved in the complete life-cycle of the application’s development (ordering and installing server, requirements gathering, design, planning and estimation, development, testing, deployment and maintenance). The site was built as a CMS so that similar sites (PhilJobs – a job site for philosophers) could be created on the same platform.
- Created a search system that was based on full-text and geo-location, and fine-tuned it with indexes to get it performing well with high amount of data.
X-On
Software Developer Intern (December 2010 – February 2011)
- Developed a solution to synchronise data between the company’s internal MySQL cluster and cloud-based data stored in SalesForce.
Software Engineer (July 2008 – September 2009)
- Started with a month-long training in using Java in the Enterprise.
- Worked on creating a back-end SOAP-based web service and a web front-end for the same using JSPs and Servlets.
- Involved in a project to re-skin the company’s existing web application which gave me a chance to start playing with CSS.
Education
University of Essex
MSc in Advanced Web Engineering (2009 – 2010)
- Modules included: E-Commerce Programming (using Java, .Net and Ruby-on-Rails), Software Design & Architecture (Design Patterns, Refactoring), XML & Related Technologies, Distributed Computing, Advanced Object-Oriented & Relational Databases.
- Awarded the RA Brooker Prize for best overall performance in the examination and dissertation.
M S Ramaiah Institute of Technology
BE, Information Science & Engineering (2004 - 2008)
- Was introduced to programming (it was love at first sight!) and got familiar with languages including C, C++, Assembly Language (8086), Shell, Perl and Java.
- Learnt core computer science concepts including algorithms, data structures and databases.