What working in a team is like

Hey everyone,

I just wanted to write up a post for those of you who haven’t worked in a team before, specifically in the software development field.

I was a freelancer and a lone-wolf who used to work remotely once before, and I totally understand how it is like. I remembered when I tried taking a software job and worked with others for the first time, I was afraid of criticism. Because of this, I was doing things wrong at the time.

I rethought to myself that there is no need to be afraid of criticism. It’s actually good since it’ll enable yourself to be open to learning new things. To keep learning is a key to becoming successful. This is what all teams do. Here are a couple of scenarios:

1. There is a requirement to be made on a specific functionality. Somebody had already done it on iOS, and the same will have to be done on Android. Because it was already done on iOS, it just means that Android will need to be implemented. Therefore, the Android developer will code the solution in order to make it work. Once it works, he’ll push it to production.

2. There is a requirement to be made on a specific functionality. Somebody had already done it on iOS, and the same will have to be done on Android. Because it was already done on iOS, the Android developer looks at the existing code and will try to find a better way to resolve this issue, so that it works flawlessly on both the platforms since they use the same backend. Once said developer architects the new solution out, the developer will communicate with his team in order to implement the needs of the functionality. Doing this, the code will be clearer and more concise, meaning the iOS code will then have to be refactored towards how it should be done.

Clearly, if we are talking just about team effort, then scenario 2 will be better. Spring cleaning is involved, which also means that the bugs will be less as well.

Even if the developer will not understand something, then said developer will ask another developer how something works or should work. If it’s a new implementation, then usually everything starts with a skeleton and a little piece of meat to make something functional. In here, there might be crashes along the way, so developers collaborate in making the functionality flawless.

Oh, and if you still feel like the lone wolf, just start off by being friendly. Eventually, you’ll get used to the environment and mesh along. Then that next job will become a lot easier as well (if it needs to go to that point)!

Until next time!

Brian.

Your workplace is also your client

Hey everyone,

Here’s some food for thought. Have you always thought that you’ve mainly worked for “the man”?

In other words, you are working along with the schedule that is given to you, and you are just living from paycheck to paycheck.

All of a sudden, you find that you’re just stuck in a cove without anywhere to go.

You find that your life cannot be enjoyed as you would like, and your life is just about work, work, and work…

Do you say that you’re a workaholic? I said that to myself once before, but later on, that won’t matter too much anymore. Eventually, you’ll start to realize that you will want to grow out of this.

Myself however? I like to work consistently. Sometimes, I’ll have slow days to learn about other things. At the same time, I’ll make sure that things do get done.

I’ve developed a system for myself to do this. One of them is via time management. This enables me to live the life I want in my own terms most of the time. One example is I just took on biking and really like it, and therefore I’ll find some time for that too.

Let’s be honest here. Everybody has to work. However, we need to think about work differently.

We should treat our colleagues and leads as friends. Always have a nice presence, but also be firm. You also know your role, and going forward you should do it.

At the same time, don’t overdo it to the point of getting yourself killed, but just enough to the point where you feel it’s time to stop and leave it for the next day.

After that, get to your hobby, whether it will be working out at the gym, to shopping for groceries, etc….

And if that workplace won’t give that to you, then I would suggest to start looking elsewhere. As for me however, I’m happy where I am located. If you’re happy, it’ll just benefit you in the long run.

Therefore, we should always note that there’s always a limit to everything, but this process will make it to perfection.

Until next time!

Brian.

How to work with syntax other than your own

Hey readers!

So I just had a thought. Basically, everybody has a forte in what they do. Some are good at C# but can be rusty at Kotlin for example. Others are just plainly good at C.

We have to understand the whys. First of all, it is the experience that was gained in order to build something. Secondly, remember that they have been in the shoes of being a junior once before. Third, they’ve done it so many times to the point where they don’t need to think about it anymore.

Software engineering as a profession is also a practice. Developers begin to understand things better by repetition . Syntax also is a factor of that.

For example. When I first started my job at Keeper Security, I did not know anything about Reactive Extensions at all. After months of using it and practicing along, I became a lot more familiar with it and started to like it a lot more.

This past week, I was glad to have the ability of taking on another project that was different from my main one. It incorporated C# with a mix of C++ in it. Since I haven’t used pointers in a long time, this was a very nice refresher. Even though the effort was small, the impact on the other developer that had more experience with the project was nice enough to keep him productive.

How did I prepare myself? I read up on using pointers. Though I had close to zero-knowledge of the project by itself, I just asked very basic questions of what the project needed, why things have to be implemented this way or that way, and then formed a solution once the idea was clear. Afterwards, it was just going through documentation, or code samples from StackOverflow to get things working on-the-fly.

Therefore, taking things slow and then beginning to understand things is a great way to start. Just following along with the process eventually will lead you down to a stronger developer.

Until next time!

Brian.

Take on other projects and try to help

Hey everyone,

What’s that number one feeling when you don’t know something about other projects than the only one you are working on? If you guessed scary, then that’s correct!

Why? That project that has already been in production for quite a while now, has quite a huge code base. This means that the new developer has to jump in and try to understand what’s going on everywhere! Or does he?!

If he’s working on one to a few functionalities, then I’ll argue that he doesn’t have to know everything that’s going on.

He just has to know how to utilize the tools that is at avail to him! It might not be the same code nor the same language, but the main components still exist within programming! These are:
– the debugger
– resources along with other developers surrounding him
– Google search
– API documentations

Let me explain.

In programming, I will always look to the debugger once the application is at run time to see the values of what’s being put in and out. I have the call stack, or stack trace as well to find out what’s going on with the functionality, then start to figure it out from there. Once that happens, I can think of a solution and make an implementation for it.

Your resources – these are the people who you work with. Imagine jumping in onto a project with zero-knowledge at the first start. You’d take a much longer time in implementing a solution more than someone explaining things to you at the start. Therefore, once you get your questions answered, coding it out should be much faster. The theory that also translates into plain and simple English (in the case of America, your country might use a different language) will also ease out the process of what needs to be done.

Google searching! This will almost always be your friend when you’re stuck on a problem. There are solutions out there on StackOverflow or even just examples to give you an idea of the implementation. Try copy and pasting (if the provided example already works out of the box), and then work out your own solution that the requirement needs.

API documentations – a must, especially for those who will be doing development for that platform. One cannot imagine how many times methods or classes become deprecated over time that forces developers adapting to new implementations. Sure, some of us might be stuck on something, but if the debugger works for that problem, then I’d figure that out first.

Anyhow, whether it’s your own project, or another one that you’re working on which has been done by several others, these principles still apply.

That’s all I have. Until next time!

Brian.

Personal problems derailing the work time

Hey there!

I’m sure we all have our own personal lives as well. It’s just human nature.

Some of us can’t deal with them. Once we get to work, we suddenly get these not-so-great feelings. So therefore, we just don’t feel like doing anything, and then it ruins our day. Not good because there’s no productivity.

If you are having this, there are a few ways you can solve this problem.

First option – if it’s still worth being at work and you can somehow makeup for the time lost, just push a little more every 15 minutes. This is good since no time is being lost literally.

Second option – if it’s a really bad day, and you really need a feature done, then take between a 15 to 35 minute break and think 2 or 3 steps ahead. In this state, think about what will happen if things will or will not get done. Also, think of what the main priority is as well. Once the thoughts have been gathered, step back to the moment, and do the task list that you’ve just created one step at a time. I will recommend this method the most since almost no time is being lost, and you are still getting more productivity.

Third option – take a day off and forget everything that is work-related for the day. Now, work time has been lost, but that’s fine if there aren’t any priorities at all. If there is, then make sure there will be someone else to cover for you. Personally, I’m not a big fan of this option since my mindset leans more towards a workaholic, but if you REALLY need to opt in here, then do it. Your sanity and health needs to go first.

And like everything else, each one has its pluses and minuses.

The first or second options are good for working, but as we come home, we mainly just want our R&R time. This may be a temporary fix, but you’ll see the problem patterns repeat later…. Want to avoid it? Discuss it, and make sure that it will not happen again.

The third option is a helper that lets us do what pleases us. Of course, this can also get us carried away from doing anything chore related. So, going that little extra mile and sparing yourself some more satisfaction in your life won’t hurt anything really, as long as your boss knows that you need this time off. As the day comes to an end, again, try and discuss it, and change it.

On the way, you’ll end up living a much more fulfilling life that should be plain and simple.

Until next time!

Brian.