Senior Software Engineer / Tech Lead (contractor)
Board Intelligence
Total years of experience :18 years, 7 Months
Helped multiple teams become more productive through knowledge sharing, code reviews, pair programming, writing reusable libraries, analysing performance bottlenecks, improving the reliability and speed of the CI pipeline, engineering architectural solutions, fixing bugs and flaky tests, increasing test coverage, and leading a team to deliver vital projects.
My contract was renewed 4 times in recognition of the value I added. Among many noteworthy achievements, I helped:
• Lead a team to deliver high-quality features within a constrained timeline, including customer-facing APIs
• Lead the development effort to support a crucial infrastructure migration
• Engineer architectural solutions for cross-cutting concerns across multiple services
• Build tools to highlight performance bottlenecks in production, along with other tools to analyse them in development environments, resulting in >40% reduction in overall database traffic
• Analyse and fix long-standing production issues that were hard to reproduce
• Extend and supplement multiple open-source libraries, such as Rails' ActiveRecord, Fog, Open Telemetry, RSpec, RuboCop, and others, with features, bug fixes, and performance improvements
• Measure, analyse, and optimise slow test cycles on developer machines, resulting in tests starting 90% faster with a direct impact on team productivity
• Reduce the running time for CI pipelines by 75% while reducing network and processing costs at the same time
• Build a tool to analyse CI pipeline performance and identify bottlenecks
• Configured Gitlab to report information about test failures and test coverage. Making this information visible in merge requests helped the team increase test coverage.
• Improve testability by configuring local development replicas of some production services
Technologies: Ruby 2.7 and 3.1, Ruby on Rails 6.0, 6.1 and 7.0, GitLab CI, OpenStack, Docker Compose, PostgreSQL, Datadog, Shell Scripting, Clojure
Skills: Team Leadership · Software as a Service (SaaS) · Continuous Integration · Solution Architecture · Web Applications · Performance Tuning
Challenged to improve a legacy codebase that had ~100k Ruby LOC
• Analysed the system and drafted short and long-term plans with measurable results
• Created CI pipelines and wrote hundreds of automated test cases, including end-to-end tests
• Integrated error monitoring tools and created dashboards for performance and error monitoring
• Provided production support and wrote support scripts to handle frequent requests
• Successfully fixed bugs and delivered new features across multiple applications with a 96% deployment success rate
• Wrote wiki-style documentation for the apps’ architecture, infrastructure, deployment processes, and major design considerations
• Produced improved reports that enabled more accurate billing to B2B customers
• Improved performance by an order of magnitude, decreasing the 99th percentile from minutes to seconds
• Identified thousands of dollars in cost savings
Technologies: Ruby 2.2, 2.4, and 2.5, Ruby on Rails 4.2 and 5.0, MySQL 5.6 and 5.7, Cypress, Bitbucket Pipelines, Cloud 66, Amazon Web Services (AWS), Sentry, New Relic, Shell Scripting, and others
Skills: Software as a Service (SaaS) · Continuous Integration · Web Applications · Performance Tuning
A short contract where I helped develop high-quality features and assess the viability of a new integration.
• Improved CI jobs and enabled them to capture test results
• Fixed intermittent test cases to make the build more stable
• Reviewed PRs for quality, performance, security
• Identified inconsistencies and risks in the codebase
• Developed a new, well-tested backend service
Technologies: Ruby 2.5, Ruby on Rails 5.2, PostgreSQL 11, GitHub GraphQL API, Circle CI, Heroku, Sentry, New Relic
Skills: Mentoring · Web Applications
Consulting at John Lewis, working on rebuilding a critical component of the online e-commerce platform.
• Designed (with the team) an architecture that supports safe migration to the new application
• Helped upskill employees on Docker, Kubernetes, and Continuous Integration using GitLab CI
• Configured K8s manifests for our microservices
• Configured a GitOps CI pipeline for safely applying K8s configuration to different environments
• Created a template for teams wishing to use this pipeline with Ktor on the John Lewis Digital Platform
Technologies: Kotlin 1.3, Ktor 1.2, GitLab CI, Kubernetes, Kustomize, Google Cloud Platform
Skills: Solution Architecture · Mentoring · Web Applications
A short contract where I helped the Channels team become more productive.
• Created guidelines for producing SDK feature specifications
• Highlighted risky points in the infrastructure and pointed out some vulnerabilities in the app
• Created a Librato dashboard to visualise the impact of an issue on our customers
• Made suggestions for improving the development process
• Programmed a report that shows dormant GitHub repositories, as well as the combined backlog for different teams
• Pair-programmed with more junior developers to help them improve their skills
• Raised the bar for code review quality
• Provided exemplary customer support, winning new customers as a result
Main Technologies: Ruby, Ruby on Rails, AWS, and Terraform
A 6-months contract to build an AWS application to convert daily newspaper-published content from The Guardian's Open Platform API to the News Industry Text Format, to be consumed by Amazon's Kindle Publishing for Periodicals.
• Reverse-engineered an old Perl application
• Designed an extensible, reusable core for generating Kindle NITF publications in Scala
• Implemented a serverless application using The Guardian’s Content API and AccuWeather API
Main Technologies: Scala 2.12, AWS S3, AWS Lambda, AWS CloudWatch, AWS CloudFormation, XML, XSD, TeamCity
Leading a dynamic team of 4 to 8 developers supporting several critical projects. Acting as both a team leader and a technical expert.
• Led the team through the successful launch and production support of 15 applications
• Helped with design, code review, algorithm development, and performance improvement for our apps
• Continually worked on improving team process, resulting in better team productivity
• Protected the team’s learning time, leading to more innovation and introducing new tools
• Improved our development workflow, achieving more visibility, better metrics, and less rework
• Designed and developed an end-to-end Continuous Integration (CI) pipeline with GitOps-inspired configuration
• Devised processes for reducing technical debt
• Improved cross-team collaboration, resulting in more knowledge sharing and idea pollination
• Improved out-of-hours support processes, leading to more satisfaction and effectiveness
• Provided support during production incidents, minimising risk and maximising learnings
Main Technologies: Scala, Akka, Play, Cassandra, PostgreSQL, Docker, CoreOS, ELK, GitLab CI
Skills: Process Improvement · Team Leadership · Continuous Integration · Mentoring · Scala · Performance Tuning
Leading a team of senior and junior developers to build a highly scalable web application. Responsible for technical architecture and mentoring, in addition to managing the startup's finances, recruitment, and sales.
Main technologies: Scala, Ruby on Rails, Python, AngularJS, Backbone.js, OpenERP
Skills: Team Leadership · Software as a Service (SaaS) · Process Improvement · Mentoring · Web Applications · Performance Tuning · ERP
Developing a geographic social platform, and teaching Ruby on Rails.
• Designing and developing the web application using Ruby on Rails
• Participating in architecture design
• Leading a team of 3 developers
• Participating in business development, requirements analysis, anticipating user behaviour, and various typical activities for a small startup.
• Developing a web application using Ruby on Rails
• Designing a MongoDB database
• Presenting on-job Ruby on Rails training
Developing server and mobile applications on various platforms.
• Developing websites using C# and ASP.NET MVC.
• Developing HTML5 applications.
• Developing mobile applications on Windows Phone 7, BlackBerry, Symbian^3 and J2ME.
Main Technologies: ASP.NET, C#, C++, HTML5, JavaScript, Java, Orchard, Qt and Silverlight
Working on a project for Ricall Ltd.
• Responsible for analysis, design and implementation of the project.
• Leading a team of developers to finish the project's first release.
Main Technologies: Java EE 5, JBoss Seam, JPA, JSF, Hibernate, RichFaces, JBoss AS and MySQL.
Participating in multiple projects.
• Formally training other developers on database and Java technologies
• Developing BiDi, RTL and Arabic support for the ReportLab Toolkit
• Participating in the Software Process Improvement team
• Developing Java EE 5 applications using JBoss Seam 2.2
• Developing OpenERP (http://openerp.com) modules
• Mentoring other developers
Main Technologies: Java EE, JBoss Seam, Python, OpenERP
Developing applications to process large amounts of stock data, both online (real-time) and offline. Responsible for design, implementation and testing. Developing new applications and optimising and rewriting existing applications to be more efficient in speed and memory consumption using C# 2.0/3.0 and MATLAB R2007a-R2008b.
I wrote MATLAB applications that were 5 to 10 times faster than their equivalents while consuming 1 to 0.7 times memory. When memory was at a premium, I designed an algorithm to consume 1/4 to 1/8 of the memory consumption of an older algorithm, and the new algorithm was still faster. My last project processed a certain amount of input in 10-13 seconds, while another competing application processed the same input in 3 minutes.
Main Technologies: MATLAB, C# / .NET
Software Developer in the Data Warehouse department. My responsibilities included:
• Creating and maintaining reports over a tera-byte sized Oracle database
• Administration of Business Objects repository
• Development of applications to support the data warehouse.
• Development of an application to interact with external entities through web services.
Main Technologies: Oracle Database, BusinessObjects, BSCS, Java, JAXB, JAX-WS and JBoss Application Server.
Teaching courses every Summer and Winter vacation since the end of my freshman year in college.
• Teaching C++, OOP, Data Structures and Algorithms, and some Java.
• Supervising student groups on projects.
• Leading coordination of courses and student experience-related activities in two communities in college.
Main Technologies: C++, Object-Oriented Programming, Data Structures, Algorithms.
Developing web applications and internal tools.
• Reverse- and Re-engineering old projects.
• Debugging and fixing legacy code.
• Code synchronization and merging of different code bases.
• Administration of a CVS server.
• Installing, managing, and administering BusinessObjects XI R2 servers.
• Designing and developing BusinessObjects Universes and WebIntelligence reports.
• Designing and developing the integration between Java web applications and WebIntelligence reports.
Main Technologies: Java SE, Java EE, Apache Struts, BusinessObjects, Oracle Database, WebSphere Application Server and CVS.
Grade: Excellent with Honour Degree Activities and societies: CS-Math courses, ACM ICPC contests, Charity communities Active student, organizing many activities, including courses for younger students, contests for my class, and being a representative of the Computer Science department. • Graduation project mark: 200/200 • 1st position, ACM-ICPC ANARC 2003-2004 contest (https://acmacpc.org/) • World Finalist, Egypt Representative, ACM-ICPC 2003-2004 contest (https://icpc.baylor.edu/) Finished Pre-Masters in 2007 with a grade of Very Good