This was the first official work i did in my college life. not something i really expected, not my first choice, but hard times -- i'm just glad i got on it for the summer.
As freelance experiences go, this was one of them. i was super new, i hadn't really had professional freelancing work before, so this was pretty interesting.
The most obvious rule, the 101 of freelancing, is to have a defined scope of work with timelines -- no matter whether it's a simple 3-person team or a big 10-person one. a constant list of todos and weekly meetings are the bare minimum to avoid problems or confusion on either side.
So i didn't. i was under the impression that this was my first thing, yeah! let's do it well! i'll perform 150%, do extremely well, and it'll be a "good" thing -- with no clear goals.
We had a few meetings, i looked at the codebase, and it was a MESS: a 2012 React Native template with about 20+ broken native dependencies. that's another mistake, to get intel about the existing work before you decide.
Since there was no scope, what i ended up delivering wasn't just an app. it was a decade-upgraded react native app + a UI redesign + an admin portal website + a custom server deployment.
skills-wise and experience-wise, that was super nice. but was it worth my effort, time, and pay? maybe i'd think thrice next time.
It was a blessing in disguise. i got too used to working late, as part of my addiction to coding -- sometimes i just sit in a chair for hours until i fix a bug (ask my roommates) -- another byproduct of hackathons. the founder energy is really hijacking when you work in a company.
This is also where i understood corporate dynamics, and how you really have to deal with work.
As a naive, energized freshman, i wanted to build something i found cool. NO sir, that's not how you do it in corporate; you just do what's needed for the team, even if you don't agree.
(this is most of the averagely-placed companies -- i'm not saying every company is like this.)
But if you want to survive -- it's complex, but most of the time -- hit deadlines, submit good work. TAKE OWNERSHIP. that's really what keeps you going and gets you promoted.
and it's sad, this is the reason i don't love big companies. i'd much rather be on a 4-12 person high-energy team tackling a really hard problem.
For managers, i've noticed, if you give them 140% on some impulse of excitement, you might find it a dopamine hit, but later it sets an expectation that you'll do the same in the future.
You'll see your deadlines get a lot closer and your workload grow.
Do what you really can within your capacity. have a life outside work so you don't overprioritize it or depend on it as your existence or your dopamine. never tie your worth to the work you do.
Own the stuff you make. you must celebrate it. you must let it be known, signal it to the public. you deserve it.
I wish i'd known these things earlier, but this experience really helped me learn a lot regardless.
but yeah, i've had so many learnings:
I had never worked with publishing on the appstore, a proper app development project, or an admin dashboard actively used by people, mainly in prod.
-
I enjoyed jotting down high-level business logic for solutions -- questions like "how do we make sure the babysitter is at the location without consuming too much of the phone's battery?" really got my mind thinking about problems before designing solutions.
-
the race condition between rendering phone-call status and the booking collection while they're on a call -- experimenting with debouncing techniques there was really practical, straight from theory.
-
experimenting with different UI design choices, making sure we got the most touches on the main button, taught me a lot about HCI.
I think i'd rather spend 45 minutes of an hour jotting down the problem and solution, then the remaining 15 coding it out.
and yeah, for the most part, i really learnt a lot -- about hard skills as much as soft skills.