My Journey as a Full Stack Software Developer with DevOps skills
Eight years ago, I began my journey as a Full Stack Software Developer with DevOps skills. In that said year, I attended the University of the West Indies (UWI), Mona Campus, where I discovered my passion for coding and developing valuable software solutions. The first programming course was Introduction to Programming 1 and 2, which Dr Mansingh introduced us (students) to Python. It was easy to learn and code. We learnt simple stuff like functions, data structures, list comprehension, dictionary comprehension and other procedural concepts. However, I didn’t appreciate the value of Python at the time. The next programming course, Intro to OOP introduced Java. OOP was really fun to learn. We built a calculator. Amazing, right? If you’re from India or Japan, please don’t laugh, it was a start. Nevertheless, we most definitely started a competition of who had the best code, design and of course functionality that actually worked. I have no recollection of who won, all I remember is going to lunch with my group of friends after we got graded. Life of an aspiring developer was simple, back then.
The following summer, I landed my first job as a frontend developer. Due to my turnover time of producing solutions, the majority of my time was spent playing Counter-Strike or idling to the point where I started to randomly find work to do.
Yes, Counter-Strike wasn’t idling, it was an activity we did to sharpen our foresight and skills to code fast, predict and prevent all possible bugs that dare to threaten our precious code, at least that’s what I told myself at the time. Funnily, everyone had codenames, for example, Flawless, for his flawless code and Counter-Strike kills, but after he found a bug in his own code, we started calling him by another name, IGL Blue.
Apart from a friend named Denar, IGL Blue was the fastest coder I knew that can produce a solid working solution, at least at the time. How did I know Denar was faster? One day, a couple of years ago, I mentioned that I’ve never seen a dynamically generated map for Java. I’d scanned the internet and I couldn’t even find a single result, at least back in 2013. I had planned to build and release it as an open source project, but I went for lunch first. One hour later, I came back, saw a group of people around him and he looked at me and basically said he built it. I looked at it. I looked at the group for confirmation and they nodded their heads, and I was impressed. Frankly, I didn’t know if it was a Jedi’s mind trick or they were pulling my leg, but all I knew, I snoozed and I loosed even though it means I didn’t have to write the code and just simply use it in my project.
There are a lot of native and talented developers, designers and digital professionals in Jamaica that one would place a very popular anime term, OP, on these individuals. However, like many projects and startups, they aren’t nurtured and supported by our environment in Jamaica, hence, leading to some serious brain drain. Within the vision of the Jamaican Developers Community, this will change by attracting international clients and projects, and offshoring our developers to combat the dreadful process of brain-draining our best and brightest. Wait!!! There’s a Jamaican Developers Community? Yes, in 2018, I started a Jamaican Developers Community to assist in the growth and development of developers in Jamaica. We focus on pushing relevant content and opportunities to techies in Jamaica, for example, news, job opportunities, events and more.
Now, back to the summer of 2012. A month into the job, I was promoted to a PHP backend developer without ever written a single line of PHP code. I was told that there’s great potential within me and then I was thrown on a project to decode a legacy system to integrate Google Calendar and other services. Nevertheless, those three months were filled with intensive learning, decoding code and coding. Oh, and quite embarrassingly, I fell in love with not Python, not Java, but PHP at the time.
In 2014, I took a break and worked for a startup company to develop an online automated business registration system in Jamaica called StartupRobot. We were hip, we were hype and we were apart of the StartupJamaica initiative on a fancy floor of Jamaica National Bank building in Downtown. There were other amazing startup companies and projects like Project Grapevines, The Vine List and more. We were a family of tech startups. All of which would add great value to various industries in Jamaica. We were proud and kept pushing beyond our weight class. We were using cutting edge technologies that came out not so long ago, like Google Cloud servers, AWS, Flask and many other technologies. We were excited and looking towards the future filled with success, but things didn’t work out as planned. Most of these companies and projects have been lost to time due to lack of support, funding and various complications. I wish to find the means of reviving them one day and offer them the support they deserved through the Jamaican Developers Community.
In August of 2015, after winning the Jamaica Observer Moguls challenge by playing my automated marketing card to gain votes with some of the help from my employer, I had to make a decision. Leave or stay? I had already written my resignation letter knowing what it meant for StartupRobot, especially since it was just my employer and I was at the company. I also knew that I wasn’t receiving any income for the last seven months since all resources were put back into the business to keep afloat. It was so bad that I struggle to maintain living expenses and my mom, who had stopped work from I was 15 years old, had to find the funds to send me to school. Luckily for me, I had three siblings, which also aided me and my close friends like the Scotts, who’ve catered for me through my life. Yes, we won the Moguls challenge and that would have changed our financial and marketing state, but for how long? My gut was telling me to leave. My family and friends would let you know this about me, I follow with my gut and what I believe in regardless of the environment around. In StartupRobot case, I don’t think it would have gotten the support it needed unless something change in Jamaica. I left and rejoined the Alteroo team in the following two weeks to gain experience in dealing with clients and various situations. At Alteroo, we’ve automated tonnes of digital processes while pushing “Digital First” for other business processes and clients’ projects.
However, training new developers became an issue, especially for custom projects. We needed to ensure that any apprentice can learn and do repeatable tasks of setting up, deploying and other developmental tasks in little to no time with automated workflows on all of our projects. Around that time, if my memories serve me right, we started looking deeper into Docker after trying out various technologies. I ended up using Docker on my Windows machine (Kitematic), and Docker Compose on my Linux machines and servers to ensure that I’m somewhat versed with it. Also, I’m a big fan of Digital Ocean and GItlab, which I’ve convinced my workplace and many other companies to use for storage and auto-deployment of custom Docker images. Gitlab, for instance, uses Docker images for CI/CD and you can also store private Docker images.
In 2016, my 5th year of ignoring school, I was reminded that I wasn’t finished with school. In that said year, I did my Capstone Final Year Project in a group of 4 students. Three days before the demo day for our project, we sat down in our mentor’s office with frowns on our faces. We had nothing substantial to show. We only had snippets of code to show. Is this it? Are we going to fail? I bet that was what running through our minds, until a moment of dreadful inspiration. Our mentor asked himself a question out loud. If we even had the ability to do this project and if so why suggest it. At that moment, I got up, said I can’t listen to this, I’m going to go home. I knew all of this was on me. I was the one who suggested the idea and I knew I was supposed to find the time to do peer coding to get everyone up to speed, but I was so busy coding for interesting projects outside of school. Therefore, I knew, I had to ensure that no one suffered for my mistake. Monday morning, three days later, I messaged my group to let them know that they should be at the demo day. I instructed them on what to bring. We demoed the software, the lecturers were impressed and once we realized that Dr. Coore and Dr. Beckford was delighted we knew that we were going to get a high grade.
In 3 days, I pulled all the code snippets my group member did, build an Android app with Google Voice transforming words to text. Once transformed, the app would send the text to a Flask application that I built that uses the Python NLTK package for natural language processing. The NLTK package would remove stop words, unnecessary part of speech and generates contextualized keywords from the given text. Once the words are generated, a sign language scrapper fetches at least one sign language video for each contextualized word from HandSpeak. Afterwards, the videos are converted into the same format using ffmpeg, then concatenated together based on the context. The concatenated video is then passed back to the mobile application to be watched by the user. We called it, VoSign, Voice to Sign Language. Yes, our mentor was stunned and excited due to our outstanding deliveries while we had a sweet grinned on our faces. We had been asked to continue the project by our mentor as a part of the MPhil programme. However, I had already made plans to build a community for developers, one that is by developers for developers and can properly support and sponsor these type of projects with technical insights, funding and more. Therefore, that project was lost in time, even though I still have the code.
In summer of 2017, I did Google Summer of Code (GSoC) for the Internship programme at UWI as my final course as a student, while still working on a significant amount of Python and Plone projects for work. With all of these activities, I was struggling to find time for school. Of course, handling so much work and context switching was a concern for everyone, but as usual, I said I could manage, and I did by burning some midnight oil. I knew and understood their concerns, especially since my family and the Scotts saw cases of burnout to the point I slept almost two days without a single wake. For instance, one morning, when I was by the Scotts, they came out of their bedrooms and saw me flat on the bare ground, almost dead to the world and they panicked until they realized that I was completely knocked out. I had a lot of deadlines that week that I had to make, especially since I wasted the previous week by going on some food adventures. Working to the point of burnout is something I wouldn’t recommend for any student or anyone, and I’ve thought about. How can students gain experience from the industry experts to learn more about the techniques, practices and tools that are used today? That very question is the reason why I did GSoC and asked the Department of Computing to add GSoC as an accredited internship programme. I think I should point out that I did have a social life, one few people knew about, I think.
October of that said year, I attended the Plone Conf 2017 in Barcelona, Spain, which the Plone Community, Google, my employer, and many Jamaicans sponsored my trip to Spain. At the conference, I realized Docker was a big thing in the Plone Community, so I had more reason to learn Docker the right way. Also, I presented what I did for GSoC. Sadly, I learnt the hard way to have a backup plan for live demoing just in case there’s a temporary server downtime.
After the Plone conference, I started to scheme how to build a more robust and influential software developers community in Jamaica than the ones I’d imagine and existed at the time. This community would help promote and launch tech-related projects, open source software, events, jobs, and the list can go on and on. I then decided to follow and watch Docker, Plone and Git communities and how they grow their user base.
I am an active member of various groups, which includes data|Meetup, MakeBetter, PythonJamaica, Jamaica Software Developers Association, Jamaica Game Developers Society, Plone Community and ERPNext Community. I’ve been using these groups as learning and networking avenues.
Sadly, I’ve been an inactive member of the Docker community even though this story is partly about my Docker journey. I am going to change that.
A year later, I soft-launched the Jamaican Developers Community website, which is growing quite rapidly while its automated services are being built.
A month later, I went to the Plone Conf 2018 in Tokyo, Japan, another sponsored trip by the Plone Community and over 28 sponsors. I gained tonnes of experiences and insights on Plone relationship with Docker, React and other technologies. Members and developers demonstrated workflows, processes and other technologies that they are using and developing and I showcased what Jamaicans are doing with Plone. In my presentation, I demonstrated an automated deployment workflow using Gitlab CI/CD, which uses Docker to build, test, and deploy themes directly to Plone sites if the tests pass.
As for Japan, I loved the experience, mainly for two reasons. I am a bona fide FOODIE and TECHIE. The people were very polite and kind. The scenery, especially on the train ride to Mount Yahiko was breathtaking. Last but not least, the temperature, I love cold weather as much as I love the tropics.
Two months later, the ending of January 2019, Erdem Gunay, the organizer of the Istanbul Spring Meetup reached out to me, asking if I can arrange a meetup within the next three days because he was going back to Turkey the following day.
Thanks to the collaborative efforts of Incrementic, the Department of Computing at UWI, UWI Computing Society Club, Particular Presence Technologies, Andrew Gray and the Istanbul Spring Meetup, all the information, resources and facilities needed for the event was provided. Meanwhile, I was utilizing the automated marketing tools that were built and integrated into the Jamaican Developers Community website to attract the audience from various social media pages. The turn out was great. The presentation was excellent. The first Kingston Spring Meetup was a huge success especially since it was the first time I organized an event. Also, Erdem hinted on Java’s Spring Framework with Docker and other technologies for deployments and sharing a stable version of the application. A fair number of students didn’t know about Docker, so I asked if they’ve used Virtualbox before. They replied, ‘yes’, then I stated that Docker is like a miniaturized deployable and shareable VirtualBox in the Cloud. The students instantly got it, at least based on the feedback. At that point, Erdem recommended doing a Docker meetup or workshop and the students agreed.
Visit: https://jamaicandevelopers.com/p/kingston-spring-meetup-video-and-photos to see additional videos and photos.
All of the above and more led me to this moment of writing this unnecessarily long story, which I had rushed, messed up and sent to the Docker community and professionals. Context switching between coding and content writing between breaks is not an easy road to walk with grammar as a nagging friend. Therefore, I apologise for any grammatical error you’ve noticed.
At this moment, I am seeking assistance from local and international organisations to promote and grow Docker, Plone, Pyramid, React, Spring and other valuable technologies in Jamaica through training and meetups especially from the start of March of this year.
The aim of this initiative is similar to the data|Meetup group, MakeBetter Meetup group, Jamaica Docker Meetup, WebCraft Conf, Particular Software Development Bootcamp and UWI Computing Society Hackathon to nurture and grow the developers of tomorrow as a collaborative effort to build better software solutions and of course, hire these promising developers afterwards.
Big up to Vertis Technologies and GlanceHouse for their support.
Apart from all that, this is my not so short story of a Full Stack Software Developer with DevOps skills and the purpose of the Jamaican Developers Community.
Thank you for your time and consideration. I will definitely break this up in parts the next time.
This year, I will be a mentor for GSoC / Plone, if you are interested visit https://community.plone.org/ and introduce yourself as a possible candidate. The community is quite welcoming to all.
Alternatively, if you are in Jamaica, you can check out the Palisadoes Calico Challenge, it’s similar to GSoC but as a wider barrier for entry for Jamaicans.
My presentation at the Plone Conf 2017: http://bit.ly/2E7vO1r
My presentation at the Plone Conf 2018: https://jamaicandevelopers.com/Members/oshane--bailey/jamaicans-developing-plone-application
Plone Conf video playlists: https://www.youtube.com/channel/UCbyShiqfZ7Xg_n3R1gynpxw
Photos and Videos of Japan and the Plone Conference 2018: https://www.flickr.com/photos/165838374@N07/sets/72157704271301234