I love solving problems. I love technology. I believe that any particular technology is a means to an end, and not an end in itself. So you will find me celebrating a user’s problem solved well over being obsessed about any one particular technology. Over years of working with different technologies to build products, I have naturally expanded into engineering leadership which I see as an area that benefits from having people who have been hands-on for a long time and can bring in the taste of what makes a strong and thriving engineering culture.
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 as an engineer 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 try to learn them deeply.
-
Front-End (Web)
- HTML, CSS, Responsive (mobile-first) Design, Performance-tuning
- JavaScript, React, MobX, Jest
- Browser Extensions
-
Back-End
- APIs: SOAP, Rest, GraphQL, gRPC
- Languages: JavaScript (Node.js), Java, Kotlin, Groovy, Ruby, Bash
- Frameworks: Express, Spring MVC, Spring Boot, Grails, Sinatra
- Testing: Jest, Spock, JUnit
-
Persistence
- Relational Databases: MySQL, ORM (Hibernate, GORM)
- Non-Relational Databases: DynamoDB, Mongo
- Streaming: Kafka, Kinesis
-
Infrastructure
- Containers: Docker
- Orchestration: Kubernetes, Helm
- Cloud: AWS (S3, EC2, CloudFormation, ECS, EKS, RDS, DynamoDB, Kinesis, SNS, SQS, Lambda, IAM, Route53)
- Infrastructure as Code: Terraform
-
Developer Tooling
- Build Systems: Webpack, Gulp, Maven, Gradle
- Version Control: Git (and GitHub), Perforce
- Continuous Integration: Jenkins, CircleCI
Work Experience
Maersk
Engineering Director (August 2022 - current)
- Leading 2 engineering teams in the visibility and data intelligence areas of Supply Chain Management.
- Owning the technical agenda for my teams in the yearly operational plannings (hiring forecast and roadmap prioritisation for what we problems we go after).
- Built up a whole new engineering organisation from scratch in pursuit of solving an evergreen problem (of supply chain visibility) with a greenfield approach, continuing to raise the bar of hiring with each candidate.
Platform Architect (April 2021 - August 2022)
- Evaluated the technical landscape of 3 acquisition targets in the E-Commerce Logistics space, and helped shape strategy for post-acquisition integration.
- Co-created a framework for evaluating technology landscape of acquisition targets (based on learnings from above acquisitions).
- Led the integration effort of one of our previous acquisitions.
- Helped raise the bar of our interviewing process, and also worked to carve out a career path for individual contributors.
Principal Software Engineer (September 2020 – March 2021)
- Led designing an 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)
- Leading a team building a 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. This is based on an event-driven infrastructure powered by Kafka and Kubernetes.
- Led a team of developers on migrating our legacy Trip Management experience over to a modern front-end stack using Express, React and MobX.
- 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. Continue 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)
- Worked on getting Apple Pay integrated within the Expedia mobile app.
- Built few Chrome and Safari extensions to improve developer productivity.
- 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 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 moving 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)
- Participated in an Agile Scrum team with habits like pair-programming, TDD and weekly sprints.
- 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.
- 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. This involved working heavily with CSS Media Queries, CSS3 Transitions with JavaScript fall-backs, Touch Gestures, Conditional Event Handlers, Carousels, Graceful Degradation on older browsers (down until Internet Explorer 7).
- 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.
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 (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 easily 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 various programming languages including C, C++, Assembly Language, Shell, Perl and Java.
- Learnt core computer science concepts including algorithms, data structures and databases.