Skip to content
View a2nath's full-sized avatar

Block or report a2nath

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
a2nath/README.md

๐Ÿ–– Welcome Carbon Unit! (human)

I'm Abhimanyu, a passionate developer and builder of good things โœจ(the goal). Some folks call me "A Bee" or Obhi, who truly believe in me and trust me to be working on real-world solutions with a major positive impact ๐ŸŒ ๐ŸŒ . While that may be true, I usually work on stuff that fascinates me the most and which eventually turns out to be impactful and interesting enough that people take over it to further research and development. Iโ€™m always learning new technologies and improving my skills in computer science, and computer games. ๐ŸŽฎ

๐Ÿ‘ฝ About Me

Current Projects

Iโ€™m currently working on innovative projects in Linear Phase Array that visualizes antenna patterns for linear scan arrays. Another project that has always fascinated me is wireless over long distances Wi-Fi LongDistance which demonstrates the feasibility of packets traveling over several kilometers if frequency and propagation-times were not an issue (modified IEEE802.11 communication protocol) over VHF/UHF bands



My Coding Breakdown

I love writing C++ projects with scripted wrappers. Something close to low level such as C and C++ helps me with performance code that will run complex calculations quickly such as in simulations and hardware modeling. Any ASIC or IP modeling helps me simulate the part of the chip behavior that is valuable in the design and analysis phase. Then wrap it up with python, bash and other scripting languages to compile and run the code (cmake, bash).

Top Languages

Note: This is a general breakdown; actual contribution percentages may vary.


Lessons learned from the industry

If you buy a Lamborghini, you have to maintain the Lamborghini

I have a personal philosophy of keeping things simple, instead of overcomplicating things that will require re-learning what the code does! And not to mention the amount of time in maintenance of complicated code when dependent things break. In my 10+ years of working in various large tech companies including Google, Qualcomm, Open Text, and the Canadian Government, I learned some truly enlightening, intuitive as well as contradictory things. As you might expect, projects evolve from their infancy and look like this:

... and eventually reaching a state where in 5-10+ years of development time, 100s of engineers are involved to maintain a large-scale unsustainable solution; growing uncontrollably from various having to meet targets, feature releases, and aim for new goals of the organization. In the figure below, a trireme has 3 rows of rowers on each side, which can bring the total crew count to 150-200 that are actively involved in running this ship. Just imagine.

As the project grows further, it gets more and more difficult to scale up the modules. Moreover, the concerned person or the tech lead who has a say in the project timeline has to step up and initiate a cleanup of the code, also called the tech debt. One person cannot do this which further warrants the help of another entire team that becomes responsible for the tools and deployment of the software going forward. Now to keep things running smoothly in a trireme, what if I said that we will need to create a large floating platform that's connected to the ship by several cables and ladders so that they help organize the daily operations?

If there isn't already a consecutive delivery due just after a major delivery that got done from a 10-month grind, the person leading the team has to step back and look for slack in the project timeline where this tech debt can be paid off as fully as possible. And oftentimes in the US working culture and tech sector, back-to-back projects are a thing... so remember, don't overcomplicate stuff or else if you buy a Lamborghini, you have to maintain the Lamborghini


It is Counter-Intuitive

Maybe the engineers in the team won't have the time to pay this debt fully, but despite the challenge, the goal is to make things run smoothly in the future and more efficiently when onboarding new contributors to the project. Because let's face it, training costs money. Training takes away the valuable time that could have gone towards the development and testing of new features. If we did things right the first time and added more slack in the project timeline, this is the evolution of a large-scale, LEAN project:

The engineering hours spent during that slack time (not the messenger ) are worth more than the chaos of trying to connect the various cables and ladders from neighboring teams and working around minefields that if touched accidentally, will cause the whole stack to explode. Yes, I'm talking about both a trireme just as much as a large codebase.๐Ÿฅด

Here's the evolution of a well-developed project with a fully mature automation and regression toolchain, validation pipeline, CI/CD, etc. (in my opinion ๐Ÿ‘ฝ). Yes, it does look super simple, and yet it can be complex the more a developer in your team digs deeper, but the "feeling" is never that it's complicated.

It is counter-intuitive, I know.

In the ASIC industry, by doing this, we're also cutting down clock cycles and more importantly ASIC power. Less code that passes the test coverage including edge conditions while reducing the chances of bugs appearing or covering more edge conditions is a win! ๐Ÿ‘ Less code is a smaller attack surface, and therefore, less is truly more. ๐Ÿ’จ

Back to the README

Collaborate with me

If someone has the statistical probability model for the unit conversions in the original Age of Empires, please dm me! ๐Ÿ“ข I would like to look at the algorithm and plot some probability graphs against the modern versions for fun. โš”๏ธ ๐Ÿ›ก๏ธ ๐Ÿ—ก๏ธ


Just kidding, we can collaborate on just about anything that's interesting.

Fun fact

I hyperfocus on computer graphics, and have a pretty strong obsession with game engine stuff, but I hope some alternate version of me in this multiverse is an Age of Empires developer at Forgotten Empires, who is enjoying everything that life has to offer. Here's an example of a house I made in Unreal Engine 4.0 with a fireplace and some cozy chairs. Because most of my time is taken by ASIC stuff, this is long overdue for me: to make a much larger game setting, add more sprites and the greatest pathfinding algorithm that'll allow NPCs to walk to their destinations without micromanaging, watchdog timeouts, corrections from the game itself, as well as react appropriately to the player.


Connect with Me ๐Ÿ“ฌ

Thanks for visiting my GitHub profile, and reading some of the preachy stuff that probably does not concern you (yet), and those who care may be able to keep reminding me about these early aspirations and struggles. Feel free to check out my repositories and let's connect!

LinkedIn

Pinned Loading

  1. Linear-Phased-Array Linear-Phased-Array Public

    This project demonstrates a design methodology for optimizing high-quality communication between base stations and clients through enhanced signal-to-noise ratio (SNR). It leverages linear phased aโ€ฆ

    C++ 1 1

  2. Long-Distance-Wi-Fi-802.11 Long-Distance-Wi-Fi-802.11 Public

    C++

  3. Video-Transcribe Video-Transcribe Public

    Using OpenAI's whisper or whisper-faster and ffmpeg take a list of video and audio files and provide subtitles

    Python 2

  4. Unreal-Engine-Project Unreal-Engine-Project Public

  5. File-Reading File-Reading Public

    Automation testing and function calls for projects involving IO subroutines and file-reading.

    C++

  6. Investments Investments Public

    Investment Scripts

    Python 1