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.
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
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.