software engineer in a telecommunication company

hi everybody. this is çağatay, a software engineer, working for a telecommunication company. you are about to read my journey within this company as a software engineer. i’ll share my insights about the domain itself, my best practices, etc.

i would like to talk about different aspects of my daily life. so i’m planning to publish more than one thematic blog post. the main purpose of this series is to give you a brief knowledge about the telecommunication industry as well as showing the impact of my work as a software engineer.

i’m a member of the network infrastructure business group in this company. most of my customers are network engineers who are supporting the design, testing, and migration operations of isps and/or gsm operators. we can group all these operations under two categories: greenfield deployments and migrations.

greenfield deployment means there is no prior or existing network infrastructure to consider. building a new data center is a good example of this kind of operation. on the other hand, if you are switching existing infrastructure this means you are migrating.

both of these operations are highly costly in terms of resources and time. most of the time, the companies constantly observe their infrastructure needs and acts according to their 5 to 10-year projections. they want to have scalable and cost-effective solutions.

but sometimes, the unexpected comes. customers’ demands made peaks and they have to respond fast to keep these customers. otherwise, competitors may get involved. or one of the tiniest and deadliest creatures of the world locks us all inside our house and makes the isps projections are meaningless.

in these kinds of tough situations, time is way important than before. that’s where we, software engineers, come into the scene. i’m a member of the automation team within my organization. we are developing tools to assist network engineers and shrink the deployment time. from document preparation to config generation, there are too many manual processes that can be automated.

however, we need to act wisely. we need to understand the most impactful changes and react according to these. we can not win the battle on all fronts. like every other team in the organization, we also have limited time and resources.

after this brief introduction, i would like to give an idea of what we are gonna talk in the further blog posts. from now on i’ll use the abbreviation of this post’s title(seiatc) as a pointer for my future posts to show they are belongs to this series.

seiatc — how i’m using python ? i would like to give the brief knowledge about python itself. then i would like to talk about the libraries that makes my life easier. lastly, i want to talk about a bit of best practices in python.

seiatc — how i’m using git ? probably, this will be the most generic topic in the list. however i’m a big fan of git and i think it’s very powerful but sometimes i forgot to use it as a leverage. i’ll share my tips and tricks in this post.

seiatc — should i learn the network ? in this article i would like to talk about domain knowledge. as a software engineer what kind of domain knowledge makes my life better ? should i spend my time to gain more ?

seiatc — to debt or not to debt, different aspects of technical debt in the last article of this series i would like to talk about technical debt. and how i’m trying to make this as small as possible?

i hope all of these articles will made you more aware about the path that i’m walking. my goal is not to praise myself. i’m trying to show there is another way to use your software engineering skills.

i do not believe in rights and wrongs in professional life. if you are willing to pay the price, you can walk any path you want. there is nothing more satisfying than to know that you are on your way just because you choose it.