<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: oraguy</title><link>https://news.ycombinator.com/user?id=oraguy</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 06 Apr 2026 03:38:36 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=oraguy" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>The 25 million lines of code is only the source code of Oracle Database written in C.<p>The test cases are written in a domain specific language named OraTst which is developed and maintained only within Oracle. OraTst is not available outside Oracle. The OraTst DSL looks like a mixture of special syntax to restart database, compare results of queries, change data configuration, etc. and embedded SQL queries to populate database and retrieve results.<p>I don't know how many more millions of lines of code the tests add. Assuming every test takes about 25 lines of code on an average (every test used to consume about half of my screen to a full screen), we can estimate that the tests themselves consume close to another additional 25 million lines of code to 50 million lines of code.</p>
]]></description><pubDate>Thu, 15 Nov 2018 01:29:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=18456117</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18456117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18456117</guid></item><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>I have not found this to be true at all. I have seen both US and Indian developers adding good code as well as ugly code to the Oracle Database product.<p>The actual damage was done much before I had joined Oracle. It appears that somewhere in the early 2000s, the Oracle codebase went from manageable to sphagetti monster. The changelog showed more changes from US developers than Indian developers at that time. Once the damage was done, all developers whether from the US or India now need to follow this painful process to fix bugs and add features.</p>
]]></description><pubDate>Wed, 14 Nov 2018 17:37:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=18451785</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18451785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18451785</guid></item><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>I was given 5 minutes to ask questions after each round of interview. That part was ordinary too. That's what most of the other companies do (FAANG or otherwise).</p>
]]></description><pubDate>Wed, 14 Nov 2018 12:49:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=18449436</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18449436</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18449436</guid></item><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>> Tests that run for 30 hours is an indication that nobody bothered writing unittests.<p>Yes, they were not unit tests. There was no culture of unit tests in the Oracle Database development team. A few people called it "unit tests" but they either said it loosely or they were mistaken.<p>Unit test would not have been effective because every area of the code was deeply entangled with everything else. They did have the concept of layered code (like a virtual operting system layer at the bottom, a memory management layer on top of that, a querying engine on top of that, and so on) but over the years, people violated layers and wrote code that called an upper layer from lower layer leading to a big spaghetti mess. A change in one module could cause a very unrelated module to fail in mysterious ways.<p>Every test was almost always an integration test. Every test case restarted the database, connected to the database, created tables in it, inserted test data into it, ran queries, and compared the results to ensure that the observed results match the expected results. They tried to exercise every function and every branch condition in this manner with different test cases. The code coverage was remarkable though. Some areas of the code had more than 95% test coverage while some other areas had 80% or so coverage. But the work was not fun.</p>
]]></description><pubDate>Wed, 14 Nov 2018 12:05:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=18449230</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18449230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18449230</guid></item><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>That would have been fun but in reality there was no downtime. Developers like me were expected to work on two to three bugs/features at a time and context switch between them.<p>If I submit my test jobs today to the farm, the results would come one or two days later, so I work on another bug tomorrow, and submit that. Day after tomorrow, I return to the first bug, and so on.</p>
]]></description><pubDate>Wed, 14 Nov 2018 12:00:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=18449214</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18449214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18449214</guid></item><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>On the contrary, the interview was an ordinary one. The screening round consisted of very basic fizzbuzz type coding ability checks: Reversing a linked list, finding duplicates in a list, etc.<p>Further rounds of interviews covered data structure problems (trees, hashtables, etc.), design problems, scalability problems, etc. It was just like any other interview for software engineering role.</p>
]]></description><pubDate>Wed, 14 Nov 2018 11:59:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=18449207</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18449207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18449207</guid></item><item><title><![CDATA[New comment by oraguy in "Ask HN: What's the largest amount of bad code you have ever seen work?"]]></title><description><![CDATA[
<p>Oracle Database 12.2.<p>It is close to 25 million lines of C code.<p>What an unimaginable horror! You can't change a single line of code in the product without breaking 1000s of existing tests. Generations of programmers have worked on that code under difficult deadlines and filled the code with all kinds of crap.<p>Very complex pieces of logic, memory management, context switching, etc. are all held together with thousands of flags. The whole code is ridden with mysterious macros that one cannot decipher without picking a notebook and expanding relevant pats of the macros by hand. It can take a day to two days to really understand what a macro does.<p>Sometimes one needs to understand the values and the effects of 20 different flag to predict how the code would behave in different situations. Sometimes 100s too! I am not exaggerating.<p>The only reason why this product is still surviving and still works is due to literally millions of tests!<p>Here is how the life of an Oracle Database developer is:<p>- Start working on a new bug.<p>- Spend two weeks trying to understand the 20 different flags that interact in mysterious ways to cause this bag.<p>- Add one more flag to handle the new special scenario. Add a few more lines of code that checks this flag and works around the problematic situation and avoids the bug.<p>- Submit the changes to a test farm consisting of about 100 to 200 servers that would compile the code, build a new Oracle DB, and run the millions of tests in a distributed fashion.<p>- Go home. Come the next day and work on something else. The tests can take 20 hours to 30 hours to complete.<p>- Go home. Come the next day and check your farm test results. On a good day, there would be about 100 failing tests. On a bad day, there would be about 1000 failing tests. Pick some of these tests randomly and try to understand what went wrong with your assumptions. Maybe there are some 10 more flags to consider to truly understand the nature of the bug.<p>- Add a few more flags in an attempt to fix the issue. Submit the changes again for testing. Wait another 20 to 30 hours.<p>- Rinse and repeat for another two weeks until you get the mysterious incantation of the combination of flags right.<p>- Finally one fine day you would succeed with 0 tests failing.<p>- Add a hundred more tests for your new change to ensure that the next developer who has the misfortune of touching this new piece of code never ends up breaking your fix.<p>- Submit the work for one final round of testing. Then submit it for review. The review itself may take another 2 weeks to 2 months. So now move on to the next bug to work on.<p>- After 2 weeks to 2 months, when everything is complete, the code would be finally merged into the main branch.<p>The above is a non-exaggerated description of the life of a programmer in Oracle fixing a bug. Now imagine what horror it is going to be to develop a new feature. It takes 6 months to a year (sometimes two years!) to develop a single small feature (say something like adding a new mode of authentication like support for AD authentication).<p>The fact that this product even works is nothing short of a miracle!<p>I don't work for Oracle anymore. Will never work for Oracle again!</p>
]]></description><pubDate>Tue, 13 Nov 2018 17:44:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=18442941</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=18442941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18442941</guid></item><item><title><![CDATA[Oracle congratulates user for being the 2000th follower of OracleJET on Twitter]]></title><description><![CDATA[
<p>Article URL: <a href="https://twitter.com/OracleJET/status/919614538328129536">https://twitter.com/OracleJET/status/919614538328129536</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=15490736">https://news.ycombinator.com/item?id=15490736</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 17 Oct 2017 13:35:16 +0000</pubDate><link>https://twitter.com/OracleJET/status/919614538328129536</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=15490736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15490736</guid></item><item><title><![CDATA[New comment by oraguy in "AIM will shut down after 20 years"]]></title><description><![CDATA[
<p>The entire Oracle company still uses Zimbra for email.</p>
]]></description><pubDate>Fri, 06 Oct 2017 17:45:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=15418717</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=15418717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15418717</guid></item><item><title><![CDATA[New comment by oraguy in "Why Isn’t Agile Working?"]]></title><description><![CDATA[
<p>I worked at Oracle for a few years in their database development group (internally known as "RDBMS"). You would be surprised to know that they follow a strictly waterfall process to perform database development. The results are horrible.<p>Process:<p>- Let us say a release is planned for January 2018. Projects are decided around June 2017. By the way, In Oracle RDBMS, a project essentially means anything more than 5 lines of code change.<p>- Each developer is assigned a project.<p>- The developer is given a deadline to write a design spec by August 2017. Developer spends 3 months in writing a design spec. A lot of bike-shedding occurs for those 3 months on mundane topics like whether a certain timeout should be 0.5 seconds or 1 second.<p>- Then the developer is given another deadline, say September 2017, to write a functional spec. More bike-shedding.<p>- Then the developer is given yet another deadline, say October 2017, to write a test spec. More bike-shedding.<p>- 5 months have passed and not a single line of code has been written. But 3 large documents with about 10000 words in total and another 10000 words of bike-shedding has been written.<p>- Finally, the developer is given another deadline, say November 2017, to complete writing the code with tests.<p>Results:<p>- Developer writes 10 lines of code and checks in their code by November 2017. Project completed!<p>- Everything looks fine for a few days.<p>- About a million or so tests run over the next few weeks. 1000s of tests are found to be broken. So much for 5 months of spec reviews! (Note: This happens for every such project, about 20 or so projects in a year.)<p>- The bugs are distributed to various developers. It takes them another 12 months to figure why each test broke, how tightly every layer and corner of the code is coupled with each other, and how they are solving the biggest puzzles of their lives: How to fix one thing without breaking 10 more things?!<p>- The original design, functional and test specs go out of the window. This is really bad time. Management is unhappy. Larry is unhappy! We got to fix those tests, no matter what it takes to fix them. Radical decisions are made as developers discover clever tricks to fix one part of the code while somehow finding a way to keep the other part of the code happy.<p>- 12 months have passed. It is November 2018 now! (Remember, the project was scheduled to be released 11 months ago!) It looks like everything is fixed. The whole 10 line project is somehow held together by tests. Nothing appears to be broken. But nobody is really sure.<p>I am glad there are other saner companies where people understand that waterfall model development is flawed and embrace agility. Having done waterfall for a few years, agile development is a breath of fresh air where I can spend more time writing code than writing documents, where I can evolve the code based on actual user feedback rather than feedback from bike-shedding by people who have not contributed a single line of code to the software.</p>
]]></description><pubDate>Thu, 05 Oct 2017 10:30:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=15408031</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=15408031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15408031</guid></item><item><title><![CDATA[New comment by oraguy in "Why I Quit Oracle (2010)"]]></title><description><![CDATA[
<p>I am sure there are many stories where Oracle sues its employees. Take a look at this one for example.<p>* <a href="http://bangaloremirror.indiatimes.com/bangalore/cover-story//articleshow/21355000.cms" rel="nofollow">http://bangaloremirror.indiatimes.com/bangalore/cover-story/...</a><p>* <a href="http://www.thehindu.com/todays-paper/tp-national/tp-karnataka/i-have-no-regrets/article2921919.ece" rel="nofollow">http://www.thehindu.com/todays-paper/tp-national/tp-karnatak...</a><p>TL;DR - An employee found fire safety violations in one of its Bangalore offices. He reported the violations internally. Nobody addressed the violations. He reported the violations to the cops. Oracle sacked and sued the employee.</p>
]]></description><pubDate>Mon, 04 Sep 2017 04:06:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=15165651</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=15165651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15165651</guid></item><item><title><![CDATA[New comment by oraguy in "Why I Quit Oracle (2010)"]]></title><description><![CDATA[
<p>Because someone is incompetent?<p>Oracle is a safe haven for incompetent managers and so called team leads. I know a few ex-colleagues of mine who left Oracle to join other companies and were shocked to see how fast and agile other companies were.<p>It is not in Oracle's DNA to hold managers accountable or fire them for management blunders or shoddy management. So when some of these managers and team leads from Oracle joined other companies, they found much to their surprise that they were answerable to higher management for the state of the project they were managing. They could not keep up with the pace of development or having concrete responsibility, and returned to Oracle to live a purposeless but relaxed life where one would earn less but otherwise thrive in the company by doing little to no actual work.</p>
]]></description><pubDate>Mon, 04 Sep 2017 03:44:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=15165568</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=15165568</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15165568</guid></item><item><title><![CDATA[New comment by oraguy in "Why I Quit Oracle (2010)"]]></title><description><![CDATA[
<p>Let me share a few anecdotes myself.<p>- A couple of years ago, the company was providing us Oracle branded corporate diary for free. An employee was allowed to order one diary. The cost center would pay the price of the diary which if I remember correctly was $3.00. There were many managers who did not allow their departments to order this diary in order to save that $3.00 per employee for their cost centers. "But I want the Oracle branded diary!" "No, we need to save money!" "I will be proud to show the Oracle branded diary to my family" "No, we need to save money!" "Then why bother providing the diaries in the first place?" "No, we need to save money!" And all this commotion happened when Oracle was spending millions of dollars in legal fees for its lawsuit against Google.<p>- In a meeting with a very senior VP of our department, we asked our senior VP why there were no fun activities in our team, like a day out for fun, or even something as small as a team lunch. The response by the senior VP to the best of my recollection was, "Think not what the company can do for you. Think what you can do for the company. You guys are incredibly privileged to work for Oracle. What more can one need? This is not the time to think about fun. This is the time to think how you can reduce the number of bugs in our product." It was no surprise later that within a year, all the smart developers of our team left to other companies who not only pay better than Oracle, but also offer diaries without fuss, and have team lunches and other fun events.<p>Disclaimer: Worked for Oracle for 3 years. Will never work for Oracle again.</p>
]]></description><pubDate>Mon, 04 Sep 2017 03:27:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=15165511</link><dc:creator>oraguy</dc:creator><comments>https://news.ycombinator.com/item?id=15165511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15165511</guid></item></channel></rss>