My software engineering journey has involved building and working on numerous monolithic systems. I've tackled scalability problems head-on, leading to varying increments towards microservice architectures.
Recognizing that real-world opportunities to work extensively with microservices are rare and highly sought after, I decided to take the initiative. I am currently developing a comprehensive platform, architected entirely around containerized microservices and orchestrated with Kubernetes.
Why should you consider me for your team?
You need engineers who understand how to build loosely coupled modular services and deploy them independently. Not only that, microservice architectures are complex, and your teams benefit from those who put in the work to be familiar with the environment they're working in.
Teams who own the entire build-test-deploy-maintain lifecycle of their services are typically the most successful teams. To this end, it's important for teams to understand, for example, the interplay of services and challenges with data consistency. This is what I can contribute to.
Reaching the limits of vertical scaling almost feels like a right of passage to me. The natural progression from here is to distribute services and eliminate unnecessary work, whether through caching or reworking your data pipeline.
But the ultimate prize? Breaking your work into smaller, independently scalable pieces. This is what drives me towards microservices in the first place - I'm fanatical about scalability.
Let's be clear that monolithic systems aren't inherently bad. The use cases matter. This is where costs and benefits are weighed and critical decisions are made.
When the clear advantage is scalability, have I mentioned scalability is my passion? I can dig in and deductively profile an application to identify bottlenecks and decompose functionality. This approach can lead to immediate optimizations to reduce overhead, as well as discussions to strategically extract the functionality into microservices.
Journee is a travel journal platform that aims to make tracking and reflecting on your journeys easy and fun. As the sole developer of this project, I have designed a comprehensive and adaptable platform underpinned by a microservice architecture.
More than just a tool for travelers, Journee stands as a concrete demonstration of my skills in architecting and managing complex platforms, especially in the realm of microservices – an area where I've had limited real-world opportunities to delve into extensively.
This project serves as a testament to my capability to navigate and implement sophisticated solutions, and show my dedication to continual learning and improvement.
These are the technologies in use, or planned:
Containerization and Orchestration: Kubernetes, Docker, and Helm
API Gateway: Emissary-ingress
Backend: Java with Spring Boot, Node.js with Express, PostgreSQL, and MongoDB
Frontend: Vue.js and Tailwind CSS
Development: Git, Maven, JUnit, Yarn, and Jest
The functional target for a minimum viable product consists of:
As an experienced full stack software engineer, my career has been driven by a focus on entrepreneurial pursuits, which has transformed into a passion for solving problems.
My story is a story of overcoming limitations.
When I was 13 I took it upon myself to learn to make money. I come from a poor family, we lived in a wealthy nation yet fell through the cracks of its support system.
At the time I didn’t recognize how fortunate I was to have access to a computer and the internet. It was the world as I knew it. People were making money online, and I was determined to take part.
I started exploring web development by comparing and trying out various graphical editors. They all had major drawbacks, and I realized that I would be very limited by them.
Before long I reached the conclusion that I needed to write the code myself. I spent an afternoon learning HTML, and another learning CSS.
These skills carried me for a while, but I was still limited. I couldn’t create dynamic content. I needed to learn to program. When I was 15, I met a mentor through one of the various online communities I was a part of.
My mentor taught me to program, starting me on the path of full stack development. Beginning in 2011, we worked together on various projects and entrepreneurial pursuits, which led to a significant amount of ad revenue.
When I was 17, the skills I learned also helped me gain my first professional experience through a small contract with a local cafe.
Getting paid monthly with ad revenue was a high point. Unfortunately it wouldn’t last.
Facing dwindling revenues and numerous rejections for a full time development position due to my self-taught background, I broadened my search, and accepted a tech support role at a web hosting company in 2015.
While this was a setback, I quickly advanced to a specialized team. I used the opportunity to sharpen my Linux skills. On my own time, I focused on improving my programming capabilities and learning modern web development practices of that period.
It paid off. From 2016 to 2018, I worked on various contracts doing freelance web development and software engineering projects. My highest profile contracts were for Horizon Realty Advisors and Apsure. I worked with well known frameworks to develop tools to assist employee productivity and improve site engagement.
In 2018, I co-founded BeGeeked Labs to support a variety of web projects. The most important being a 3rd party community discovery platform called Discord Me.
As CTO of this startup, I wore many hats involving team collaboration and software engineering. We contracted several developers, and I led the way in organizing how we communicated with each other and divided up work.
These next couple of years involved a lot of hands-on work. Under my direction at BeGeeked Labs, we built several exploratory applications, a platform to take payments. Of course, we also endlessly refined Discord Me as it continuously gained popularity and challenged what we knew about scalability.
Around the beginning of 2020, after many discussions, it became clear that my business partner and I had different visions for the future of the company. We decided that I would depart, but would remain on the board and serve as an advisor.
My departure and search for a new position coincided with the beginning of the pandemic. As we know, the complexities of this time period involved rapidly shifting demand and working conditions. In 2020, I worked for a small startup focused on real estate appraisals, and in 2021, I moved on to a midsized company that played a major role in helping small businesses get pandemic relief funds.
Through these experiences, among other things, I’d implemented a CI/CD flow, replaced an unstable customer acquisition flow, fixed major data security issues, implemented service monitoring, and improved test coverage.
At the end of 2021, I focused my efforts on securing a job in the Netherlands, and started with a health IT company at the beginning of 2022. In this role, I support a legacy application and develop new features within a microservice environment.
I’ve discovered a passion for building software to perform at high scale. I’m actively seeking opportunities to do so.
The recent software development experiences I’ve been describing have been tremendously valuable, but I understand they’re private, i.e. the work is owned by their respective companies and happened behind closed doors.
This is why I’m building Journee, an open source travel journal platform, where I can demonstrate I know my way around modern, high scale software development.
Follow this link to learn more about Journee.