Bootstrapping my developer career

Written by erikmejias | Published 2017/06/10
Tech Story Tags: entrepreneurship | growth | software-development | freelancing | mobile

TLDRvia the TL;DR App

If reading this, chances are you’re somehow interested in bootstrapping your career, being a content creator or maintainer in whatever line of work. I bet you want to add more value not just to your life, but others as well while maximizing returns.

The verb bootstrap means get (oneself or something) into or out of a situation using existing resources.

Just like you, I’m really interested in bootstrapping my career (While referring to software development, it applies to other fields as well) too. But, how can we do it? I’m really not an expert, but by definition, bootstrap means using the resources I own right now, not the ones I would like to own. There are lots of ways to do so and is something very subjective to each person and situation. But let me tell you the exact strategy I’m applying as of right now.

Over the last years, I’ve read a lot of articles and stories about successful developers around the world. Most of them are in the USA working in great Silicon Valley companies or as professionals contractors for hire.

My own story, however, is not that exciting and very awesome to share. But I decided to change it. Would you like to know how? Let’s go through it.

Technology Roots

I started recognizing software development as a thing by the year 2009 (was 18 at the time) on a guided tour on Instituto Tecnológico de las Américas (ITLA), sponsored by a local businessman who was very interested in younger people learning technology. Don’t get me wrong, I always have been tech-savvy, being it repairing computer parts, downloading a lot of open and not so open software from the internet and tinkering with Linux distributions. However, I’ve never stopped to think about how this software was made until, in the guided tour, they show us a group of programmers writing code and testing cool interfaces on a projector.

Was hooked right away. I remember downloading lots of tutorials about everything related to software development and design: HTML, CSS, Javascript, PHP, Adobe Flash, Photoshop, Java, C, C#, and trust me, the list can go on and on.

My friend Jorge and I would start to make a collection of tutorials. Then I realized a lot of technical content was available on YouTube, so we downloaded lots of them as well. There was a time I got up to 2TB just of tutorials content!

I’ve tested a lot of technologies before deciding to focus on Java when studying at ITLA, which I did. However, it became pretty difficult very soon, because I wanted to work as an independent contractor, but here in the Dominican Republic having a successful career as a software developer is very subjective. You can get a pretty decent job, but working on boring projects and legacy code with standard payment for a lot of work was not into my plans. I wanted to control what type of software and clients to work with, and receive a good payment for professional work. Was it too much to ask?

Apparently yes. Because for the last 2 years the only client work I got was for small websites. I’ve become proficient using and managing WordPress powered websites, but again, not what I wanted. Apparently, nobody trusts on a freelancer with big projects unless you got good connections or a big project in the portfolio, go figure. It became worse every day because there are LOTS of developers doing the same thing, which means there is a cannibalization for any given website project.

Was it profitable overall? Yes (I handled different clients at the same time). Was it enjoyable? No. Was it the kind of project I wanted to be remembered for? Of course not!

But, as you read at the beginning, I’ve read lots of articles from developers and businessman around the world. I don’t remember exactly when, but Freddy Vega and Christian Van Der Henst recommended in one occasion to “build and give for free one big project which will serve as a portfolio for the type of work we want to do in the future. Given the fact that it’s something we enjoy, we’ll put our heart on it and the results can be great for us”.

Platzi Live

By the way, they are not endorsing me by any means (I follow them from the time their startup was named Mejorando.la), but I really recommend you check the work they are doing, it’s not just teaching the latest technology and preparing you for work, but more important, they teach you soft-skills like management, marketing for yourself and how to identify the market trends to make great decisions for your digital career.

Upgrading Portfolio

Now, what kind of project would I make? One not too difficult that takes a lot of time but interesting enough to grab your attention while involving different roles.

By the time I was thinking, there was bad weather in my tropical home island. It was August 2016 during a storm, and the government office responsible for informing the citizens was doing their best, but with the help of a custom software, they could do better. What about a custom native app with good graphics, small fingerprint, ease to use design and direct connection with a command center used by the members of the office who could issue bulletins and notifications to any given area they want, anytime? And so, my project was born.

La Oficina Nacional de Meteorología (ONAMET) is the government office responsible for informing the Dominican population of all related to weather. They got really smart people in the department, so I had to build software that works but with the standards of the professionals who was going to use it.

The technical specifics of the project is beyond the purpose of this article (but in the coming days I’ll explain all of it in details), but for now, this is what I’ve built: A native app for Android & iOS (the latter is not available yet) and a command center website for the ONAMET. The system fetches the weather, receive official bulletins and light messages by place (if they want to communicate with users in certain part of the island, they can) and also, very important, receive SMS notifications in case the Internet goes off in certain areas or the entire country.

I feel proud of the entire project, which took me about 4–5 months to complete on my own. It relies on services like Firebase, Google AppEngine, Twilio, and other APIs to accomplish most of the work, so I think it’s a good use-case for those technologies.

I started writing down all the features and specs of the project, from design to architecture and development and then called the ONAMET to see if they would be interested in my software. I talked to the head of IT, which helped me a lot to get through the organization, and he said to me the project was really cool and that, if it was a donation, they will accept it and used it. That exact day I started designing the V1 of the command center and Android app.

The user interfaces shifted a lot during the development phase but the core features remained the same during the entire process. There was a time in which I noticed was wasting too much time testing theories while moving away from the main goals (I learned a lot more of project management in this project, will write in detail about it later)

I use Asana to keep my projects organized, so when I got halfway the project I showed the beta of the system to the IT department of ONAMET. They were really impressed! In fact, they wanted to launch right away! I knew it wasn’t ready for production yet, but at least was on a good path to be something useful, and trust me, that was really rewarding for me.

I ended up doing a contract to stipulate that, even when this was a donation, the institution would have to give me credits for the software publicly (will help me get clients, remember?), for which they happily agree to. However, with a public institution, it’s not all roses. The bureaucracy chain was something I’ve had to struggle a lot, even for simple decisions.

As the software evolved into a more mature platform I realized there were some other things beyond the development that needed to be done. Documentation for users of the Command Center and the backend code (in case they wanted to change something down the road without my direct involvement), a promotional video showing the app, aerial pictures of Dominican cities (more on this now) and lots of pointless meetings to coordinate the project launch. All of this took a lot of time I didn’t anticipate at the beginning, so I decided to delegate a few things involving others help.

Aerial Photography

One day it occurred to me that the UI will be far better if using aerial photography of each place instead of just an illustration. The thing was I do not own a drone, so I started looking for online pictures of every city in the country. I’ve spent lots of hours searching for the

With illustration background

correct ones (royalty free) with no luck. It’s incredible that just a handful of cities had good pictures available, so I resorted to professional photographers profiles on Instagram.

With photography background

However, the impressive Nestor Pool understood the work I was doing and gave me a hand, which I truly appreciate. We’re not done yet with all the cities, but the system is built in a way that I do not need to update the client app to change the background images (or the data itself in that matter, thanks Firebase!), so we’re adding it as he shoots them. I recommend you to check his profile, those pictures are amazing, he really put his heart into it.

Promotional Video

I’m not a video producer. That’s something that takes a lot of time and wasn’t necessarily needed for the project. But hey! Why don’t work the extra mile? In this regard, I offered the same credit deal to my friend Francesco Oliveri. He recently founded a video editing startup, so the project served as portfolio for him as well.

Even when the project was a donation, Francesco put a lot of work and dedication to do it right. I can’t thank him enough for his late nights editing my weird requests for the video (I’m sort of a perfectionist). There was a time we almost got it all finished, but then I changed the user interface of some parts of the app and asked him to re-shoot it all over again.

But he did it! He is awesome right?! You can watch the final video below, also check his others projects, he is growing pretty fast thanks to his dedication.

Launching the app

The launch of the project isn’t going that smoothly as I was dreaming. We launched on May 31, but right the next day the Centro de Operaciones de Emergencias (COE) launched their own app. They are a different government branch for acting at emergencies while ONAMET informs about it. They are supposed to work together, but you know, we humans apparently enjoy fierce competitions (especially within government institutions).

All this means my project was shadowed by their release (which was funded by the USAID), not that much I could do about it. The ONAMET administration doesn’t want any problems with COE, so they are waiting a little bit before doing more noise with my project.

However, some media are echoing my project, which is the coolest thing. For example, the next day of the release one news channel made a video showcasing my app, you could see it below.

http://www.antena7.com.do/actualidad/30597

How cool is that?! Seeing my work being showcased on TV was a very inspiring moment for me, and by being the first time, trust me it felt very good.

As of this writing, there has been more than 2k downloads of the app with over 700 registered users, which of course is not what I was expecting, but this is my first app, so I’m being patient. Two days ago -as of this writing-ONAMET approached and told me they are doing a press announcement of the donation giving me credit for it with all of the country newspapers, which will likely boost the users base. And guess what: I was the one who had to write it!

In the following days, I’ll update this post reflecting usage increment after the press announcement is in the wild, but for now, the good thing is that 92.9 % of my users are not getting any sort of error (Firebase Crash Reporting give me that number) which is a relief being a solo-entrepreneur in charge of almost everything.

Current state

As of right now, the project has been online for over a week. I’ve been called by a couple of local companies impressed by all the work and also been receiving emails from people saying thanks for the donation and making feature requests.

I’m still broke (had to buy a Macbook, my previous computer couldn’t handle the project) with no real job at hand as of this writing (I’ve cut loose with all previous work to focus on this project) while working on the native iOS client. So, if you are a company looking for an organized fast learning professional to do remote work, please contact me :)

I feel very good for accomplishing an entire project from scratch for use by real people on both ends for the sake of helping. It wasn’t an easy path because I’m mostly self-taught, which means learning a lot of things on the go. But the online community is amazing and places like StackOverflow and GitHub, along with the free courses Udacity provides (will do a post about them later too) had helped me make it right.

In the following weeks, I’ll be posting about the technology stack of the entire platform, from the backend of the command center and integrated services to the iOS and Android client apps.

You could check the Android client if you want in the following link:

https://play.google.com/store/apps/details?id=do.gob.onamet.android

But… what’s the takeaway?

Pivot, do not stay the same if you know there must be some change to be made. Do some noise while doing it, but with style.

That really is my advice. Tackle your business or career from a different angle and do not wait for anyone permission to make the transition to something you really want. Be humble about it, know your limitations and build a solid but doable plan you can execute right away.

Originally published at Erik Mejia.


Published by HackerNoon on 2017/06/10