Software Engineer
2021 - PRESENTGoogle- Migrated an app from LitElement to React with newer functionalities and better UX, which increased user engagement and satisfaction.
- Designed a system to communicate securely between an internal and an open source system, enabling us to open our tool for internal and external users.
- Introduced a process and a guide for our teams on how to use React effectively, which increased developer productivity by 40%.
Technologies: Go, Python, React, Redux, HTML5, gRPC, Design, UX Design, SaaS, Open Source, Git, React Redux, TypeScript, Architecture, System Design, REST, System Architecture, Material Design, REST APIs, Back-end, JavaScript, Full-stack, CI/CD Pipelines, Admin Panels, Analytics, Web Development, Websites, MUI (Material UI), Front-end, Decision Trees, GraphQL, AWS Amplify, SQL, Firebase, APIs, JavaScript MVC, Puppeteer, NoSQL, WSDL, Jira Administration, Integration, Systems Analysis, Front-end Development, Unit Testing, Cypress, Webpack, Content Management Systems (CMS), Tailwind CSS, System Integration, API Integration, UI Libraries, UI Components, Component Libraries, Front-end ArchitectureSoftware Engineer
2011 - PRESENTFreelance- Designed architectures for complete software solutions with stability and scalability in mind.
- Built a financial portal application and its administration panel using Laravel 5 framework and PHP 5.6 to simplify data entry.
- Created a front-end application for the financial portal using Laravel 5 React, which increased the app's speed and ease of use.
- Developed a tourism company website and its administration panel using plain PHP and MySQL.
- Assisted in the development of a college student management portal application using Java.
- Managed multiple Linux servers for multiple users and companies, providing support for failures and handling upgrades and maintenance.
- Wrote a cheat sheet for the ThymeLeaf templating engine and posted it on GitHub, which attracted 37 starts and aided other engineers in using it for development.
- Developed a Laravel 7 and Vue restaurant booking application.
- Developed and maintained a Discord bot administration panel entirely built in Laravel and React.
Technologies: Java, MongoDB, MySQL, HTML5, CSS3, React, Laravel, PHP, APIs, Redis, WebSockets, Node.js, Git, Vuex, Vue, Architecture, System Design, REST, System Architecture, LAMP, Apache, REST APIs, Auth0, Stripe, Back-end, JavaScript, Full-stack, CI/CD Pipelines, Amazon EC2, Payment APIs, Admin Panels, Dashboards, Amazon S3 (AWS S3), Web Development, Websites, Next.js, Front-end, AWS Lambda, SQL, Java 8, JavaScript MVC, DigitalOcean, Puppeteer, NoSQL, Integration, Front-end Development, Unit Testing, Webpack, Content Management Systems (CMS), Tailwind CSS, API Integration, UI Libraries, UI Components, Component Libraries, Front-end Architecture, Stripe API, Web SecurityConsultant for a Jira Service Desk API Integration
2022 - 2022FLYR, Inc.- Developed an Atlassian app that integrates with intercom and NativeForms, providing better integration with Jira Service Desk that maps the fields of NativeForms correctly with Jira Service Desk fields and replies to intercom conversations.
- Customized a Jira Service Desk project to support multiple organizations and work better with the Atlassian app that I created.
- Wrote extensive documentation about how to use the integration and in-depth technical guides on extending the app and adding more features.
Technologies: Jira REST API, REST APIs, Intercom, Auth0, Jira, TypeScript, APIs, Node.js, Amazon EC2, Web Development, Websites, Front-end, SQL, JavaScript MVC, DigitalOcean, Jira Administration, Integration, Front-end Development, Unit Testing, Cypress, UI Components, Component Libraries, Front-end ArchitectureJava Software Engineer
2018 - 2021Atlassian- Designed an endpoint to enable our third-party app providers to perform bulk operations, which took into account concurrent tasks and deadlocks among the resources and reduced the time it took to perform batch actions by 60%.
- Migrated an app from old JavaScript code and a tightly coupled architecture to a new app using React to be locally tested and developed, which reduced our development loop and helped ship features quickly and reliably.
- Laid out the architecture for communication between a monolith and a microservice to predict the required data by the monolith request, which reduced the latency from one second to nearly 200 milli-seconds, drastically improving the user experience.
- Integrated a React front-end application with a larger front-end React project, migrated the architecture to reflect the new requirements, and put our team's plan on track with the broader company vision.
Technologies: Amazon Web Services (AWS), Elasticsearch, Jest, Redux, React, JavaScript, Java, SaaS, Git, Docker, React Redux, PostgreSQL, TypeScript, Architecture, System Design, REST, System Architecture, Jira REST API, REST APIs, Jira, Back-end, Full-stack, CI/CD Pipelines, Express.js, Amazon EC2, Dashboards, Amazon S3 (AWS S3), Web Development, Websites, Front-end, AWS Lambda, GraphQL, AWS Amplify, Amazon Cognito, SQL, Firebase, APIs, Java 8, JavaScript MVC, NoSQL, Jira Administration, Integration, Systems Analysis, Front-end Development, Unit Testing, Cypress, Webpack, System Integration, API Integration, UI Libraries, UI Components, Component Libraries, Front-end ArchitectureJava Software Engineer
2016 - 2018Rakuten- Wrote development specifications for other developers that reflect the details of tasks to be done, which would make their work easier, well defined, and understood.
- Added a new ticket type and booking flow system to a legacy air-ticket booking system, which gave users access to various new tickets and increased revenue by one million yen per month.
- Enhanced the security of our web service surfing by enabling secure HTTPS access throughout our entire web app, which gave users a safer and more reliable experience.
- Designed an architecture for a microservice-based system that resembles in its functionality a legacy system and used the latest tools and design methodologies to achieve the desired output.
- Laid out the communication and data flow design of an event-based system for a ticket booking platform. This reduced the user's waiting time and gave them a faster experience without having to be blocked by their waiting requests.
- Developed REST-based APIs and designed their model to enable ease of access and protection of our data from malicious users, which facilitated the communication between all the system APIs and led to a more stable system.
Technologies: Spring Boot, Oracle, JavaServer Pages (JSP), Apache Struts, Hibernate, Spring, Java, SaaS, Git, Oracle RDBMS, Docker, React Redux, TypeScript, Architecture, System Design, REST, System Architecture, REST APIs, Back-end, Full-stack, CI/CD Pipelines, Amazon EC2, Dashboards, Amazon S3 (AWS S3), Chart.js, Web Development, AWS Lambda, GraphQL, AWS Amplify, Amazon Cognito, SQL, Firebase, Java 8, JavaScript MVC, NoSQL, Systems Analysis, Front-end Development, Search Engine Optimization (SEO), Unit Testing, Cypress, Webpack, System Integration, API Integration, UI Libraries, UI Components, Component Libraries, Front-end ArchitectureJava Software Architect
2016 - 2016Aurea Software- Broke down the architecture of a monolithic mailing system into small microservices. This increased the scalability and reliability of our system.
- Maximized the efficiency of our usage of AWS to fully utilize Amazon's services and cloud tools, such as Load Balancing and Autoscaling, which reduced the cost of cloud hosting by a great margin.
- Enabled automatic scaling of the database by moving it from a traditional MySQL to a cloud-managed service, which increased the reliability and stability of our databases, and enabled us to work under a heavy load and scale accordingly.
- Unified the model and architecture of the database across all of our database servers. This made the database more consistent and predictable as well as increased its scalability.
- Developed a sidecar app that provided us with custom automatic scaling metrics and alarms, which greatly enhanced our resource utilization and reduced our running costs by 40%.
Technologies: Amazon DynamoDB, Oracle Database, PHP, Amazon Web Services (AWS), Hibernate, Spring, Java, SaaS, Git, Architecture, System Design, REST, System Architecture, LAMP, Back-end, Full-stack, CI/CD Pipelines, Amazon EC2, Chart.js, Web Development, SQL, Firebase, Java 8, JavaScript MVC, NoSQL, WSDL, Systems Analysis, Front-end Development, Search Engine Optimization (SEO), Unit Testing, Webpack, Content Management Systems (CMS), System Integration, API Integration, UI Components, Component Libraries, Front-end Architecture, Stripe APISenior Java Developer
2014 - 2016Future Group- Developed back-end modules using JSF 2 for a translation management system, creating and designing a very complex document parsing algorithms and event-driven modules, which would then enable users to upload and translate their documents promptly.
- Created a web-based rich text editor using JavaScript and HTML5. This tool was used as a translation editor for translators and, being a web-based app, made its platform independent and easily accessible.
- Implemented a WebSockets asynchronous event-based notifications system to enable our users to get their tasks as soon as they arrive, which increased their efficiency and time utilization.
- Reverse-engineered a modern translation tools match scoring system, which is how they calculate their matches and scores.
- Trained a machine learning model to recognize translation with specific criteria. This greatly increased the translators' efficiency and accuracy, reduced their error rate, and enabled them to share their knowledge.
Technologies: Ember.js, Hibernate, MongoDB, MySQL, Spring MVC, Java, SaaS, Git, Architecture, System Design, REST, System Architecture, JSF, Apache, Back-end, Full-stack, Java 8, JavaScript MVC, NoSQL, WSDL, Webpack, UI Libraries, UI Components, Component LibrariesSoftware Engineer
2013 - 2014Mubasher, Int.- Built a tool that scrapes the web for files, notifies the team of updates, and then downloads the files and sends them across using WebSockets. This increased this efficiency and eliminated the time wasted on searching for their files.
- Implemented software to unify the personal profile bios of our people of interest. It also generated a unified form of a company's business description by mining our data to generate them, which increased their consistency and accuracy.
- Created a semantic search tool that would enable users to search for information on our website using natural language, which enhanced the user experience and increased the visibility of our newly added features and sections.
- Developed a web scrapper system that scrapes certain websites and collects their data, then pushes them to our database via a RESTful API, eliminating the time wasted manually scrapping this information and storing them in our databases.
- Built a tool that pushes notifications of any newly added news items to the news editors who review it before publication. This reduced the error rate and prevented misinformation from being published.
Technologies: Oracle Database, WebSockets, Spring MVC, Spring, Java, SaaS, Git, Architecture, System Design, REST, System Architecture, JSF, Apache, Web Scraping, NoSQL, WSDL, UI Libraries, UI Components, Component LibrariesJunior Software Engineer
2012 - 2013FerryCode- Migrated a Jakarta EE 5 application to Jakarta EE 6, upgrading components developed in JSF 1.2 to PrimeFaces and a JSF 2.0 component.
- Developed an HTML5 news page drawing tool that draws a mock of the newspaper pages before they're published, giving a more robust look and catching errors before publishing.
- Handled on-site deployments at clients' servers and fixed issues and failures that happened during runtime.
Technologies: MySQL, Enterprise Java Beans (EJB), Java EE, Java, SaaS, Git, Architecture, REST, System Architecture, JSF, Apache, WSDL, Component Libraries