Anant Corporation Blog

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

Category Archives: Business


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!

Team Collaboration – Slack, Airtable, and Trello: What Makes Them Good

During our most recent webinar, Rahul Singh covered a few of our favorite tools for team collaboration: Slack, Airtable, and Trello. The first two tools are both relatively new to our company whereas the latter one has come to the forefront of our company’s processes after a bit of time in the dark.

Slack

Slack was initially a tool that we tested out in our company to improve our internal communication. At the time, we turned away from it because we were afraid that it would become a major time suck that would slowly but surely decrease the efficiency of our team. We stuck with Google Hangouts / Chat for a bit but decided to give Slack a more solid go about a year and a half ago. Our experience thus far has been nothing but positive. The standard tier of Slack is more than enough for a small business to operate on, and the maximum amount of integrations allowed in the free tier is optimal for a company of our size. We use Slack with a variety of integrations, some of which are:

 

  1. Sending automated weekly reports to our managers from Metabase, an awesome open-source BI tool, to seamlessly get critical data in the hands of leadership.
  2. Receiving instantaneous updates on commits and deployments across our different set of software development tools in our #_devops channel:
    1. GitHub
    2. CodebaseHQ
    3. DeployHQ
    4. AppVeyor
  3. Sending tasks to either of our project management tools through our #_chief channel:
    1. Trello
    2. active.collab

Trello

We have most often used Trello as our “Master Backlog” project management system, there are many tasks we are often unable to complete in the current time window but nonetheless would like to keep in the backlog for when there are future opportunities to address them. Recently, we have started relying more heavily on Trello to assist us with Agile Scrum Planning for some of our external projects (clients) and internal initiatives (Research & Development, Sales & Marketing…etc).

 

 

The clean interface, the ease with which a user can move cards around, the overall ability to get a bird’s eye view of the project at any time, and the ability to add burndown charts and estimates to cards via plugins such as Scrum for Trello and Burndown for Trello make this tool an indispensable part of our workflow.

 

 

Below you can find a screenshot of a template for Agile Scrum Planning in Trello. Additionally, here is the link to it.

 

 

Airtable

Airtable is what you would get if you mixed Google Spreadsheets, Microsoft Excel, Trello, and a lightweight online database. We’ve covered this particular software tool more extensively in a blog post you can find here. We’ve used airtable for a good amount of things ranging from job applicant tracking to sales territory planning. Below you can find a screenshot of the “Advertising Campaigns” Airtable template found here.

 

Additionally, some of our favorite features of all three of these tools are:

  • Their ability to work with other systems in our process
  • The fact that they are SaaS products
  • Their focus on team collaboration and activity tracking
  • The speed at which they operate
  • Good native mobile applications for iOS and Android

 

At the end of the day all of these tools can work in conjunction with one another and help your team get a boost, but nonetheless, it is important that your process is ironed out and clear for everyone to understand. No amount of stellar software tools will fix issues that stem from faulty processes…and well most issues stem from faulty processes.

 

If you’re interested in finding out more you can access the slides and a recording of the webinar below!

 

 

What Makes a Good ETL Project?

Bad

  1. Bad ETL (extract, transform, load) projects are ones that don’t have a strategy for different types of information or lack of knowledge management on how to add/remove different data sources, add/remove processors & translators, and add/remove different sinks of information.
  2. It doesn’t necessarily have to be on any particular platform, just that it has structure.. just as any software should have.. an architecture.

 

Good

  1. Simple systems that separate E / T / L into composable blocks that are scriptable or configurable.
  2. Compiled systems are good too if the volume is extreme.
  3. A good bash pipeline is just as good as any as long as its well documented.

 

Ugly

  1. Using ESB (Enterprise Service Bus) for ETL.
  2. Using Spark for ETL.
  3. Basically using things that have advanced features for business logic for doing simple transformations that really don’t need to belong in these computing environments. Conjoining simple message delivery (ETL) to an advanced message delivery (ESB) or advanced computing (Spark).

 

Why should an organization undertake such a project?

To meet a business goal(s). Sometimes it’s to gain intelligence, sometimes it’s to create data products to create value, sometimes it’s to show predictions.

Comes down to how does it affect the organizations’ perpetuity. Some of the questions a business should be able to answer are:

 

What other solutions provide the same end user results?

Tools like Domo, or Tableau, or recently something like Periscope (in the SaaS world) can be useful to gain basic insights without having to do ETL if the data is ready. Other open source tools can be used as well such as Kibana, Metabase, and Redash as long as the data is available.

 

What are the trade-offs between the various solutions?

Ultimately if the data isn’t ready, ETL may be required to get it clean enough for those tools to allow users to visualize/explore it properly.