Ferry Suhandri

Software Development Engineer III
Crafting code, shaping solutions

About Me

Ferry

I'm a Software Engineer who thrives on crafting elegant, efficient solutions. With expertise in Java, Spring Boot, Hibernate, SQL, and OOP, I transform complex code into clean, maintainable art. Unit testing? Absolutely, I believe in bulletproofing code to keep it reliable. I’m constantly learning and researching to stay ahead of the curve. My passion? Taking tangled codebases and refactoring them with design patterns and any principles that fits, ensuring they’re as readable as your favorite book and as maintainable as a fine-tuned machine. If it’s about making code better, I'm all in!

Skills

👨‍💻 Programming

I primarily work with Java in my projects, but I also have experience with JavaScript/TypeScript. To me, programming languages or frameworks are tools; I'm always open and eager to learn and master new ones as needed.

📚 Learning

Driven by curiosity and a passion for innovation, I constantly seek opportunities to expand my knowledge and apply cutting-edge solutions to improve software development. This proactive approach ensures I stay ahead of trends and contribute valuable insights to any team.

🧪 Unit Testing

Skilled in writing thorough unit tests using JUnit and Mockito, I prioritize ensuring code reliability and maintainability. My focus on testing drives higher quality, reduces bugs, and ensures that code performs as expected, ultimately contributing to more stable and efficient software.

🛠️ Design Patterns

With extensive experience in applying effective design patterns, I ensure that code remains clean, scalable, and easy to maintain. By leveraging proven architectural principles, I create solutions that stand the test of time and facilitate smooth, long-term project growth.

🌍 English

I have good business-level English proficiency, ensuring effective collaboration and clear, concise documentation. This ability helps bridge technical and non-technical discussions, promoting smooth workflows and successful project outcomes.

🔍 Detail-Oriented

My meticulous attention to detail ensures that every aspect of a project, from initial design to final testing, adheres to the highest quality standards. I consistently refine and optimize each element, ensuring flawless execution and delivering exceptional results that exceed expectations.

Projects & Experiences

PT. Advotics Teknologi Global - Delivery Platform

Jul 2023 - present

Developed a robust Delivery Platform designed to optimize routing for multiple deliveries, effectively addressing complex challenges solving Traveling Salesman Problems in Fleet Management through the use of WebFlux. Enhanced the system with dynamic Route Management powered by AWS Lambda and streamlined Delivery Trip modules to ensure efficient logistics operations and scalability. The platform significantly improved delivery efficiency, reduced operational costs, and facilitated seamless fleet coordination.

PT. Advotics Teknologi Global - KPI Platform

Jun 2022 - Jun 2023

Created a comprehensive KPI calculator module for Sales, designed to accurately track and evaluate performance metrics. Developed an accompanying library to simplify implementation and accelerate future development processes, ensuring consistent functionality and reducing development overhead. This solution enhanced data accuracy, streamlined reporting, and provided developers with reusable, modular tools for efficient integration into various projects.

PT. Advotics Teknologi Global - Business Transaction Platform

Sep 2019 - Present

Developed the backbone of supply chain applications, including critical modules for Ordering, Invoice, Product Return, and Inventory management. Leveraged Spring Boot and Hibernate to build scalable and efficient systems, while implementing Clean Architecture principles to ensure maintainability, modularity, and clarity. These enhancements streamlined operations, improved data accuracy, and facilitated seamless integration across the supply chain ecosystem.

PT. Pradipta Jatis Indonesia - Permodalan Nasional Madani Investment Management

May 2019 - Aug 2019

Faced with a tight deadline to develop a Mutual Funds app for Permodalan Nasional Madani Investasi Management, I collaborated with the team despite none of us having prior experience with Groovy or Grails. We embraced the challenge by learning Groovy and Grails on the go while actively developing the application. Despite the steep learning curve, we successfully launched the app, delivering it on time and meeting the project’s requirements.

PT. Pradipta Jatis Indonesia - Alfacart Back Office

Dec 2018 - Apr 2019

Deployed to replace a colleague at Alfacart, I was tasked with improving their back office apps as a full-stack solution, utilizing Java for backend processes and vanilla JavaScript for the frontend interface. One challenge involved implementing a discount period feature that couldn’t overlap. Upon reviewing the database, I discovered PostgreSQL’s "overlap" keyword, which allowed me to simplify the logic significantly. By leveraging this feature, I eliminated the need for complex manual checks, resulting in a cleaner and more efficient query for handling overlapping discount periods.

PT. Pradipta Jatis Indonesia - Ultra Voucher

Oct 2018 - Nov 2018

Assigned to assist Ultra Voucher, a newly formed startup, I worked with Java, Spring, and MyBatis to implement a feature that allowed customers to make multiple payments for a single product. This feature enabled customers to divide their payments across multiple payment accounts, offering greater flexibility and convenience. I successfully delivered the solution on time, enhancing the user experience and streamlining the payment process for the platform.

PT. Pradipta Jatis Indonesia - Novo Nordisk Indonesia

Jun 2018 - Sep 2018

Designed and developed a web service API for Novo Nordisk's sales dashboard and analytics platform, enabling data visualization and insights. The API streamlined data processing, and enhanced reporting accuracy. Despite some significant adjustments on-the-go, we swiftly adapted by modifying the code and database, ensuring that the solution met the updated needs

PT. Pradipta Jatis Indonesia - Betterway

Jan 2018 - May 2018

For our client Betterway from the Philippines, I collaborated with my team to develop a mobile e-commerce app within a 5-month timeline. Despite the challenges, we maintained a strong focus on quality and functionality throughout the development process. The project culminated in a successful product launch, with the app going live as planned.

PT. Indivara Sejahtera Sukses Makmur - Java Development Trainee

Aug 2017 - Dec 2017

Completed intensive training in both soft and hard skills, with a focus on Java, its frameworks, basic JavaScript, and the latest technologies, ranging from basic to advanced levels. I also undertook on-the-job training as a graduate programmer. During this time, I deepened my understanding of Design Patterns and advanced my knowledge of various coding principles.

Impactful Works

Refactoring Legacy Code to Clean Structure

Faced with a legacy codebase that was challenging to develop and maintain, I took the initiative to refactor it into a clean, modular structure. By implementing centralized exception handling, request validation, programming to interfaces, and dependency injection, I transformed the code into a more maintainable and readable state. This resulted in enhanced development efficiency and improved code quality across the system.

Resolving Concurrency Issues

Encountered data anomalies due to concurrency problems like Lost Updates and Write Skew. To address this, I introduced optimized solutions such as strategic locking mechanisms and improved transaction isolation levels. These efforts successfully eliminated the anomalies, ensuring data consistency and reliability throughout the system.

Customizable Client Behaviors with Design Patterns

Faced with the challenge of diverse client behavior requirements, I implemented design patterns such as Strategy, Command, and Factory Method. This solution provided each client with the flexibility to choose and utilize their desired behavior seamlessly.

Optimizing Pagination for Faster Load Times

To address slow load times with numeric pagination, I revamped the filtering strategy to focus on date-based filters and implemented a "load more" pagination approach. This significantly reduced page load times and improved the overall user experience.

Enhancing Transaction Management with Custom Annotation

Legacy code lacked Spring Data JPA, making atomic transactions more complex than using the simple @Transactional annotation. I developed a custom transactional annotation using AOP, enabling centralized management of atomicity using ThreadLocal, isolation, and retryable transactions in the event of failures, replicating the behavior of Spring’s built-in transaction management.

Simplifying Unit Testing with Dependency Injection

Some parts of the code were difficult to test due to hidden dependencies. I refactored the code to use dependency injection, making it easier to mock dependencies in unit tests and improving testability and maintainability.

Automating Query Logging for QA with AOP

To streamline the testing process for the QA team, I developed an AOP-based solution that intercepts query generation outside of business logic and sends the query logs directly to their email. This approach enables QA to access the generated queries independently, without needing developer intervention.

Revolutionizing PDF Creation for Clarity and Ease

Faced with a difficult-to-read PDF creator using OOP style, I migrated the system to an HTML-based solution. This transition simplified the process, allowing future PDF creation tasks to be handled easily by designing layouts with HTML and CSS, just like a webpage, ensuring clarity and flexibility in design.

Personality Traits

ISTJ (Myers-Briggs)

Methodical, detail-oriented, and precise, I approach problems with logical and structured solutions.

Type 5 (Enneagram)

A thinker and learner, I thrive on acquiring knowledge, diving deep into complex topics to understand and innovate.

Conscientious (DiSC)

Analytical and focused, I prioritize efficiency and clarity, delivering solutions that are effective and sustainable.

Big Five

Openness: 37%, Conscientiousness: 81%, Extraversion: 3%, Agreeableness: 3%, Neuroticism: 57%. A balance of thoughtfulness, diligence, and introspection.

;

Contact Me

Feel free to reach out to me through any of the following channels:

© 2024 Ferry Suhandri | Crafted with passion and precision