Coder Social home page Coder Social logo

Hello my dude or my girl, it's me, Nicolas Leal ☺️

How are you? Good? Hope so.

Welcome to my little and private place called my github. I know it's a little bit messy around here. But don't worry, i'll guide you.

Summary:

Oh, how rude of me, i didn't even got to introduce myself. 🥹

So, where do i begin?

I am Nicolas, Nico, Nick, Pipoca (nickname my father gave me while i was still a baby, it translates in english to Popcorn. It can be because of my freckels or because i never settle down, i don't really know). This ride called life has been rather fun for me. Since i started being aware of myself i know i always liked to build things. LEGO was one of my favorite toys. Yeah, sometimes i used to build the lego as it was intended to on the manual but most of the times i liked to build stuff that came right from my head. I built houses, airplanes, boats, all sorts of things. When i started growing old what changed was that i was trying to build stuff. Parents and people i know, knows me from two things:

  • Either i destroy things i touch
  • Or i fix everything i touch

Luckly, i'm mostly known by the second. I was rather curious about how stuff worked, tried to fix the computer by myself, my mouse, my keyboard, my headphones. Got a new bicycle, why go to the shop when i can build myself? Sometimes it worked, sometimes i needed to accept my defeat and surrender.

Things i tried to do while discovering myself and what i really enjoyed:

You're not curious by my infant years? Sorry about that. 😖

It's always fun how your life tricks you and changes in ways you didn't expect, doesn't it?

Anyway, i always though engineering was my thing, but for some reason i got into a bachelors degree in Information Systems as University of São Paulo, the best university in Latin America. The funny thing about that is that i spent 4 years in this graduation and during all of those years i spent most of my time thinking that it was not for me.

  • "What is a Linked List?"
  • "What the hell is a Tree? Why is it called a tree if the root is up and not at the bottom?"
  • "When will i use this in my life?"
  • "Why people seems to be so more far ahead than me?"
  • "I need to study for exams and i also need to study outside what college already asks for me in order to find a job? Why doesn't college teach me this new framework to find a job?"

Silly me, in all ways. After 4 years i started a graduation in Marketing, same university. When i started my graduation i knew that i needed a job. What job i got? A job in 99 (that was later acquired by DIDI), the first unicorn in Brazil, in an area called Marketing Analytics.

Now we get to the fun part about my work, take a seat, eat a snack and then let's continue 📜

Are you hydrated? No? Do it, i got stone kidneys and i can say it's as bad as people usually say. Do you feel comfortable? Yes? Cool.

I do have a talk on Python Brasil regarding that history if you want to see it.

So my job was primarely update a spreadsheet every morning. Every morning i got to wake up, go to the office, open Excel Spreadsheets, then open the browser, open Twitter, open Facebook, open Google Adwords, open Adjust/Appsflyer and last but not least open Metabase. On every platform i would filter by the current month. Then i needed to copy this data to specific spreadsheets, drag down some lines and after that just click a button on another spreadsheet to run a Macro and consolidate everything. Sometimes i also needed to do some SQL queries for the marketing team.

Yeah, i agree with you, that looks tedius, boring. And it was!

So what did i do? Macros! Yeah, why not. My first Excel macros was for copy and pasting the CSV i got from all of those platforms into each Spreadsheet. It was fun doing this, it sped up a lot my job but it still wasn't perfect. When i finished that was the exact time my boss came to me with a request: Opening a file with more than the 1 million rows that Excel supports. How would i do this? I didn't knew. My friend knew a way of doing this using another program caled Access, but i needed this until the end of the weekend it was Wednesday already. This was when Python came into my life. I started dwelving around it, found a library called Pandas. So i did it using Python and Pandas, and then came another problem: How will my boss use it? Does he need to install Python? So i started messing around Py2exe. It's already Friday and i sent him an e-mail: "Hope this e-mail finds you well, here is what you asked, there is an .exe file attached, just download and run it." It worked! He loved it!

For him it was just another thing some of his subbordinates delivered to him. For me, it was like a bomb in my head. "Whoa, look what i can do with Python, i wonder what else i can do with it? What if i automated all my job so i could be free all day?".

And then my automation came to life. But little did i knew that it wouldn't mean that i would work less. It was actually the other way around. All my work was done by the press of a button so this means i got more time to do other kinds of work. Those other works includes:

  • A website similar to buzzfeed to find a perfect "bloco" (this is what we call sound cars that rides around roads with music during carnival, people usually follow them) during carnival.
  • A fully custom drivers CRM, used for sending message to drivers after the signed up. Everything was controled by a sheet.
  • Last but not least, make everything that i used to do manuall on Apache Airflow. This way our marketing team could have this data from the database.

Anyway, it wasn't long enough that we started seeing that my thing was actually programming, more than marketing. I didn't switch back graduation though during that time, and i don't regret it, it opened my mind about thinking more about product and less about code.

Then i changed role inside of the company and started to work as a Software Engineer Intern. From building partnership platforms in Scala, to maintining our hole B2B experience, from the backend to the frontend. I always worked as a Full-Stack Engineer. And then while i was doing all of that stuff, my brother asked for help in his own job to do a tool for his company.

And here it comes, the enterpreteneurship phase 📈

It all started in 2018, when my brother saw the progress i did on 99 and asked if i could built something for his company as well. Something that i didn't say about 99 was that during the time i was working for the marketing people, i needed to create an app so we could apply the same pattern on the campaign creations. You may not be aware of this but let me try to explain, on marketing campaigns usually you don't name it like "This Campaign is for passengers, using the new immagery, and for people with iphones only :D". You can name everything with acronyms like "PAX_IOS_FB_NEW". With this data we would be able to parse this string and extract the data that we wanted or needed in order to classify it in the database. We usually always advertise stuff on Google and Facebook, but did you know there is a hole bunch of AdNetworks out there? Usually they are pretty much the same as google's AdSense but can revenue people that install their SDK a lot more than Google's. And they keep changing a lot. So we need a way to classify this. And this was something that i have created. A simple tool that would make this classification easier and the campaign naming easier that would enable the program to track and extract info to the database.

My brother saw what i was doing and asked: "Hey, i have this spreadsheet here, can you help me transforming it into a website? It's just for my company." And then i started helping him during my free time every time we got off of work. The spreadsheet was pretty much a CRM that he used to send to his clients, every client would update this spreadsheet and at the end of the month they would send the spreadsheet updated back to him so he would be able to consolidate the data and extract information from it. You can probably already see where a website can come in handy for it.

The tools that i was using for this job was pretty much the tools i was already familiar with: Python/Django/AWS/Postgres and last but not least: Jenkins for CI/CD. First i started doing it with the django templates. If you don't know what it is, it is pretty much HTML. So i was using raw HTML and sprinckled the bits of interaction with the normal <script> tags. So everything initially was vanilla JS. It actually was pretty stable and was working great for some moment, until it wasn't anymore and i needed to change this. I always loved BIG frameworks, frameworks opinionated about stuff. So i started learning Vue.js at the time, i think it was Vue.js on the second version. I watched this video of freeCodeCamp and learned it in an afternoon to rebuild the onboarding of the platform. It was pretty great and helped me later when trying to learn the core about React. Learning Vuex first gave me the insight i needed for getting to understand what was Redux/Mobx, and other similar technologies.

Let's get back to the company storyline, i know we can keep talking and talking about technology, but i really do like talking about business stuff to. (did you know i graduated in Marketing in the Best University of Latin America? No? Now you know). So at the end of 2018 and start of 2019 i got holidays from the job and i really digged into building the plataform. While building it i took a lot of design decisions and one of those design decisions completely changed what the software was all about. The question was: "What if more people, outside of my brother's job wants to use the platform? They might not need a 1:1 of the spreadsheet we are copying, but they might need to add their own data". This was when i started modeling a relational database to support any type of data. I'm going to be a little bit narcisitic here, but having started on an Analytics role and working directly with Data Engineers really helped me excel at modeling databases, i think this is definetely one of my core strengths that i really do see a lot of software engineers failing at (If you are a JR. Software Engineer reading this, try your best to excel at database modeling, data its the core of pretty much any web software). I think in exception of just one table, pretty much what i modeled was used through the hole lifecycle of the company.

So after i got back to work, after this vacation we though we had a really great product on our hands: We already got clients interested in using, we had a product that could be used pretty much by any company. So, since i was the only developer and development was the job that took most time i quitted my job. The money that the clients was already paying with our MVP was enough for me. After that i actually never took vacation once, it was my own product something that i really had passion doing. First thing i did, you can already know: Modernizing the frontend. I started with vue, like how i stated before, but then we hired a freelancer to modernize it, i gave him the choice between any framework he could be more familiar with. He choose React.js, more specifically Next.js, so we continued what was already done with Vue and we translated to Next.js, besides that small part we started translating the hole platform. It took a couple of months but after it was ready it was far superior from what we previously had with Vanilla.JS, a lot more stable as well. Sadly the Fullstack didn't continue with us during this hole transition, it was until the middle of it so i needed to take it fully alone.

During this modernization we participated on a acceleration program for startups from SEBRAE. SEBRAE if you are unaware is an NGO company from Brazil with the solely focus of helping companies and enterpreteneurs achieve success and growth with a bunch of programs and classes in management. We participated in this program because it would be completely free for us, we wouldn't earn any money but we could be in contact with VCs and other companies on the same situation as us. It was a pretty great experience overall, sice our product could be used for almost any company we even got some clients there.

Something i did during this modernization phase was that antecipated the need and created a codebase that shared code between React Native and Next.js. We just changed pretty much the design I was the only developer of Reflow. I've created it from the ground up using technologies like: Python, Javascript, React, Next.js, React Native, Electron, Django, Celery, RabbitMQ, AWS, Django Rest Framework, Flask, Redis, Postgres, Vue.js, Jenkins and many more.

I programmed almost everything alone so i really hope you enjoy what you see.

Besides that, i sometimes do some work outside of Reflow, messing with stuff like WebGL, WebAssembly and some new technologies that emerge, you usually can see them here in my profile.

I also enjoy making some songs on the name of Norcpop

I've started studying Information Systems in USP, but left it thinking programming was not for me (silly me). Right now i am a bachelor graduate of Marketing in USP, and i couldn't be happier.

Links

If you want to know more about Reflow follow us in the following links:

About myself:

Nicolas Leal's Projects

athlead icon athlead

A sua atlética na palma da sua mão

friendlychat icon friendlychat

The source for the Firebase codelab for building a cross-platform chat app

frigg icon frigg

The Frigg Framework - Integrations as quick as "npm install"

price_miner icon price_miner

Price miner from e-commerces that i made for Price Management class of my Marketing Graduation and want to turn on my possible TCC for price analysis of e-commerces

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.