Anant Corporation Blog

Our research, knowledge, thoughts, and recommendations about building and leading businesses on the Internet.

Summer with Anant

This summer I was fortunate enough to be able to join Anant. Coming from primarily a research background, I had little experience of how companies run. This was a great experience for me in learning about the development cycle, how companies streamline workflow, and much, much more about day-to-day operations. And of course, meeting the team at Anant was incredible and I met some fantastic people who taught me a lot, from getting ready to go to college to general life advice.

 

While here, I specifically worked on the Mindy project. Mindy aims to aggregate different types of listings, such as jobs, skills, or companies, and categorize them to automatically generate connections. This summer, we focused on stage 1, which involves scraping job listings from as many sites as possible and then extracting information. This extracted information, such as social media tags and the type of the listing can be used for the pairing portion when combined with algorithms that do similar tasks for other types of data.

 

While I had done data science and machine learning before, I had never created a front-end display or a pipeline for the whole process like I had to do for Mindy. As a result, I got to explore some very cool technologies like elasticsearch and React to create a complete product. I also was able to go much more into depth in natural language processing, as I wrote about in a previous blog post.

 

At the end, I was able to help create a system that can automatically scrape information from multiple websites, process it, extract additional information from descriptions, and categorize it. This was all placed into a slick front-end, allowing for easy searching of jobs. And then came docker. Perhaps one of the more daunting and involved things I’ve done, learning to dockerize and deploy was quite a challenge. However, at the end, we were able to do it all successfully, giving easy pushing to servers and letting anyone, anywhere, use our platform in a handful of minutes.

 

Beyond Mindy, I learned a lot about how a business operates. Seeing how agile works, with sprints and trello integration, was a really new process to me and I was amazed at how effectively it was able to aid communication. It was also very interesting to work in a professional environment and the Anant weekly co-works were very cool.

 

This last summer was an experience I will never forget. From freezing with a broken AC to eating lunch by the canal to getting eaten alive from mosquitos, I wouldn’t miss a single moment of it. Anant taught me how to run a business, and how to run it well.

A Summer of Learning and Collaborating

As a returning Summer Apprentice, I do not see my last two summers as two separate experiences. Instead, I see them as one journey, split into two parts – one of which could not be as valuable without the other. Last summer, I was introduced to the very foundations of a business to answer the basic questions “what is a company?” or “what makes a company successful?” From a learning standpoint, working at a startup was the best way to answer these questions. In a single meeting, I could have a sales / marketing employee sit next to me, a business analyst two chairs away, and the CEO right across my face. Learning the ins-and-outs of a company couldn’t have been more informative and effective than working side-by-side with such a variety of roles within the company.

 

This summer, I took what I learned about project management, business analysis, and the Agile framework and applied those areas of expertise to both internal and external projects at Anant. As Project Manager of Mindy, an internal machine learning-based project, I took on a role I had never experienced before. How did I start? Well, I went back to last summer and used my knowledge of communication and business tools to serve as an efficient and effective leader.

 

I started off my standardizing the way our team – a team of student apprentices just like me – would function. The Agile Framework served to be the best way to fulfill the needs of the Mindy project. It provided us a way to release small chunks of the project on a weekly basis while always having opportunities to learn from previous weeks.

 

However, being a project manager requires more than merely dictating a path for the team members to follow. I have to act on what I say. This is Image result for boss vs leaderwhere the line between a “boss” and a “leader” is drawn. A boss orders. A leader acts on his/her orders with the team. For example, because Mindy is a data engineering process enhanced by machine learning, manual labor is required to “teach” the categorizing of data. The program must “learn” how to categorize the various jobs, but this requires hand annotations completed by a human. To learn more about how Mindy requires machine learning click here. In this situation, a boss would have ordered the team to annotate the data. Instead, I sat in front of the computer and went through all 273 data and labeled each one appropriately. After all, I was the most familiar with the category meanings. I knew that my manual labor would get the job done fast and effectively.

 

Another large portion of my summer at Anant was spent on an external client project with US Food Imports (USFI). My main job as the Internet Architecture Apprentice was to maximize the efficiency of the API Grabbers, which collects all data from a designated API. These scripts were written in NodeJS – a language I had never used before. Before the summer, I was well-versed in Java and Python. While the syntax of NodeJS was similar, its functionality was nothing like what I had dealt with before. Initially, I had to get used to the asynchronous nature of the language, which meant dealing with simultaneously running code within the same program. Working around callbacks and continuously reading / writing to files were my most significant challenges. However, I had always believed that once a programming language is learned, it isn’t too difficult to learn others. After all, the basic knowledge of variables, functions, and data storage stay fairly consistent across programming languages.

 

Nevertheless, even working with a brand new piece of technology for USFI compelled me to go back to my previous summer as a Business Operations Apprentice and utilize those skills once again. Throughout my experience working for USFI, I kept a customer focus – one of Anant’s core values – to ensure my work is benefitting the client. Whether it was finding the most effective Node modules or refactoring the code, every decision I made was for the benefit of the client so they were satisfied with the work I did.

 

The past two summers have been my most insightful and enriching experiences yet. Not only has it helped me to narrow down what I want to do later on in college and beyond, but it has taught me how to be a better worker. The three main lifelong lessons I have learned from my summer apprenticeships at Anant are interpersonal and communication skills, the power of google, and the importance of always prioritizing the customer.

Recap: CIO/CTO Training: Scaling Cloud Applications Using Docker

Docker is a technology that has the potential to transform the business of delivering software applications across a variety of industries. Not only that, but it will also greatly change the way that businesses view their enterprise architecture as it relates to their business strategy. With a fully dockerized application deployment environment, companies will be able to iterate, deliver, test, and QA their software products at a speed like never before.

 

Without the use of Docker, software development can quickly become a quagmire of different software and hardware specifications that need to be followed to the T. Adhering to these specifications itself becomes a huge strain on your organization’s software developer’s time as they try to navigate all the different version of frameworks they’re using, what OS needs to be run for what, where the database is located – in a nutshell, as your software team grows, the complexity of the underlying technology stack they use will also grow and sooner or later they will face “The Matrix of Hell”:

Source

 

Ideally, with a proper Docker deployment, your software team will no longer run into the “but in runs on my machine” problem and thus able to free up valuable resources to work on more pressing development issues. During our latest workshop we covered some of the first steps to get you or your organization started with using Docker, you can find a recording of part of the session below:

 

 

If you have any questions or feedback please don’t hesitate to reach out to me at rahul@anant.us. If you’d like to learn more about how technology can help you and your business you sign up for one of a free Roadmap conversation here!

Teaching Computers to Understand Language

With the recent advent of GPUs and increased computational power, machine learning and neural networks have risen from the grave and are now one of the forefront technologies in tackling anything a human would normally do. One of the biggest areas of research for this approach has been in understanding the nuances of language. Computers have traditionally struggled to learn languages due to thousands of rules and even more exceptions to each rule. Simple logic approaches fail to take into account context and interpretation and are rarely able to accurately interpret sentences and paragraphs.

In the past decade, researchers have begun applying recurrent neural networks to understand text. Neural networks are combinations of artificial neurons modeled off of the human brain. These networks can change the strength of connections in between the neurons based on training data given to them. For example, if a neural network receives pictures of apples and oranges along with labels for each picture, over time it can tune these connections and learn to distinguish the two objects.

Recurrent neural networks, frequently abbreviated to RNNs, are an extension of this idea and take input from previous iterations. So if an RNN was run on a sentence, it would take the classification of the previous word and use that as additional information for the current word. This makes RNNs particularly effective at handling sequential and time correlated data. In this case, since sentences are sequential constructions and previous words impact the interpretation of the current word, RNNs can better pick up contextualization and the nuances of language.

Continue reading

Scaling Cloud Web & Data Technologies

Long gone are the days where software had to be self-hosted, needed hundreds if not thousands of servers to run at a proper speed, and your enterprise needed to hire an entire IT department with specialized staff with the ability to configure, maintain and run updates on the various pieces of technology powering your business. Now, more than ever before, can modern enterprises benefit from distributing the various parts of their tech infrastructure without having to break their budget.

 

With Docker it’s much easier to create applications that are more environment agnostic than ever before with the use of “containers”. If you’re looking for a database that is fault-tolerant, can scale rapidly, and has the ability to be queried very fast, a distributed NoSQL database such as Cassandra is a good option.

 

We recently conducted a presentation covering this topic to one of our clients and have attached the slides below. There may be a chance we conduct a webinar covering this topic in more depth based on interest. If you’d like to hear more about this topic shoot me an email at arturs@anant.us!

 

Alternatively, have us come and give this presentation at your company and see how to build your roadmap to cloud software, you can sign up for a free no-hassle 30-minute introductory roadmap conversation with one of our experts here!

 

Please see the slides below: