Intro

With over 6 years of experience in the development of high-performing applications for financial services platforms, I specialize in creating robust solutions that enhance user experience and optimize operational efficiency. My expertise spans Java programming, web services development, and the implementation of comprehensive testing and troubleshooting procedures.

As a committed professional, I focus on ensuring quality and reliability in every project, working effectively both independently and as part of a team. My technical skills are complemented by a strong analytical approach and a deep understanding of object-oriented programming, design patterns, and data structures. I am proficient in multiple languages and frameworks including Java, JavaScript (React), HTML5, CSS3, Spring, Hibernate, and more, with a solid background in various databases and server technologies.

Currently, I am enhancing my qualifications with a Master's Degree in Computer Science through distance education, while being fully available for full-time, W-2 employment. Please explore my portfolio to see detailed examples of my work and the technologies I use.

Work

I currently work as an Application Developer developing custom web and integration applications to meet complex business requirements. Some of my tasks include but are not limited to:

  • I develop solutions using Oracle Middleware / WebLogic / SOA to integrate and move information between major business systems and applications.
  • Developed complex SQL queries, crafted and executed SQL statements to interact with Oracle’s Customer Care and Billing (CC&B).
  • Employed SQL queries to retrieve and manipulate data, supporting dynamic content generation in web applications.
  • Utilized JSF, PrimeFaces and Java to build, enhance and maintain robust web applications managed on Oracle’s WebLogic servers.
  • Participated in a coordinated team strategy for the migration of production servers to Oracle Cloud, adapted variable configurations and created automation scripts to streamline deployment processes for development and UAT environments.
  • Developed and maintained technical design documents, deployments scripts, and other documentation related to development work.
  • Worked with the business support team through user acceptance testing, change management, and code release standard procedures.
  • Provided off-hours support and incident response for critical business applications and systems.
  • Worked with vendors and support teams to open and resolve Support Issues.

About

About Image

Skilled applications development professional with 6+ years of experience delivering high-performing applications for financial services platforms. Ensure quality deliverables through Java programming, testing, and troubleshooting errors to ensure top user experience. Work effectively independently and within team environments, applying strong combination of technical and analytical strengths.

Skills

  • Languages: Java
  • Web: JavaScript, HTML5, CSS3, Servlets, XML, Ajax
  • Web Services: Rest, Microservices
  • Web/App Servers: Apache/Tomcat
  • Frameworks: Spring (MVC, Boot, Security, Data, AOP, Dependency Injection), Hibernate, React, Node
  • Databases: MS SQL, MySQL, Oracle
  • Design Patterns: MVC, Singleton, Prototype, Session, Session Factory, Observer, Template, Prototype, Abstract Factory
  • SDLC: Waterfall, TDD, Agile/SCRUM
  • Tools: IntelliJ, Eclipse, Git, Jira, SOA

Education

Master of Science in Computer Science (In progress via distance education; expected October 2024)
Maharishi International University – Fairfield, Iowa
Key Courses: Fundamentals of Programming Practices, Modern Programming Practices, Web Programming, Web Application Architecture, Enterprise Architecture, Algorithms

Bachelor of Science in Computer Science
Makerere University, Kampala, Uganda (2015)
Key Courses: Programming Methodology 1 & 2, Software Engineering, Data Structures & Algorithms, Operating Systems, Systems Programming

Blog

About Image

Why Serverless Computing?

While delving into Amazon Web Services (AWS) offerings, I stumbled upon a term that piqued my curiosity—serverless computing. It's a term that prompts the question, "Why serverless?" Let’s explore this concept, from its foundational ideas to its current state and implications.

Understanding Serverless Computing

Serverless computing is a cloud computing execution model where the cloud provider manages the machine resources on-demand. This management approach eliminates the need for developers to concern themselves with server capacity planning, configuration, and maintenance. According to Wikipedia, serverless computing means the cloud provider takes care of the servers, ensuring capacity planning, management, maintenance, fault tolerance, and scaling of containers, VMs, or physical servers are seamlessly handled. Learn more on Wikipedia.

The Pre-Serverless Era

Before the advent of serverless computing, developers and companies had to engage in extensive capacity planning and scalability considerations. Managing physical servers or virtual machines meant preparing for peak traffic times, which involved intricate calculations and sometimes costly investments in infrastructure that might not be used continuously. Scaling these systems required manual intervention to add or remove resources based on demand.

Transition to Serverless

With serverless computing, these concerns are largely obsolete. The cloud provider dynamically allocates resources, making it an ideal solution for varying loads. This shift means that the focus can now purely be on coding and improving the application without worrying about underlying infrastructure.

Advantages of Serverless Computing

Serverless computing offers several advantages:

  • Cost Efficiency: You only pay for the resources you use. There is no need to pay for idle computing resources.
  • Scalability: Applications can automatically scale based on the demand. Whether it’s scaling up during peak times or scaling down during low usage periods, serverless handles these adjustments automatically.
  • Maintenance and Updates: The cloud provider manages all the servers, including regular updates and security patches, reducing the risk of vulnerabilities.
  • Faster Time to Market: Developers can deploy applications faster since they do not need to set up and configure servers.

Serverless Offerings: Focusing on AWS

AWS is at the forefront of serverless computing with services like AWS Lambda, which allows developers to run code for virtually any type of application or backend service with zero administration. AWS Lambda executes the code only when needed and scales automatically, from a few requests per day to thousands per second. More details can be found on the AWS serverless page.

Application Integration and Event-Driven Architecture

AWS supports robust application integration options for serverless computing. AWS Lambda can be triggered by various AWS services like S3 (for storage), DynamoDB (for database changes), and SNS (for notifications). This event-driven architecture ensures that applications respond swiftly to changes and conditions in the environment.

Conclusion

Serverless computing represents a significant paradigm shift in how applications are developed, deployed, and scaled. AWS offers one of the most mature and feature-rich environments to implement serverless architecture, allowing developers to focus more on their core product and less on the operational overhead. As technology evolves, server, and serverless computing will continue to transform industries by offering more scalable, cost-effective, and robust solutions.

By understanding the concept of serverless computing, its evolution, and its benefits, businesses and developers can better leverage this technology to optimize their operations and focus on innovation.

Contact