
I am a results-oriented and innovative senior software engineer who enjoys easily communicating complex technical requirements to non-technical stakeholders, with an excellent leadership record of leading and contributing to development teams in enterprise-wide development projects; having facilitated the development of profitable web applications, and being eager to apply comprehensive software engineering and maintenance expertise in creating scalable and performant software that contributes massively to organizations bottom line.
So far in my career as a Software developer, I have focused on developing scalable and well-documented codebases. I enjoy working collaboratively as well as being independent. I am excited about joining a product driven company as I am extensively committed to creating possibilities that are beyond normal. I am always eager to seeing each new day as a Software engineer because there is always something new to learn or improve on.
Product development lifecycles, design reviews, and management
Writing of idiomatic Go code using the language concurrency primitives (goroutines and channels), using the factory design pattern, conversant with most of web frameworks such as Gin, Mux, httprouter and echo
Conversant with writing test using testify package, applying dependency injection to easily create separation of concerns to separate business logic to be independent of other external application dependency by using hexagonal architecture in Golang
Familiar with common patterns for writing concurrent code in Golang eg for-select pattern, integrating both SQL database such as MySQL, PostgreSQL, MariaDB and NoSQL such as Redis and MongoDB at scale
Software best practices, architecture, design patterns, development, testing, deployment, and maintenance
Effective Communication and a determination to write clean, maintainable, and efficient code
Backend web developer with experience in microservices and monolith architectures on the backend
Experienced in applying Data Structures and Algorithms to solving problems and optimizing solutions for the best Big-O, Omega, and Theta Notation and time complexity possible thereby improving software performance
Full understanding of the Software Engineering and SDLC paradigms and principles