Workfolio#1 : My First Job
This month I'm completing one year at my first job after graduation & I have penned down all the exciting things I explored.
I am hereby sharing my workfolio, urf the things I did & learnt at my everyday job, which may help you too navigate workplace easily.
(& of course for the sake of maintaining confidentiality I'll alias the details of my stories(development tasks/ JIRA ticket or requirements) into generalized concepts or even filter/skip some)
* My first ever task: was to analyse the issue & implement a fix for failing decrypt activity.
A process was getting failed due to decrypt activity (or in IT jargon: code decrypt step pe fat raha tha)
So, I did a step by step analysis(or may I say a cooler term RCA: Root Cause Analysis), what characters in the incoming file caused it; since similar encrypt-decrypt mechanism configuration was working for other processes.
But, alas I did not have access to the encryption step since the files were already coming encrypted from client. That left me with a choice to either wait for their response or generate dummy data,
& how would I generate data if I don’t even know the file format? Then the idea struck, to check the previous successful runs & extract the required data from there,
Thus after getting it, tried using other general PGP cryptographic process on both the successfully processed file, compared & realized what must have gone wrong, reported & fixed the same.
* Learnings overview: Have an in-depth analysis the first time you go through the requirement so no info/ detail is missed. No need to always re-invent the wheel. To quick start your journey of development, you can refer years of wisdom in pieces/ components similar to what you’re building.
* Tech concepts learnt: Running an integration, request from SOAP UI, Operator UI, checking flow of the instance from WebLogic's console, debugging through service specific logs, understanding properties/fields of various activities such as encryption/ decryption are configured for different environments
* My Second Story wherein I worked on Oracle SOA/OSB Suite the proper first time:
This was a anomaly reported in the Notification Process BPEL(Business Process Execution Logic), observed while monitoring the logs.
Wow, this was quite adventurous as it was complete new to me, forget fixing the error in BPEL, I had never ever seen or heard of such a file extension.
But, here comes a fun part of Self-learning & working in a supportive team. So, initially to get an idea of what's going on in such large complex files, I googled about it, & understood the basic components. I can’t highlight enough how easy it is to learn any new programming language, framework or methodology when you have prog fundamentals & logic clear.
On basic research I found out that, dealing with BPEL files is even easier than the complex codebase, Because it is a hybrid mixture of GUI based solution & basic prog blocks (like conditions, switch case, routing, assignment, transformation & data extract, etc) which helps both, a non-techie understand the over all flow of business service & a more tech oriented individual when we click on a component & see the actual code behind it, a real time abstraction example indeed.
& then with the help of documentation & seniors, understood the context of the requirement & identify potential areas of code, which we can improvise on to resolve the stated bug.
* Learnings overview: When coming across something completely new to work on, do your individual research first, get basics clear & then ask for project related understanding confirmation from seniors, that will save you & them the time 7 efforts.
* Also, it would be a reflection of your great personality trait, as you may come across as individual who is confident, does own research & values other's time & efforts.
Showing gratitude, Eagerness to learn new resulting self-growth, Asking questions not just related to current issue, but for a long term understanding, so that next time you can tackle it on your own goes without saying as a good etiquette.
Tech concepts learnt:
* BPEL, Reading & monitoring Logs for anomalies, building/exporting code component as JAR through Oracle JDeveloper Studio, deploying JAR files on Server,
* code review- checking that the code change follows clean coding guidelines,
* building the component through Jenkins(non-released/ SNAPSHOT versions) after commit to check all the pre-prepared tests pass to ensure your changes don't break anything else.
* Now comes a task a teammate was working on, requiring huge analysis:
A port number had to be changed, so the task was to identify all the affected components, that will need testing, after the change is implemented.
* Learnings overview: Be eager to help, it will result in more learnings for you & more productivity & successful results for the team.
Because you performance isn't just related to your skills & results, but how well you can contribute to the overall performance of your team.
Tech concepts learnt:
Got a chance to look at various components of codebase & how DB versions/ instances are used at different places.
Well these are some underrated sources that could result in immense learning if well utilized. Yep, I'm talking about MEETINGS!!! Here's what I like learning from them:
Requirement estimation/ sprint planning meetings:
To understand business requirements, get a big picture of how the work you’re doing will create an impact for the client, grasping implementation pattern & understand the scope of your work, getting a basic idea of how your time should be managed if you work on that requirement.
Discussion of other Developer’s Story:
Alone, you can learn from your own mistakes & experiences, but to accelerate it x times, extract knowledge from other’s experiences, similar to how reading books can make you live experiences of 100 lives in 1.
(Here's where I touched some more interesting things team is working on: Changing Auth Method from CERTs to JWT/ OAuth, Achieving Cache Rewrites/Updates without Restarting the server, Migrating SOA code into Java SpringBoot Modules & OpenShift ones, Move forward learning Kafka, integrating to existing systems, discussing pros & cons of various approaches & make decisions)
Huh, what to speak about this, do you know how effective it is in long term to ensure that we’re sticking to the direction we’re headed at, it gives reality check that current steps & processes followed are the practises that we aimed to implement & recognize the areas of improvisations, ensuring the ability to meet the long-term plan.
Knowing how organization as a whole is heading, place to raise any concerns
A place to speak your mind, chillax, let the kid in you be alive, appreciate all the good the team did to you, form friendly amicable bond with colleagues over Bday’s, farewells, work-versary, or a casual chat or friendly game.
(P.S. : I'm moreover loving it because I along with 2 other joinees organize it, plan games, collect messages/photos from Team Members, & host such meets, thus making us feel like we're fun managers of the team!)
* Fellow Software engineers, You're more than just your code,
* Collaboration is a key to achieve multiplied results,
* Culture & Tribe-Vibe is an important checkbox while looking/staying for a company/role.
In all, leverage all the opportunities to learn, ask many questions to get your basics straight, set up a strong foundation, bond with team, understand culture!
Well, with that I'm wrapping for now, but I do have many more exciting stories to share with you'll in coming parts.
See you at my next thought-outlet.
Sayonara :) Keep Shining!
Would be a pleasure to connect & know more about your experiences