December
Ever tried to convert a PNG to SVG? Here’s why it is difficult to achieve this: the two formats fundamentally differ in how they represent images. PNG images are pixel-based, meaning they store visual information as a grid of colored pixels, whereas SVG images are path-based, relying on mathematical equations to describe shapes, lines, and curves. The challenge lies in translating the discrete, resolution-dependent data of a PNG into smooth, resolution-independent vector paths.
I was experimenting with pixel-art; trying to convert PNG and SVG formats to pixel art and stumbled across this issue above. To solve this, I am spending the next couple of weeks working on a application of Fourier series, a mathematical tool for approximating complex shapes with sums of sine and cosine functions. A Fourier series represents a periodic function as a sum of sine and cosine waves, each with specific frequencies, amplitudes, and phases, allowing complex patterns to be broken into simpler components. This might not be the best, most efficient solution, but a fun, educational exercise nonetheless.
Meanwhile, here’s a small pixel-art generator for SVGs and PNGs written in Rust: pixlr
Yatch, the RISCV simulator, is shaping up well. The forward pass and stalling work well with the current nop setup and bubble implementation. I am currently focused on fixing minor issues in the hazard detection pipeline and am yet to implement multiplexers for forwarding, branch prediction, and control mechanisms.
New York City is as beautiful as ever. The streets are filled with lights, and the air is filled with the sound of Christmas carols. The city is bustling with magic, love and happiness, and the festive season is in full swing. With the onset of 2025, I plan on taking a break from everything and visiting home, back in Bhubaneswar.
November
I finally built that 32-bit machine code simulator for RISCV in C++, Yatch which I was supposed to, do for Hacktoberfest. It took me a longer time due to my mid-semester in between. It supports a realistic five-stage pipeline for processing multiple instructions concurrently with measures for avoiding control and data hazards. It is currently capable of executing RV32I instructions, and I am planning to extend it to support RV32M, RV32A, and RV32F instructions. The project is still in its early stages, and I am looking for contributors. If you are interested in contributing, feel free to reach out to me.
Debugging Yatch inspired me to build a machine code decoder to analyze RV32I instructions and translate them to assembly. A standalone version is in the works which would be capable of encoding assembly to machine code as well. Check it out here: Barney.
Researching more on designing compilers and automata theory, I came across Conway’s Game of Life, a fascinating 0-player cellular automaton that follows simple rules to create complex patterns and is turning complete. Here’s my implementation of the Game of Life: Conway’s Game of Life. It’s exciting to see how the four rules are capable of creating such complex patterns, such that you can build a computer using them.
Back home, November ushers in the festive season, where the celebrations typically begin in September- October with Ganesh Puja, Navratri, Durga Puja, and Dussehra leading up to Diwali in November. Now, I am used to a different energy of festivities and celebrations. I lived my whole life in central-eastern India, and here in Odisha, West Bengal, and Jharkhand, the Navratri- Durga puja celebrations are the grandest, leading up to Diwali and Chhath Puja. The streets are filled with lights, and the air is filled with the sound of crackers. The houses are decorated with lights, and the markets are filled with people buying clothes, sweets, and gifts. We roam around days and nights, tuitions are shut down, school has a different energy, and the entire city is filled with love and happiniess.
Diwali is usually spent in phases. The first phase is when Diwali hasn’t begun, but the sale of crackers has started, and we cannot wait and get a bunch. We spend the next two days bursting crackers, and the challenge is to save enough to celebrate properly on the main Diwali Day. The Diwali Day is filled with love, laughter and happiness. New clothes, sweets, and family get-togethers are musts. The next day is spent visiting friends, bursting crackers with family, and playing cards. Now that I am not home, I feel that I am old enough to be let into the room that elders lock because they drink and gamble. I miss the fun, the laughter, the food, and the love.
Dealing with post-Diwali blues is morbid. The house is a mess, the lights are off, the sweets are over, and the crackers are burnt. The house is empty, and the silence is deafening. The only thing that remains is the memories of the fun we had and the love we shared.
Two months later, in December, we look back at the memories we’ve made, surprised at how quickly another year has gone by. I still sometimes do not fully understand how have I managed to get by, this year.
It’s hard not being at home. New York is lovely and feels just like home, but it’s not. To you, alone, in a different place, not being able to come home on Diwali, I wish it gets better. Happy Diwali, everyone!
October
Halloween is here, and fall in NYC is as beautiful as ever. The leaves are changing colours, and the days are getting cooler. Sunny days are the best. I’m adapting to the colder weather, the daily commute, and the steady stream of assignments. The workload is getting tougher, and my motivation to study is wearing thin. October has been full of learning and growth. I’m back to grinding on Leetcode, polishing my skills and trying to stay consistent. I’ve started cooking daily, adjusted my lifestyle, focused on eating healthier, and even lost 5 kg in a month through consistent workouts.
For the Hacktober fest, I wanted to take up Yatch: a machine code interpreter for RISC-V in Python/C++. The aim here is to learn more about compilers, the workings of CPUs, and computer systems architecture. This a great project to get started with if you’re keen to learn about low-level programming. I’d love to collaborate with others who share similar interests.
The academic pressure was so huge that I had zero time to take out from my schedule to work on any of these. I was heavily occupied with assignments, Leetcode practice, and staying on top of my fitness goals. I aim to wrap up these projects by the first week of November.
October’s highlight? Spending time with my cousin, a serial entrepreneur with multiple outlets of a popular mobile carrier provider here in Manhattan. Half the month was a first-hand crash course in consumer business as I watched him engage customers, close sales, and manage operations. I learned more about sales, customer acquisition and service than any book or course could have taught me.
I saw what makes customers want to spend, what makes them ick, and what they’re usually willing to pay. Confidence is essential. If they have a sniff that they are being charged extra, you’re done. You need smooth communication skills. I also realized how empathy can drive sales, and that upselling is a skill. Selling a $300 item for something valued at $100 requires finesse. People here often don’t negotiate; they prefer to pay for convenience and quality without haggling. India is a different ballgame. People there are more price-sensitive. Network providers cannot take the same approach in India as they do here.
Here’s the thing about the US: people are willing to pay for convenience. They don’t mind paying extra for a service that makes their life easier. In fact, they want to pay more for the latest iPhone, which has the best cameras, the best display, and all the new AI features, etc. India is entirely different; people there are more price-sensitive. They want the best deal and the best price, and they’re willing to haggle for it.
Here is a better understanding of how this business model works: iPhone on the house
This has given me insane insights into what it takes to run a consumer business, and how to sell. I’m still uncertain about how well these lessons will translate to tech, but I’m excited to try them out.
September
Settling in here, in New York City, has been fun and growthful. The worst part of staying away from India is not having access to a myriad of cheap labour. I have to do everything myself now. I must cook, clean, do laundry, commute using public transport, and manage my finances until I find some form of employment.
Living in Jersey City gives me access to bigger, wider rooms with amazing skyline views, and a lot of greenery. The rent is cheaper, and the cost of living is lower. Jersey City is very clean and quiet, away from the hustle and bustle of NYC, and has a lot of parks and greenery. I stay on the bank of the Hudson River, and the view is amazing. I can see the entire skyline of Manhattan from my window. The state taxes are lower, and access to Indian communities is easier. There are a LOT of Indians staying in New Jersey, and I can find Indian groceries and restaurants easily.
The only downside is that I have to take a subway to reach NYC, and then transfer to another subway to Brooklyn. Midtown Manhattan is a 5-minute ride across the river, and Brooklyn is a 30-minute subway ride. The commute can be a bit overwhelming at times. The peace, the size of my room for the rent, the views from the window, and the facilities in the locality make up for it.
September begins with my first semester at NYU. The culture here is very diverse. The classes are long, the assignments are overwhelming, and the professors are very knowledgeable. Most are part-time lecturers with a full-time job at multi-national tech companies. Although, there is an “accent” problem; it is difficult to understand some of them at times, but it is a learning curve.
I have taken up three courses this semester: Data Structures and Algorithms(the same old kingmaker terrorizing SEs all across the world xD), Computer Systems Architecture( an advanced version of COA from bachelor), and Internet Architecture and Protocols( focusing on Internet architecture from CN in bachelors). The subjects are interesting but the assignment overload is intense.
Meanwhile, I am planning to restart a couple of projects that align with the subjects I have taken up, the distributed file system, and the compiler.
Looking forward to an amazing Semester here at NYU, New York City.
August
Moving to a new country is tough. The past couple of weeks have been really busy and exciting; arranging funds, exploring scholarships, looking for housing, and overall planning the move. Rachna and I are leaving together for NY, and this makes the transition a little bit easier. The other difficult part of living this dream is leaving my family and friends behind. I have been feeling extremely homesick since I arrived here, and I miss my friends and family a lot.
July
Three biggest updates:
- I got accepted into NYU( New York University ) for Masters in Computer Engineering in the Tandon School of Engineering. I am moving to NYC!
- Back to the startup life; building datingai.pro, your perfect wingman.
- With all good things, comes an end. I am leaving RadiusAI, and India.
I am back to the startup drill. Staying up late, shipping features, building, failing, talking to customers, discussing our GTM strategy, and building the product, have been the highlights of the past month. I am excited to be a part of the founding team at datingai.pro. Including me, there are five of us in the team now.
A sad part of all of this is leaving RadiusAI. I have been with the company for seven months and have loved it here. In the end, difficult decisions have to be taken, and while this was an amazing learning experience and a great place for growth, it’s time for me to leave, take flight, and build my own nest.
I am going to miss my team and the office. The weekend get-togethers at pubs and breweries, and me coaxing everyone to come out for lunch and play carrom have been the highlights of my time here. From GitHub actions deployment failures and optimising memory in my Rust applications to compiling cross-platform binaries and multi-threaded applications and fixing Kafka and RedPanda issues, I have learnt and grown a lot as a software engineer. I will be forever grateful to Rachna and indebted to Ram for getting me into the team and making this happen.
To the team, I will miss you guys, and I hope we cross paths again. Here’s to the good times and the memories we made. 🥂!
The end of June and the beginning of this month was an extremely emotional goodbye, as:
-
I met with my childhood best friends from all phases of my life, toghether, had an amazing weekend in Mumbai, and bid adeiu to them. It was a nostalgia trip, and it felt very content to see them become friends.
We reminisced about our school days, gossiped about who dated whom, and laughed about the stupid things we and our teachers used to do. We talked about our JEE preparation days, locked our home, unable to fous with all the pressure surmounting us and finally giving up and buying a gaming console instead of shutting down TV. Our college days, and how we used to bunk classes, and go to the beach, and how we used to get drunk and watch movies.
I have been friends with Ankit since 2012 now, with Vishnu since 2016, and with Abinash since 2019 now. Getting together, drinking and talking about our lives, our dreams, and our future, was an extremely heartfelt and emotional experience. Goodbyes are tough. This is the best farewell gift I could have ever asked for; them, just being there, and being my friends.
-
I went to Goa with my college friends, Tushar and Mahak, and it was amazing! It was a road trip from Bangalore, and it took us 10-11 hours to reach there. We stayed at a AirBnb, spent three and a half amazing days there before returning back to Bangalore.
The first day was tiring, we just hung out in the Bnb room, had amazing seafood in a beach shacks and just sat and chilled on the beach. The second day was exploring North, and Old Goa. We webt to forts, beaches, lighthouses, trekked, and found cliffs from where we could see the entire Goa, and in the evening, we explored the old city, monuments and architecture. The third day was spent in South Goa, exploring the rocky beaches, hidden beaches, and the best sunsets. We kayaked on the backwaters, and had lunches in beach shacks.
The last day was churches, and shopping, and we returned back to Bangalore. We had amazing food, and drinks, and we danced, and sang, and laughed, and had the best time of our lives.
-
I went on a major road trip with my dad from Bangalore to Bhubaneswar. We travelled through 1500 kms, and it took us a day and a half with a small halt near Nellore. I was shifting, and I returned home with a bunch of stuff that I wanted to keep. The most important on my bucket list was attending Ratha Jaatra before leaving, and I also had to sell my car. I had to meet my family, and friends, and say goodbye to them. I had to pack, and plan, and prepare for the move. I had to get my visa, and my tickets, and my insurance, and my housing, and my bank accounts, and my sim cards, and my luggage, and my documents, and everything.
-
The entire shifting from Bangalore journey ends with me and mom in a TN tour. We visited Pondicherry, Rameswaram, Madurai and other places.
June and July had me cover entire western to eastern India, from beaches to ghats, the road trips were dreamy, magical, and I would cherish them for a lifetime.
June
May was hectic. I turned 24, went back to home for a week, and spent an amazing time with family and friends. I am back in Bangalore now, and life is busy.
Back in Bangalore, I finally got to building my own budget gaming PC with Akash, a senior from office. Coming from a PS5, a gaming PC did not make sense initially. I wanted to play competitive FPS( first-person shooting ) games with my mates but Valorant and CS2 are not cross-play compatible or present on PS, yet. A minimum budget windows CPU build seemed apt.
I went with the AMD Ryzen 5 3400G with Radeon RX Vega 11 because it has decent benchmarks and has a built in GPU and I did not want to spend on an additional GPU now. This CPU is powered by two 8GB DDR4 RAM and the xmp profile set in BIOS to make them run at 1600 Mhz( max capacity ) each. The build is powered by a Gigabyte B450M DS3H V2 motherboard, without a wireless module, and a MSI cabinet with 6 fans. I am yet to achieve the maximum performance out of this build, and will update here soon.
I am looking to hire a SE intern at my office, RadiusAI. Feel free to reach out if you are interested.
My current endeavours keep me occupied, and don’t leave me with much time to work on personal projects. I am currently working on a couple of projects at RadiusAI. These include building a developer tooling platform in Python for RadiusAI, and a multi-process simulator in Rust to read, sync simulate and handle messages from Kafka and RedPanda. The last project is insanely complex and exciting.
May
I built a dribble portfolio to showcase some of the posters I designed a few years ago. The next would be adding more posters, UI designs, and illustrations here. Other project updates include minor improvements to Resoc and Zuzu.
My family visiting me returned back home. The most dreaded feeling is when you have to say goodbye. I have always been a lot attached, and it was painful. Before leaving, we decided to get matching tattoos! Here are mama and baby dinausors on our wrists.
April
I bid my best friend a final goodbye as he left Bangalore permanently. He decided to quit his job and follow his passion. The current economic climate is not conducive to his interests, and the job market is extremely rough. A sense of this weird melancholy prevails over me. While I applaud his courage, a part of me wants him to stay and hunt for jobs here. I am going to miss our late-night conversations, our shared interests, and our shared dreams. We started off watching stand-up comedy in the first year of college. From college politics and friendships to getting drunk and watching Rockstar. From walking Rio to getting high and watching Batman. From internships and long car rides to getting jobs and going on trips to Mumbai, Mangalore, Pondicherry, and where the hell not. We have been through a lot together. I am going to miss him a lot. Before leaving for the airport we decided to get something together and have one last meal in Bangalore; and so we went into the Apple store to get something together, and for the restaurant I chose KFC considering that he is a vegan xD. We plan on getting the WWE2k24 and playing it together. A blue summer awaits.
April is all about spending time with my family visiting me in Bangalore. We had to visit some collges, thus we had to travel a lot. A fast-paced, exciting adventure to Gujrat and Uttarakhand ends this fortnight.
We went to Ahmedabad, Dwarka, Somnath, Rishikesh, Haridwar, and Dehradun. The trip was a mix of adventure, culture, and spirituality. The best parts were the river rafting, and Ganga Aarti in Rishikesh, and the visit to the old city, Dwarka, the residence of Lord Krishna. Back in bangalore, looking forward to the same old monotony.
I am not planning to build anything new as of yet. Work consumes most of my time. Mostly invested in research, I spend time exploring business, product, and tech ideas. The ultimate goal is to build something bigger, unique, and sell it, or build a company around it. Here’s an amazing article that I recetly came across by Paul Graham about how Reddit got started. He says, “Reddit the site (and now app) is such a fundamentally useful thing that it’s almost unkillable.”. I am looking for something like that. Something that is fundamentally useful, and unkillable.
March
An hectic beginning to the month; I just returned, and had a terrific week back at home. All of my best friends were back, together, and we meandered through familiar haunts, roaming around, exploring places, and restaurants, and talking about our current lives. The weekend after that was spent in Pondicherry, with Abinash. We explore bakeries, french architecture, Auroville, the beach, and the city. After a week-long hiatus with friends and family, and an excruciatingly tiring trip to Pondi, I am back in Bangalore, looking forward to a productive month.
Not planning on taking up much work, I have thought of taking an hour of my day to figure out where this is all going. March is supposed to be an interlude, a time to reflect and recharge. I have long-term goals, and to be able to accomplish them, I need to be more disciplined and focused. The path must be streamlined. This daily routine will help me to stay on track and keep my goals in sight. This month would be spent planning out the next four odd years. My short-term goals would be to focus on my fitness journey and improve my writing. Writing has always been a passion of mine, serving as a conduit for connecting with others and sharing my insights. Lately, I’ve been particularly prolific, and I have been writing a lot.
March ends exciting. I finished up with NiceDear, a dynamic open-source avatar generator that crafts unique avatars based on user input. Looking to upgrade my desk setup, I finally made the switch to a fully customisable mechanical keyboard, and an ergonomic mouse. I initially planned on going with linear switches, but I ended up with tactile ones. They are pre-lubed, and the PCB is covered with a layer of foam. I am using the fully hot-swapable Keychron K2 Pro, with banana switches, aluminium casing, south-facing RGB lights, and a custom keycap set. The mouse is the Logitech MX Master 3s Mac, white. It has an 8,000 DPI optical sensor that can track on virtually any surface, including glass. I have mapped the horizontal scroll-wheel, and the back, and forward buttons to custom schortcuts. The next step would be upgrading my desk mat.
Feb
I went on a trip to Mangalore with Abinash for a night. I had been occupied with a lot of things lately and this was a much-needed escape. Back in Bangalore life is slow and boring. A few friends came over on the weekend and we had a ton of fun. This new place at HSR Layout, Plan B, is my go-to hangout destination. They serve the best damn chicken wings in town. Looking towards to chilling out with my friends and family, back home this last week.
Here’s how Dough is shaping up:
If you’re eager to dive into the world of Rust and looking for a project to contribute to, Dough presents an exciting opportunity. Here’s a breakdown of what’s currently not working and areas that could benefit from your expertise:
- Fix scrolling issue in highlight mode:
- bug Over Scroll in infinite scrolling
- feat Skip empty lines in highlight mode
- bug custom aligner adds empty lines after text-block alignment
- feat. Hot Module Reload
- feat. Add support for the maximum width and height of the terminal. (Write a word wrapper)
- feat. Add comprehensive support for common Markdown elements.
- feat. Enhance rendering for complex markdown elements like links within headings or lists, blockquotes, and tables.
I am looking for contributions from peers regarding the pending issues, making this a more robust open-source project.
At Radius AI I am involved in building an async uptime monitoring service using Rust, and also a concurrent heartbeat service in Python. I will update this page with more details soon.
Got a new idea about content summarization and accessibility (codenamed ‘Hoid’). We are still in the early stages of the idea. I might share more details soon. Hoid has a lot of moving parts. Currently, I am focused on the market research. I believe that tech has become a commodity. There isn’t anything that you cannot build using tech anymore. Money is in solving the right set of problems.
A sneak peek into Hoid:
- content aggregation; recommendation engine
- search engine
- bookmarks, and TL;DR, summarization
Meanwhile, I am exploring functional programming languages and also planning to build a distributed file systemin Rust.
Jan
Happy New Year, muchachos! I hope you had a good one. I just returned to Bangalore after a much-needed break in my hometown. Leaving home and returning to the city was a bit of a bummer, but such is life! The dreaded omicron variant is wreaking havoc in the city. I am starting a new career at RadiusAI as a Software Engineer, and I am pretty stoked :D
Here’s an improved version of Llama Index’s sub-querying engine used to generate SQL from Natural Language: Neak.
Coming onto Dough: a rich, modular, and customisable content generator, crafted in Rust, here’s everything you need to know. This is a breakdown of the tasks I was working on:
v2:
- Improving the rendering engine:
Add a refresh feature while rendering slides- Hot Module Reload( FIX )
Add support for rendering nested syntax- Add support for the maximum width and height of the terminal. Write a word wrapper.
Address the color storage issue for multiline elements, ensuring ANSI escape sequences are properly stripped: Refine color correction post-alignment- Enhance rendering for complex markdown elements like links within headings or lists.
lists.- blockquotes.
- Provide comprehensive support for common Markdown elements.
Improve the rendering of thematic breaks
Improve the design language.- Image support for terminals with image capabilities is pending. (Kitty, iTerm2, etc.)
Syntax Highlighting in code blocksImprove the performance of syntax highlighting. The current implementation is CPU intensive. Use a different library for syntax highlighting, or parallel threads to improve performance.
Custom text alignment: A regex match for individual text alignmentImprove the alignment of segments of text.
Implement running code blocks on separate threads and displaying results in the current console.
The past year: The daunting realm of adulthood; 2023