Artificial Intelligence has been around for a long time. People have studied it and have made progress but it’s only in recent years that people have started to recognize how AI is being used. Research on AI shows how much it can affect different industries in the years to come.
AI can be used correctly to enhance the human experience as a whole. AI is used for automation so that processes that are tedious and repetitive can be done easily. Automation is needed by different industries. Whether it is businesses that are focused on healthcare or those who are running their Ecommerce website, automation is going to play a huge role in how consumers will use apps and purchase other needed items.
Importance of Essential Tools and Frameworks for AI Development
An AI engineer can work better with the right tools and frameworks to develop the right apps that people will love. People from various industries who would like to start an AI project should understand that there are always different requirements that are needed. Some tools and frameworks can work well together depending on the project being created.
A wide variety of tools and frameworks are thoroughly discussed by other professionals on the internet. They are available in forums, on some websites, and even through videos. An artificial intelligence developer will have no issues in trying to find the right information for a project.
Data Preparation and Preprocessing
If there is one thing that is crucial in data preparation and processing, it is data quality. Machines are created by people and they will not work unless people have set them up very well. It has always been said that people are only as good as their mentors. If they want to become better, they need experience, they need more than one mentor, and they need different inputs and outputs.
This is the same with the machines for AI. The data quality can highly impact the reliability of the machines. The accuracy and performance of the machine will only be as good as the people who are making the machines work. Artificial intelligence programmers are aware of this fact. This is why they always make an effort to provide a diverse and quality dataset to the machines.
Tools and Techniques for Data Cleaning, Transformation, and Feature Engineering
Good data and bad data can help businesses. Recognizing the bad data can eliminate the extra work that will be done to create the right dataset for any industry. Data cleaning is not people’s favorite activity but it is required to create the right type of data for the project.
It is through data cleaning that bad data can be weeded out from the dataset. Once this is figured out, the issues will be properly corrected. Some data can be considered unfixable which means that they need to be removed.
The usual reasons for unclean or bad data are the following:
Human error
Getting scrap data
Combining data from different sources
The use of bad data can make businesses spend more money than they should which is why it should be eradicated.
To do effective data cleaning, transformation, and engineering, these are the techniques to do:
Get rid of duplicates – You can get duplicated entries when you get information from different sources. Get rid of duplicates so that you will not skew the results.
Get rid of irrelevant data – Data that is not important to the project will only slow down the results. Remove things that will add nothing to the data that you have.
Make sure that text is consistent – One way that you can do this is by standardizing capitalization. Those who can also do NLP labeling can help with this.
Clear formatting – Most machines are unable to read data accurately if the data is heavily formatted. You may be dealing with different formats especially if you have gotten your data from various sources. Clear formatting and the data will be read smoothly.
Carefully remove errors from the data – This should be done to get a reliable dataset. Key findings might become hard to see if you do not clean the errors immediately.
Machine Learning and Deep Learning Frameworks
Machine learning is continuously growing and it can provide the smart solutions that businesses from different industries need. The frameworks can be understood better because of the libraries, interfaces, and tools that are available for people to view and study.
TensorFlow
This is created by Google’s Brain Team and it can be used for Python. It uses dataflow graphs to create and process data. This is preferred by those who do AI development because the learning models are easy to build. It can also be used for powerful research and experimentation.
PyTorch
This is a framework created by Facebook’s AI Research Lab also known as FAIR. This can be used for different libraries such as Python and C++. The framework is designed to be scaled and improved so that it can become more flexible depending on the project that you are making. This is best for people who are already familiar with C and C++ as there are some similarities.
Scikit-Learn
This is an open-source data analysis library which is usually one of the first choices when people want to do machine learning for Python. This can be helpful for data that needs to be segmented depending on the algorithm. It will also have the ability to recognize data based on the patterns that it shows.
Natural Language Processing Tools
NLP tools and techniques are very helpful for AI as they can make AI more accurate. The process can also be done in a faster time as compared to not using the right NLP tools. NLP allows applications to do more every day. People can also gain more every day because of this. The more that technology improves, the more sophisticated the algorithms that become available.
Essential NLP Libraries and Tools
People who are searching for IT jobs in Germany usually try to increase the number of skills that they have. Still, they cannot just rely on their skills. They need to make an effort to learn more about the libraries and tools that they can use.
Natural Language Toolkit (NLTK) – This is a library that supports various tasks from text segmentation to semantic reasoning in Python. This is the main tool that professionals use for NLP and machine learning.
TextBlob – This is the tool that most beginners use when they want to make better experiences while still exploring Python and NLTK. This can help design people’s prototypes.
Core NLP – This is one of the tools that can be used when you are using Java. It is required that you have Java installed on your device before you can use this for different processes like sentiment analysis and part-of-speech tagger.
Model Evaluation and Deployment
How sure are you that your machine is providing the type of data that you are looking for? You need AI development services from a trusted company or professionals. They should know the different techniques to check the accuracy of the AI model that has been created.
Accuracy
This is the most widely used metric for model evaluation. This will show you the ratio between the corrected values and the data that you have placed on the machine. This will also show you if the classes that you are trying to analyze are imbalanced.
Precision
This will provide the percentage of the predicted positive instances. This will let you know if the model is giving you information about how right the machine is when it says that it can accurately read the data.
Specificity
The percentage of the negative instances are being measured against the actual total of the negative instances. This can be the most effective if you want to measure the actual number of people who have indicated negatives in the data set vs what the machine says is the percentage of negative instances.
Machine learning is not something new. An artificial intelligence development company can offer professionals who can use the right tools to deploy AI and machine learning easily. People have already learned a lot of details about it and it is expected to become more accurate in the years to come.
Different machine learning tools might become steeper for beginners especially if they do not know anything about the processes. The sheer determination of people can weed out those who can become good at it.
Java is one of the most popular programming languages in the programming world, used by millions of developers to build complex software systems and applications. As a Java developer, it’s essential to stay up-to-date with the latest trends and techniques to remain competitive and produce high-quality code. In this article, we’ll explore eight Java programming tricks every Java developer should know, including how java developers for hire can help you implement them in your projects.
Use Lambda Expressions
Lambda expressions are a powerful feature introduced in Java 8 that allow you to write functional-style code with less boilerplate. With lambda expressions, you can define a method as a parameter to another method, reducing the amount of code you need to write. For example, instead of writing:
List<String> names = new ArrayList<>();
for (Person person : people) {
names.add(person.getName());
}
This code is more concise and easier to read, making your code more maintainable.
Use Optional Instead of Nulls
Nulls can cause many problems in Java code, including NullPointerExceptions, which can be difficult to debug. Instead of using nulls, use the Optional class, which allows you to represent an object that may or may not be present. Optional provides a safer and more elegant way to handle nulls in your code.
Use Streams for Collection Operations Streams provide a concise and powerful way to perform operations on collections in Java. With streams, you can perform operations like filtering, mapping, and reducing without the need for complex loops or temporary collections. Streams can significantly simplify your code and make it easier to read and maintain.
Use String.format for String Concatenation String concatenation can be a performance bottleneck in Java code, especially when concatenating large strings. Instead of using the + operator, use the String.format method to concatenate strings. String.format creates a formatted string that you can customize with placeholders and arguments, making your code more readable and efficient.
public class StrFormat
{
/* Driver Code */
public static void main(String args[])
{
String s1 = new String("Hello"); //String 1
String s2 = new String(" World"); //String 2
String s = String.format("%s%s",s1,s2); //String 3 to store the result
System.out.println(s.toString()); //Displays result
}
}
Use Immutable Objects
Immutable objects are objects whose state cannot be changed after creation. Immutable objects are thread-safe and can simplify your code by eliminating the need for locks or synchronization. Use immutable objects whenever possible to improve the performance and reliability of your code.
Default methods were introduced in Java 8 and allow you to add methods to an interface without breaking existing implementations. Default methods provide a powerful way to extend existing interfaces and create more flexible and maintainable code.
import java.time.*;
public interface TimeClient {
void setTime(int hour, int minute, int second);
void setDate(int day, int month, int year);
void setDateAndTime(int day, int month, int year,
int hour, int minute, int second);
LocalDateTime getLocalDateTime();
}
Use Reflection Sparingly
Reflection is a powerful but dangerous feature in Java that allows you to inspect and modify the behaviour of a program at runtime. Reflection can be slow and error-prone, and should only be used when necessary. If possible, use other features of Java, such as interfaces, to achieve your goals.
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[])
{
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
}
catch (Throwable e) {
System.err.println(e);
}
}
}
Use Enumerations Instead of Constants
Enumerations are a more powerful and flexible way to represent constants in Java. Enumerations allow you to group related constants and define their behaviour, making your code more expressive and maintainable. Use enumerations whenever possible to avoid the problems associated with traditional constants.
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
Use Try-With-Resources for Resource Management Try-With-Resources is a feature introduced in Java 7 that allows you to automatically close resources such as files, sockets, and database connections after they are no longer needed. Try-With-Resources can simplify your code and ensure that resources are always properly closed, reducing the risk of resource leaks and other problems.
Use Javadoc to Document Your Code Javadoc is a powerful tool for documenting your Java code. With Javadoc, you can create professional-looking documentation for your code that can be easily shared with other developers. Javadoc can also help you understand your own code better and identify potential problems and bugs.
Use Dependency Injection for Loose Coupling Dependency Injection is a design pattern that promotes loose coupling between components of a system. With Dependency Injection, you can inject dependencies into a class instead of creating them inside the class, reducing the complexity and dependencies of your code. Dependency Injection can also make your code more flexible and easier to test, making it a valuable technique for Java developers to learn.
Use Unit Testing for Quality Assurance
Unit Testing is a crucial technique for ensuring the quality and correctness of your Java code. With Unit Testing, you can test individual units of code in isolation, identifying and fixing problems before they become larger issues. Unit Testing can also improve the maintainability of your code by ensuring that changes and updates don’t introduce unexpected side effects or bugs. As a Java developer, it’s essential to understand and practise Unit Testing to produce high-quality, reliable code.
Conclusion
Java developers for hire can help you implement these programming tricks in your projects. The tricks we mentioned can improve the quality and efficiency of your code, and help you stay up-to-date with the latest trends and techniques in Java programming. But if you need to do it asap, Java developers for hire can help you implement these programming tricks in your projects.
For storing, transmitting, and receiving digital assets, cryptocurrency wallets are crucial tools. Custodial and non-custodial wallets are the two major varieties that are available. A third party, like an exchange, manages custodial wallets, whereas non-custodial wallets allow users complete control over their assets. Although non-custodial wallets have become more common, some bitcoin users still choose custody-based wallets. We examine the benefits of custodial wallets for some cryptocurrency investors in this article.
Convenience and simplicity of use Custodial wallets are still widely used for a number of reasons, including their practicality and simplicity. Cryptocurrency exchanges frequently provide custody wallets, making it simple for customers to maintain their digital assets in addition to their trading. When contrasting custodial wallets vs non-custodial wallets the former frequently offers an easier user experience since users are relieved of the responsibility of storing their backup phrases and private keys, which can be burdensome and confusing for certain users. Instead, individuals may easily access their assets by logging into their account anytime they need to.
Giving up control of one’s digital assets to a third-party provider is the price one pays for this convenience. On the other hand, non-custodial wallets provide users more privacy and control over their assets, but they also require them to take responsibility for managing their own private keys and security protocols. In the end, whether a user chooses a custodial or non-custodial wallet will depend on their desire for convenience against control.
Insurance and security Users with non-custodial wallets have greater control over their digital assets, but there is also more danger and responsibility involved. A user could never again be able to access their assets, for example, if they lose their private key. Furthermore, if malware infects a user’s computer or gadget, their digital assets could be taken. Custody wallets, on the other hand, provide extra security measures like two-factor verification and advanced encryption techniques. Customers can feel more secure knowing that the vast majority of reliable custodial wallet suppliers also offer insurance against asset loss or theft.
Assistance and client services Custodial wallets also have the advantage of the support and customer service provided by the wallet provider. If a user encounters any issues with their wallet, the provider’s support team is frequently able to assist them. This might be quite beneficial for inexperienced bitcoin users who may have questions or concerns about their wallet. Additionally, custodial wallet providers usually hire a larger team of engineers and security experts that are dedicated to ensuring the dependability and security of their platform. Updates and solutions for any possible issues could be provided more quickly as a consequence.
Integration with trading platforms and exchanges Custody wallets also offer easy communication with bitcoin exchanges and trading systems. Due to the fact that custodial wallets are frequently supplied by exchanges, users may easily move money between their wallet and their trading account. This may prove to be of great assistance to active traders who need to move their assets quickly and successfully. Users may get a more complete view of their trading habits with the use of advanced trading capabilities and statistics that can be included in custody wallets.
Adherence to regulations Last but not least, businesses and institutional investors typically choose custodial wallets since they adhere to standards. Since they are typically registered with regulatory entities, suppliers of custody wallets must adhere to strict security and reporting standards. This may be of particular significance to businesses that may be the target of regulatory audits or compliance inspections. Additionally, custodial wallets can offer more accountability and transparency, which makes them a more desirable option for institutional investors.
Opportunities to earn interest
Another reason for the ongoing popularity of custody wallets is the chance to make money that they provide. By creating an interest-bearing account with some providers of custody-based wallets, users may earn a return on their digital assets. Custodial wallets can provide interest rates that are far higher than those of traditional savings accounts, making them an attractive option for anybody looking to enhance their bitcoin holdings. In addition, some providers of custodial wallets provide staking services, which let users be compensated for participating in the network’s consensus mechanism. This might prove to be quite advantageous for those who hold certain cryptocurrencies that offer stacking bonuses.
Reduced fees
Custodial wallets may also be less expensive than non-custodial ones. Customers usually benefit from lower transaction fees when transferring assets between their wallet and their exchange account since custodial wallets are commonly provided by cryptocurrency exchanges. Additionally, suppliers of custodial wallets could charge less for certain services like trading or cash withdrawals. This can be especially useful for users who wish to lower their transaction costs and boost their earnings.
Conclusion In conclusion, some cryptocurrency users continue to choose custodial wallets because of how convenient and simple they are to use. By handling the protection and storage of digital files, they provide a more user-friendly experience, but at the expense of ceding control to a third-party supplier. Non-custodial wallets provide users more freedom and privacy, but they also force them to take care of their own security precautions. Ultimately, the user’s interests and preferences will determine whether they choose a custodial or non-custodial wallet.
The distributed transaction ledgers and smart contracts that comprise blockchain technologies have applications in a wide range of industries, particularly in finance, logistics, and government. Today, we present an overview of who is involved in blockchain development and which blockchain platforms they use. Earlier on, we discussed the state of blockchain development in detail in our webinar and you can find a link to watch it below.
Engagement with blockchain technologies
Of the three blockchain technologies we track in our survey, non-fungible tokens (NFTs) garner the least attention from developers – 58% of them show no interest, likely due to its perception as a novelty technology. On the other hand, cryptocurrencies are most salient to developers – 27% are either learning about or currently working on such projects, and non-cryptocurrency blockchain technologies are very close behind, with 25% of developers similarly involved. We discussed this topic in detail in our webinar on the state of Blockchain Development.
We will focus solely on blockchain applications other than cryptocurrencies, as these technologies have the widest range of use cases and thus the most potential to shape our world. We’ll begin by looking at developers’ engagement with blockchain technologies from a regional standpoint and then through the lens of experience in software development. Finally, we’ll give an overview of which blockchain platforms are being used.
A regional view of Engagement with blockchain applications
Engagement with blockchain applications other than cryptocurrencies, referred to as blockchain applications from here on, varies greatly depending on where developers are located. North America and East Asia excluding Greater China are hotbeds of blockchain development – 15% and 12% of developers in these regions, respectively, are currently working on blockchain applications, with another 17% learning about the technology in both regions.
“North America and East Asia are hotbeds of blockchain development”
Further down the list, we see that while the Middle East & Africa has a smaller proportion of developers actively working on blockchain projects; it has the highest incidence of those learning about them (20%). This suggests that the Middle East & Africa could well become important for blockchain development in the future. Indeed, given the region’s history of rapid adoption of new foundational technologies – exemplified by Africa’s mobile banking revolution – blockchain applications in finance and banking are particularly exciting here – though the data suggests that there may still be some way to go.
“Finance and banking professionals in the Middle East and Africa are more interested in blockchain technologies than finance and banking professionals in other regions”
About a quarter of professional developers in the Middle East & Africa who are interested in blockchain technologies are also working in the finance and banking sector. It seems these developers have seen the potential for this technology to shape and disrupt the sector and are getting a head start. Looking at this from the other side, we see that the proportion of finance and banking professionals who are currently working on or learning about blockchain applications is broadly in line with the average for the region (31% vs 33%). However, the proportion who are interested in blockchain applications is 29% higher (37% vs 29%). This is the highest incidence of interest in blockchain applications amongst finance and banking professionals across any region and indicates that blockchain applications could play a pivotal role in this industry in the future.
How does experience affect engagement with blockchain applications?
Developers with 6-10 years of experience are the most likely to work on blockchain projects. It’s likely that these developers have reached the point in their career where their technical skills are sufficiently advanced to enable them to work on such demanding projects. On the other hand, we see that the least and most experienced developers are the most likely to be disinterested in such projects. Those with less than a year under their belts have yet to build their knowledge, while the most experienced developers may be looking to maintain some stability in their career and are reluctant to change tack.
“Many of the least experienced developers are actively learning about blockchain technologies. They constitute a strong pipeline of future contributors”
Developers with 11-15 years under their belts show the most passive interest in blockchain applications – whilst they aren’t learning about or working on such projects, 32% are interested in some way. These developers are at the zenith of their careers and whilst they are some of the least likely to be learning about the technology, they are also some of the most likely to be currently working on it. These developers are likely keeping a close eye on developments in the space – should they spot an opportunity, they will be able to pivot their considerable experience to become effective contributors to the space.
Interestingly, although we see that the least experienced developers are less likely than their counterparts with 1-15 years of experience to be currently working on blockchain applications, they are only slightly less likely to be learning about these projects. This demonstrates that although they lack the skills to be active contributors, the myriad applications and potential of blockchain applications are a powerful draw. We can expect that, as learning materials improve and the barriers to entry reduce – as is the case with many technologies – over the next few years, developers will be able to get involved in blockchain projects much earlier in their careers.
Which blockchain platforms are most popular?
Looking at the specific blockchain platforms that developers report using, we see that Ethereum is clearly dominant amongst learners and those actively developing alike. It’s also unique amongst the blockchain technologies that we ask about, in that it is the only one which is more popular amongst those learning about the technology than those who are currently working on it. This indicates that Ethereum’s ecosystem is in good shape – not only is it large, but it also has a healthy pipeline of new contributors.
Although new contributors are certainly good news – the utility of a blockchain rises with the number of applications that use it – a large influx can also create problems. For example, too many transactions on a network can slow things down severely and greatly increase the price of a transaction. For example, when CryptoKitties surged in popularity, the cost of a transaction on the Ethereum network increased ninefold, from ~$50 to over $450. Such is the price of success. This said, Ethereum’s recent transition to a proof-of-stake model is expected to reduce energy consumption by 99.95% and makes the platform more scalable, secure, and sustainable, potentially mitigating this pitfall.
“The Binance blockchain platform benefits from its association with the Binance crypto exchange and its interoperability with the Ethereum blockchain”
Further down the list, Binance Smart Chain is the second most widely used blockchain platform and is used significantly more by active developers than learners. Here, the Binance Smart Chain not only benefits from its association with the Binance cryptocurrency trading platform, but also its interoperability with the Ethereum blockchain. We also see a similar story with the IBM Blockchain platform – this platform is based on open-source blockchain technology managed by the Linux foundation and clearly benefits from the backing of these two large organisations and their developer and business communities.
Despite the hype, blockchain technologies are still somewhat in their infancy. Blockchain, much like cloud computing fifteen or so years ago, has the potential to underpin and enable many other technologies and experiences, but as we saw earlier, only 9% of developers are currently working on such projects. Rather than affecting an instant technological transformation, blockchain technologies have the opportunity to become a foundational technology on which our digital experience sits, much like TCP-IP – the building blocks of the internet – and developers will be key players in shaping this particular view of the future.
To get more of these articles in your inbox, SUBSCRIBE to the developer nation Newsletter.
As technology continues to shape the world we live in, it’s becoming increasingly clear that learning to code is one of the ultimate skills for future-proofing your career. With the demand for technology skills rapidly growing across all industries, the ability to code is no longer just a valuable asset but an essential one.
Coding is a great skill on its own, but it can even enhance your existing skills such as writing or marketing. In this article, we’ll explore why learning to code is so important and how it can help you future-proof your career with practical advice that will further your learning.
Why You Should Learn Coding
Firstly, let’s consider the job market. According to the Bureau of Labor Statistics, computer and information technology jobs are projected to grow by 11% between 2019 and 2029, much faster than the average for all other occupations.
This growth is expected to create tens of thousands of new jobs in the field, making it one of the fastest-growing industries in the world. By learning to code, you position yourself to take advantage of this growth, opening up a world of exciting career opportunities in technology.
Tech Takeover
Moreover, technology is rapidly transforming the way we work across all industries, from healthcare to finance to retail. As businesses become more reliant on technology to stay competitive, the demand for tech-savvy professionals who can develop, implement and maintain technology solutions is skyrocketing.
By learning to code, you develop a growth mindset that allows you to stay current with the latest trends and technologies. This not only helps you stay relevant in the job market but also allows you to continually improve your coding skills and take on new challenges throughout your career.
Professional Growth
In addition to the job market benefits, learning to code can also enhance your problem-solving skills, creativity, and critical thinking abilities. Coding requires you to think logically, break down complex problems into manageable parts, and find creative solutions to technical challenges.
These skills are transferable to many other areas of life and can be applied to problem-solving outside of coding. For example, problem-solving skills in coding are easily applicable to the logistical aspects of sales work. Finding the fastest and most cost-effective way to tackle a problem is something that coding instills in its pupils.
Fulfilling Career Path
Furthermore, coding is a skill that can be used to build and create, making it an incredibly fulfilling pursuit. The ability to build and bring ideas to life through coding is a powerful tool, allowing you to create software, websites, and apps that can further your financial future. By learning to code, you gain the ability to create things that matter and make a difference in people’s lives.
Not to mention, coders aren’t going to be hurting for opportunities for a long while. Even with the rise of AI, there’s always going to be value in a human developer who is willing to work with a team.
Your career path can help you build wealth, it can help you in the future in case you need to work on your credit score and take out a loan as employment history is one of the things lenders will review.
The Basics Of Learning How To Code
So, how can you start learning to code? There are many resources available online, including coding boot camps, online courses, and coding communities where you can connect with other developers and learn from their experiences.
Pick And Stick To One Programming Language
There are many programming languages to choose from, such as Python, JavaScript, and Ruby on Rails that could be the foundations of your first project.
There are too many languages out there to list down, but what’s more important than your first language is sticking to that language for at least a year.
Programming at its core involves using instructions to tell a computer what to do. You can’t learn the basics if you keep changing languages while learning. Most computer languages aren’t all that different, so it’s best to stick with a language you find relevant to your goals.
Practice Consistently
Practice, as always, makes perfect, and the same goes for programming. Start with simpler projects and gradually work your way to more meaty projects. There are many online resources available to help you learn to code, such as Codecademy, FreeCodeCamp, and Udemy.
As far as scheduling goes, make sure to set aside a set amount of hours each week where you’re learning new things. Coding doesn’t have to be rushed, but you do need to be learning something every week. Stagnancy is the enemy of progress, and to avoid that, make sure you always have time to practice coding.
Connect With The Community
Programming is often a collaborative effort, and working with others can help you learn faster and get feedback on your code. Join online communities, attend meetups, and contribute to open-source projects to expand your knowledge.
The community is also a great avenue to vent your frustrations and worries. All these developers have had their own wellness issues. They can help you work your way through the tougher parts of coding in ways that are relatable to you.
Last month I got a chance to sit and talk with Darshan Shivashankar, founder and CEO of APIWiz on our brand new podcast. We two have collaborated in the past on API lifecycle management workshop and Darshan being a technical founder, whenever we talk our conversations tend to go in all places technical. So catch up on everything we discussed in this 50 minutes episode but here’s a quick summary or gist if you will for someone who needs more buy in before lending the episode their ears.
Darshan has 15+ years of experience in industry building technical solutions especially when it comes to designing API programs for companies looking for Digital transformation. In the past Darshan has worked with various industries from telecom to healthcare, FinTech to Neo banks. Though now a founder of developer first company, Darshan shared he never envisioned or planned his career to follow a fixed trajectory. Opportunities started coming in as he worked on more advanced projects and with right problem solving mindset and experience, he was acing the digital transformation process of the industries he worked in, sometimes leading and even starting their API first journey.
Darshan figured out the technical debt associated with APIs journey of organisations wherein teams work in Silos, leading to a lack in collaboration, reliability and consistency in governance. If you’ve worked in APIs development for a big project or digital transformation mission, then you could easily relate to it. This is where Darshan felt a need for a solution that could help in API lifecycle management. After validating this idea within his network he realised that indeed there is a requirement for such a solution but not an immediate urgency to have that in place. This gave Darshan and team the opportunity to bootstrap their journey building APIWiz, focusing on addressing Developer centric problems.
I asked Darshan if he’s still involved in the development of the product and he mentioned he was actually writing code till very recently but now he’s more involved in hiring, planning and giving direction to the product, though he still knows the codebase in and out and is always ready to pull up his sleeve and get down to programming and tracking bugs whenever required, which for me was really inspiring to listen. The team at APIWiz is now scaled up after they raised funds from their investors and that’s where Darshan focused on hiring the candidate with right vision and mindset, as he believes tools and skills can be learned at job but problem solving attitude can’t be taught. Darshan also mentioned motivating team members to fill the job roles needed within the organisation enabling them to explore more arenas to work and fit in.
I also asked Darshan where he sees industry heading and things he’s most excited about but I’m gonna tease, as he really has a deep and interesting perspective on this one which I feel you should listen straight from the Podcast to better understand it.
P.S : eBPF and Raspberry Pis were mentioned 😛
Darshan also shared the struggles associated with starting a company from scratch, the role of support from family members, friends and people within your network and great tips for anyone just starting out fresh in tech and wanna make big, making this one of my favourite episodes.
If you listen to it don’t forget to share it with your friends who might learn a thing or two from this podcast. As always I’m always looking forward to your feedback to make this podcast better and if you have any guest suggestions feel free to share it via the comment section below.
Rapid uptake in adoption by industries ranging from banking to retail to autonomous vehicles of customer- and partner-facing and internal application programming interfaces (APIs) to drive internet traffic has resulted in an equally rapid growth in endpoint attacks – more than 11 billion over just 18 months according to a report from edge computing security leader Akamai. It makes sense that they are more vulnerable to threats from malicious actors, given API endpoints’ similarity to internet-facing web servers, and their role as pipelines between divergent platforms.
For DevSecOps teams, protecting APIs is a top priority; they are vital to mobile, SaaS, and web applications and paramount to a healthy software development lifecycle. API security is also a natural extension of DevSecOps’ push to break down silos between development, security, and operations and move toward automation and design that integrates security as a shared responsibility.
Thus, it is time to view API security not as an external bottleneck, but as a part of a stable long-term strategy. This can be achieved by altering company attitudes and investing in API tools that facilitate testing, enforce governance standards, and automate recurring security tasks.
Adopt an API-as-a-Product Strategy
A primary reason digital transformation efforts have failed for many brands is because they do not see APIs adding value. As such, they’ve lost track of the potential return on investment (ROI) APIs can deliver. When APIs are not viewed as assets or value-generating, they aren’t subject to the appropriate level of protection or security performance oversight. In fact, Akamai’s report highlighted the fact that many enterprises relegate API security checks to the end of the lifecycle and rely on traditional network security solutions which aren’t designed to protect against the attacks to which APIs are subject.
This is starting to change, however, as API-as-a-Product strategies gain traction within the developer community. There is a notable shift away from delivering project features based on budgets and deadlines to holistically examining APIs as products and assessing their capabilities. Further, as the concept of monetizing APIs gains prominence, their protection becomes a higher priority at the outset, with organizations more inclined to adopt a human-centered design approach.
What this means is moving API regression tests to the forefront rather than treating them as an afterthought. It means adopting a design-first approach – wherein everyone on the team speaks the same language and every tool is able to leverage the same design – from the outset with the help of an API management platform. This will also help ensure that APIs are built on established authentication and authorization mechanisms such OAuth 2.0, which is the industry-standard protocol for authorization, and OpenID Connect.
API testing tools are critical for protecting something upon which most services in use daily rely. These tools let developers see if an API is reacting adequately to unexpected inputs or possible security attacks. They show immediately if an application is running with optimized functionality, reliability, and security.
Whether it is running user authentication, parameter tampering, unhandled HTTP, or fuzz testing, it is imperative to test an API contract to ensure that services can communicate and that the data they share is consistent with a specified set of rules or standards. Further, there are many solutions in the API testing market, including cross-cloud API testing software, software that supports asynchronous testing and continuous integration/continuous deployment (CI/CD) integrations, and end-to-end testing – as well as solutions that support various formats eliminating the need for developers to learn new languages.
Continuous testing is essential across the DevSecOps pipeline, as is robust test coverage based on API contracts that have been designed and approved. Plus, by chaining together complex API transactions and workflows, cases can be tested on-demand using continuous delivery or CI/CD to reduce downtime.
Security in 360-degree Lifecycle Management
While API security considerations have typically been an afterthought to ever-increasing business demands, the reality is that no enterprise can afford for software security checks to be the last stage of an API lifecycle. Rather, security must be part of a 360-degree API lifecycle management strategy. It should be incorporated into every level, from planning and design to developing, testing, and release management – all the way out to deprecation.
Developers must also have oversight throughout the entire API lifecycle – which is where an API management platform comes into play. A dedicated platform can provide workflow visualizers that show an API’s complete lifecycle in a single view with issue alerts, which helps accelerate production using CI/CD in the DevSecOps pipeline to build trusted artifacts and more rapid iterations, thereby guaranteeing a security-first mindset.
API tools also allow perimeter scans, which enable the discovery and inventory of APIs and allow for easy breakdowns for DevSecOps teams to work with. The best platforms will leverage a command line interface (CLI) – a unified tool for managing and controlling multiple services from the command line or with automation through scripts – to make APIs more easily discoverable. The team can easily determine where and how many APIs are deployed; a level of visibility that is mandatory for enterprises.
Tools for Success
In short, an API team is only as successful as the set of tools at its disposal.
API security best practices are no mystery to seasoned security professionals – and they start with establishing solid API security policies through an API management platform.
Finally, a collaborative approach to API governance – in line with the DevSecOps mission to eliminate siloes – is imperative for any organization’s security.
About APIWizAPIwiz is a low-code, API automation platform allowing developers to build and release reliable APIs quickly. With APIwiz, API teams have complete control, visibility, and predictability over their entire API program, allowing organizations to stay open and connected.
Many web development frameworks out there in the market are claimed to be the best and most reliable for your project. But what is the reality? Are they even as qualified as hyped?
Today in this article, we are going to discuss two such best frameworks Ruby on Rails and .NET Core. Because of these frameworks’ unique capabilities and the wide range of benefits they offer, RoR developers and top .NET development companies are always in demand among modern businesses.
What makes these frameworks so powerful and reliable? Which one of them is more suitable for your web development project? Well, let’s find the answers by discussing what these frameworks are and what are their pros and cons.
Ruby on Rails
Ruby on Rails follows the Model-View-Controller (MVC) architectural pattern, which separates an application into three main components: the model, which represents the data and business logic; the view, which handles the presentation of the data; and the controller, which serves as an intermediary between the model and view, processing user requests and handling the flow of data.
Ruby on Rails emphasizes convention over configuration, which means that it provides a set of standard conventions and best practices for building web applications, allowing developers to quickly build applications without writing a lot of code from scratch. Rails also follow the Don’t Repeat Yourself (DRY) principle, which encourages developers to avoid duplicating code and to keep their codebase as concise as possible.
Ruby on Rails provides a wide range of built-in tools and libraries for tasks such as database management, testing, and security, making it a popular choice for building web applications. It is also known for its strong community support, with many open-source libraries and resources available for developers to use.
Advantages of Ruby on Rails
Here are some of the key advantages of using Ruby on Rails for web development:
Rapid development: RoR follows the “convention over configuration” principle, which means that it provides a set of standard conventions and best practices that allow developers to quickly build web applications without writing a lot of code from scratch.
Productivity: RoR provides a rich set of built-in tools and libraries that allow developers to focus on building their applications, rather than worrying about low-level implementation details.
Scalability: RoR is designed to be scalable, allowing developers to build applications that can handle a large number of users and traffic. RoR also provides built-in support for caching, which can help improve application performance and scalability.
Flexibility: Ruby on Rails also supports a wide range of databases and platforms, allowing developers to choose the technologies that best suit their needs. This makes it one of the most flexible development frameworks available in the market.
Community support: RoR web development framework is supported by a large community of developers who continuously keep contributing to the framework by building new open-source tools and libraries. This community support can be invaluable for developers who need help or guidance on specific aspects of their development projects.
Limitations of Ruby on Rails
While Ruby on Rails offers many advantages for web development, there are also some limitations to consider. Here are some of the key limitations of using Rails for web development:
Learning curve: Although Ruby on Rails is designed to be developer-friendly, it can still have a steep learning curve for beginners. RoR has its own set of conventions and patterns that can take some time to understand and master.
Performance: While RoR is designed to be scalable, its performance can be slower compared to some other web frameworks. This can be a concern for applications that require high performance, such as those with large numbers of concurrent users or high volumes of data.
Resource-intensive: RoR can be resource-intensive, especially in terms of memory usage. This means that web applications built with Ruby on Rails may require more server resources than those built with other web frameworks.
Updates and compatibility issues: Since RoR is an open-source framework, updates, and compatibility issues can arise. Developers need to stay up-to-date with the latest version of RoR and its dependencies to avoid compatibility issues and potential security vulnerabilities.
Not suitable for all projects: While RoR is a flexible framework, it may not be suitable for all types of projects. For example, projects that require low-level control over hardware or operating systems may require a more specialized framework.
.NET Core
.NET Core is a free, open-source, cross-platform, modular, and high-performance framework for building modern, cloud-based applications. It is developed by Microsoft and is designed to be a modern and flexible successor to the .NET Framework.
.NET Core supports multiple programming languages, including C#, F#, and Visual Basic, and can be used to build a range of applications, including web applications, microservices, desktop applications, and gaming applications.
.NET Core is designed to be modular, flexible, and lightweight, allowing developers to build applications that can run on a variety of platforms, including Windows, Linux, and macOS. It provides a set of standard libraries and tools that developers can use to build web applications, desktop applications, mobile applications, and more.
.NET Core also includes ASP.NET Core, a web framework that allows developers to build web applications using .NET Core. ASP.NET Core provides a range of features for building web applications, including support for Model-View-Controller (MVC) architecture, Razor Pages, middleware, and more.
Advantages of .NET Core
There are several advantages to using .NET Core for developing web and cloud-based applications. Here are some of the key advantages of .NET Core:
Cross-platform compatibility: .NET Core is designed to be cross-platform, which means that it can run on Windows, Linux, and macOS. This makes it easy to build and deploy applications on a range of platforms.
High performance: .NET Core is designed to be fast and efficient, with a focus on optimizing performance for web and cloud-based applications. This makes it a popular choice for applications that require high performance, such as those with large numbers of concurrent users or high volumes of data.
Open-source: .NET Core is an open-source framework, which means that its source code is available to developers. This makes it easy to customize and extend the framework to meet specific application requirements.
Modular design: .NET Core is designed to be modular, which means that it includes a range of lightweight and extensible components that can be used independently or together. This makes it easy to build and deploy applications that only require specific components.
Cloud-ready: .NET Core is designed to be cloud-ready, with built-in support for cloud-based development and deployment, including support for Docker containers and Kubernetes.
Developer-friendly: .NET Core provides a range of developer-friendly features and tools, including Visual Studio, Visual Studio Code, and the .NET Core CLI, making it easy for developers to build and debug applications.
Strong community support: .NET Core has a strong and active community of developers who contribute to the framework by creating open-source libraries, tools, and extensions. This can be helpful for developers who need guidance or help on specific aspects of their development projects.
Limitations of .NET Core
Limited support for some Windows-specific features: While .NET Core is designed to be cross-platform, it does not support all of the features of the .NET framework like WF and WCF.
Limited backward compatibility: Applications developed using the previous versions of .NET may require significant changes to work with .NET Core.
Smaller ecosystem: While .NET Core has a growing ecosystem of libraries, tools, and extensions, it is still smaller than the ecosystem around the full .NET Framework. This can make it harder to find specific tools or libraries for specific tasks.
Learning curve: If you don’t know anything about the .NET framework then it will take some time and effort to get started with .NET Core.
Lack of stability: As .NET Core is still a relatively new technology, there may be some stability issues or bugs that have not yet been identified or addressed by the development team. This can make it harder to ensure that your applications are stable and reliable.
Final words
Both Ruby on Rails and .NET Core are powerful frameworks for developing web applications, but they have different strengths and weaknesses depending on the specific needs of your project.
If you are looking for a framework that is designed to be highly performant, scalable, and cross-platform, .NET Core may be the better choice. If you are looking for a framework that is easy to learn and has a strong community, Ruby on Rails may be the better choice.
DevOps improves software development, here and now
And I’d like to take a minute, just sit right there
I’ll tell you why DevOps should make developers care
—
In the world of software, development and ops
Often work apart, and it’s easy to flop
But DevOps brings them together, for a common goal
To make software faster, better, with more control
—
Now that the sick rhyming has captured your attention, let me tell you why even as a developer with little knowledge of ops knowledge, I’m a big fan of DevOps. It’s so time-saving that I cover the basics, even when I’m the sole developer on a project. Who doesn’t like saving time?
The basics of DevOps
So, what is DevOps? At its core, DevOps is a culture and set of practices that aim to break down the barriers between development and operations teams to improve collaboration and efficiency. It involves automating and streamlining the software development process, from code creation to deployment and beyond. DevOps is not just a set of tools or processes, but a way of thinking about software development. It’s about creating a culture of collaboration, communication, and continuous improvement. With DevOps, developers and operations teams work together to build, test, and deploy software faster and more reliably.
Additionally, DevOps promotes collaboration and communication between different teams, which leads to a more efficient and streamlined development process. By breaking down the silos between development and operations teams, everyone is on the same page, working towards the same goal. This results in faster and more reliable releases, as well as overall better quality of the product. In short, DevOps is a time-saving and collaborative approach to software development that ultimately leads to better outcomes for everyone involved.
Why should developers care about DevOps?
You might be wondering why, as a developer, you should care about DevOps. After all, isn’t that more of an operations thing? Well, the truth is that DevOps is highly relevant to developers as well. According to the Developer Nation Survey 23 results, DevOps adoption keeps increasing (from 47% to 56% in 1½ years), while most of the implementation work is done by software developers themselves, with an earlier Developer Nation report mentioning only 5% of the DevOps practitioners being DevOps specialists.
In my mind, this makes sense. DevOps is, at its core, a culture of breaking down the walls between devs and ops people. While a specialist can be invaluable in complex implementations, or to help kickstart a culture, the culture itself should be the responsibility of generalists. By adopting DevOps practices, you can save time and streamline your development process. You can avoid manual steps in building and deploying your code, get test results without running tests, and have your changes live in production far faster than you would without DevOps. Sure, setting up version control, pipelines, testing, and deployments takes some effort. But more often than not – even sometimes when you’re the only one working on the project – the investment is worth it!
DevOps exists to make your life easier
This is the bottom line – DevOps is not there to create a new profession of DevOps consultants (just like Agile Software Development isn’t there to ensure Agile Coaches make their bread). It’s there to make the lives of devs and ops people easier. By adopting DevOps practices, whenever I am actually working with Ops, DevOps makes the collaboration easier as everything is traceable, often reversible, and even easier to document. This means that if there are any issues or bugs, we can quickly identify where the problem occurred and take steps to fix it.
According to the Q3,2022 Pulse report DevOps implementation witnesses more instrumental action from the programmers and software developer community with a 45.6% involvement, while the supervisory roles reflect the participation of less than 12% with Tech/engineering team leads at 11.2%, architects involvement at 10.7% and the C-level CIO/CTO and IT management roles at the lowest 10%. Computer and data science students show some practical learning involvement with 13.3%.
DevOps also encourages frequent communication between developers and operations, which helps to avoid misunderstandings and ensures everyone is working towards the same goals. The result is a more efficient and effective development process, with better quality software releases and happier customers. And even when I’m working by myself, DevOps makes it easier to deploy, maintain, and scale my apps. This collaboration can help to identify and fix issues earlier in the development process, reducing the risk of costly delays and downtime caused by issues discovered during deployment or after release.
Just recently, I was building a .NET MAUI project – my first one – and realised I only had a rough idea of how to build, test and publish an app, and not even that on how to distribute it. The obvious solution was to let someone else figure the details out for me. Luckily, I have someone who knows more about this stuff – namely, GitHub. Getting the basics to function using GitHub and Visual Studio App Center took me about an hour. GitHub Actions would take about 15 minutes to ship my code – from checking in to having a download available on App Center – and I don’t have to do anything! I should probably add some tests to the build process, but hey, I’ll add those right after I’m done with the documentation. If you want to read more, the whole article is here.
How to get started?
Here are some simplified steps to get started with your journey as a DevOps-savvy developer:
Automate everything you can: Automate your build, testing, and deployment processes using tools like GitHub, Azure DevOps, Jenkins, TeamCity, and GitLab.
Collaborate with Operations: Work closely with your Operations team to understand their needs and to ensure your code runs smoothly in production.
Embrace Continuous Improvement: DevOps is all about continuously improving your development processes, so always look for ways to streamline and improve your workflows.
Learn by Doing: DevOps is a hands-on approach, so start by experimenting with new tools and practices on small projects.
Prioritise Communication: Effective communication is essential to DevOps, so ensure you regularly communicate with your team to ensure everyone is on the same page.
And remember, DevOps is a journey, not a destination. By taking small steps towards automation, collaboration, and continuous improvement, you can gradually incorporate DevOps practices into your development workflows and reap the benefits of faster, more efficient software development. Don’t get too attached to any one tool – plenty of tools exist, and you can get tremendous value from many.
Bio: Antti Koskela is a Microsoft MVP trying to stay current on what’s what in the Azure and .NET world, and a Developer Nation Dev Committee member.
In this episode of the Developer Nation Broadcast we welcomed Adrienne Tacke, Senior Developer Advocate at Cisco. Adrianne spoke about her current role, her focus and the challenges she is facing. She also walked us through her journey and how she landed in the developer advocacy universe.
Adriane
Hi, Ayan. Really great. Really happy to be here. Thank you for having me on Developer Nation.
Ayan
Yeah, I’m really excited for this episode, especially given the fact that we both are developer advocates, I’m sure I’m going to be learning a lot of things from you today, as well as our community members who are mostly developers, but I’m pretty sure many of them would be interested in a career in developer relations and could learn a thing or two from you. So, for our community members, could you just introduce yourself referring to what you are currently working on and also giving an overview of your career journey?
Adriane
Sure, I’ll give the short version so we can go into more depth a little later. I’m a Senior Developer Advocate at Cisco.. My journey pretty much started by accident as a lot of the things in my career have, I never sought out to be a developer. I never studied computer science. I actually majored in Management Information Systems. And I got into software development through an internship, mostly because I needed a way to pay for college.
So, I found a student internship that focused on software development, and found out that I actually liked doing this stuff as I was interning. And from that point on, I worked at several different medium to large sized companies around the Las Vegas Valley as a dotnet developer, then slowly kind of merging into the JavaScript land and some of the other front-end frameworks.
Before, again, accidentally landing at developer advocacy, prior to Cisco, I was actually at MongoDB, also as a senior developer advocate. And that’s another story you can ask me about. I kind of fell into it, because I was actually sharing my journey on conference speaking. And MongoDB reached out and said; Hey, would you like to apply for this job? And I said, is this a job? That’s super cool. I didn’t know that. And so, I did. And that’s kind of how I got to this point in developer advocacy.
Ayan
Well, that’s really interesting, because given the fact that you did not know that this sort of job exists and now you are fully embracing it, going out to different conferences, giving talks and actually evangelizing for the company that you’re working for. So, tell me a bit more about that internship. Was it basically about learning development? Or was it more about how computer science in general works? What sort of internships do you have back in the days?
Adriane
So, at that time, like I said, I wasn’t even sure what I was going to do. And I actually found it through my student job. So even before the internship, the job that I found was for an IT Helpdesk position. So, if you needed your passwords reset, if you needed help troubleshooting your computer, both students or professors, I was the person you call to try to help troubleshoot that. And it was through this job that I found this internship. So, this internship was focused on software development to help in particular, the university’s Office of Information Technology. And at that time, the language that I worked in was actually VB dotnet, and also working with some Google API’s.
This position focused on helping the email administration system of the university, which at the time was at Google, we were using Gmail. A lot of that was really learning what development was about because I had no idea so I was very lucky to actually have a full team of all women as my first software development team. And I’ve never actually had that sense, which is kind of funny but focused on learning how to work with SQL and how to write queries that would grab all of the accounts that needed to be either disabled or retroactively brought back if they were, you know, a student coming back. I worked with Google API’s.
So, with a little bit of front end and learning with API’s, how to work with Google’s interface to create accounts, how to add information, how to send all that information through to Google to administer those accounts for the email for the university system. And then I worked with a bunch of other different people. So that internship was very foundational for me in terms of learning what software development is, what the types of teams you would work with, and what kinds of things you could do. But at the time, the major project I worked on was the email administration system for the university.
Ayan
What do you think about the influx of the next generation of software developers and computer science enthusiasts coming into the industry without necessarily having a computer science degree? They’re pursuing some certifications or training programs, and they are very well developers, they are able to find their way in open source contributions and find their place into the industry. So, do you think that it’s okay to not have a professional degree and use these courses instead? Is it very much possible to build a career and grow it? Or do you think that the degree would also be helpful?
Adriane
I think there’s a two-part answer to that for me in the experience I’ve seen so far.
Number one, you absolutely do not need a computer science degree, I have seen that throughout some of the best developers I know, who don’t have a computer science degree, they really just have a knack for learning. They want to know what the latest and greatest is, or they pick a specific topic that they really want to get well versed in, and they just continue learning as much as they can, building as much as they can. You absolutely do not need a computer science degree to be successful. That’s a fact.
The second part to that answer is, that this doesn’t mean that a computer science degree is not helpful, or that you don’t need it, I think if you have both, you actually put yourself forward and you have a leg up on a lot of other developers who also have a degree by doing the courses by doing the extra building by doing the extra projects. Especially coming from my own experience, I did management information systems, we still had development, networking databases, a lot of that foundational coursework, in addition to business courses. Where I don’t have the background is in data structures and algorithms or some of that other foundational computer science thinking. But I added that later on, or working on that, either for preparing for an interview, or using it in the job as needed. And that’s still very much useful, it’s still very good to know how things work under the surface, it’s still good to know, to have that way of thinking. It’s still very, very beneficial to know those topics. Even if you don’t learn it beforehand, or learn it, officially in university, it’s still very, very helpful. And you’ll still probably make use of it sometime later on in your career.
Ayan
Given the fact that you also have courses of your own now on LinkedIn learning platform, do you see a lot of the people who are purchasing these courses have a professional college degree or like, what sort of ratio do you see? Or is it something that you don’t care about? And you’re like, “Okay, everyone’s welcome. I don’t care if you have a degree”.
Adriane
At least of the other instructors that I’ve seen, it runs the whole gamut. There are people who don’t have college degrees, there are people who have PhDs and are teaching. Again, I think it comes back to how passionate you are about it, how much experience you’ve had with the topic that you’re trying to teach.
And honestly, there are a lot of courses to where there are people who are like, “I want to learn this subject and the best way to learn it is to teach it” so you can learn it but when you go to teach something, you find all those little bits and pieces of “okay, so I need to explain this topic to someone who doesn’t know it at all.” And that’s kind of where the deeper learning happens because you need to go that extra mile you need to go and see what are the pieces that are missing, that you know that you need to learn this topic well enough to be able to be comfortable to teach it. So college degrees, again, are not necessarily necessary, but they’re not a bad thing. You know, they don’t work against you. But it’s absolutely possible if you don’t have it.
Ayan
Coming to your current role as a Senior Developer Advocate, as you mentioned back, you were just giving talks in different conferences, because that’s what you loved about it. And MongoDB kind of picked it up from there, and you made a transition in developer advocacy, what would you say is something that motivated you to continue in this career journey, and what is that you really love about being a developer advocate from your day to day role?
Adriane
I was working as a senior developer, and working on a migration from Azure or on prem to full cloud as your platform. And at that time, I was learning a lot. A lot of companies, they sometimes offer stipends for employees to kind of put towards learning and development. So that could be going to a conference, going to some courses, etc. At that same time, I went to a conference, and I was watching somebody talk about a particular topic, specifically how to build pipelines and Azure DevOps. And I was thinking to myself, this person is really bad. They were not a great speaker, the talks that they had, or the content that they had, they’re basically just reading off of the slides, reading bullet points, and there was not a very good talk.
It was at that moment that I said, “what does it actually take to become a speaker”? How did these people get up there because I felt I could do a better job than that person there. And so, I researched it and found that at a lot of these conferences, you actually get in by applying and you just create a talk proposal and tell them, “this is what I want to talk about”. This is what I think will be useful for the attendees of your conference. I said, “you know what, I just felt like, let me just try to submit and see what happens.” And I did and at that time, I got accepted to seven conferences. So, I freaked out, because I’m like, oh, my gosh, you know, I’m a nobody, like, nobody knows me, why would they accept me. But that was kind of the first point that I said, that made me confident to think people actually want to hear the topics that I’m proposing, the way that I’ve written my proposal is good enough that it’s caught the eye of the committee and said, “this is good to put into our agenda.”
That is what kind of kick started everything. And I’ll be honest, a big part of why I really love what I do is that I get to travel and I get to go to a lot of different developer communities and talk to all of them.In college, I actually was a pre-International Business major, because I thought that would give me a job like Anthony Bourdain, you know, you get your own show, you get to travel to a place, eat everywhere. And when I learned that wasn’t the case, I needed a plan B. It’s, it’s kind of funny how I’ve gotten into developer advocacy, because I am kind of fulfilling that in this role. What keeps me going in this role aside from the trouble and aside from getting to meet a bunch of different developers around the world, is that there’s a lot of different ways to teach something.
So for example, let’s say I had to create a demo or kind of give a workshop on something that I don’t know at all, it’s a new product, or it’s a new feature, or it’s something I may not be familiar with, there’s an opportunity to learn more about it to see what developers would find relevant about that product or find why it would make their experience a lot nicer, a lot more productive.
Finding all the pieces that are relevant to developers and bringing that to the forefront. So doing a lot of that and having a lot of different avenues to do that: conference talks, videos, blogs, slabs, a lot of which Cisco has in sandboxes there’s so many different ways to teach something. I think that’s one reason why I do like this role is that, if I ever get tired of conference talks, which I don’t think I ever will, there’s always another way to teach something and provide more resources to all kinds of learners.
Ayan
That’s the best part for developer advocacy. You get to meet a lot of people who are actually like-minded and there are a lot of collaboration opportunities that come up when you are hanging out with those people. When you are not traveling, how’s the usual day at work in Cisco looks like, like what are different things that you’re currently working on? And of course, when you’re not traveling, what are your day-to-day things that you do as a Senior Developer Advocate that Cisco.
Adriane
So, as with all developer advocates at different companies, that can mean a whole bunch of different things. For me personally, I’m actually leading one of our OKRs which very much aligns with how I actually first felt when I joined Cisco, because, you know, when I would tell people, I’m going to be a developer advocate for Cisco, they’re like, “okay…” like, you know, and that’s part of my job is to kind of help bring what’s relevant and show that Cisco does have a lot of API’s.
And they do have a lot of open source tools that would be relevant to developers, you just don’t think of them because, you know, that’s part of what we’re trying to change is Cisco is relevant to developers.
Ayan
You mentioned the good part of developer advocacy. Now let’s talk about some challenges that you find in a day-to-day, you know, running your developer advocacy program, what are some challenges? And what are some aspects that you think are hard, and you’re still working on? And as a developer advocate, I understand that there are a lot of things that you’re doing at a time attending a conference. At the same time you’re maintaining documentation, you also have to update the community members about what’s happening. So, what are your challenges at Cisco being a senior developer advocate?
Adriane
I’ll say these are pretty common to most places. So, this isn’t just Cisco in general. But what I’ve found as a developer advocate is that you are kind of expected to do a lot, you are the community manager. You are the person that goes to conferences, you are the person that is maintaining documentation. You are the person that’s creating tutorials, and if you look at those four things I’ve mentioned, those are all jobs in and of themselves. Those are four separate things that four separate people could do. But there’s this expectation that developer advocates are expected to do it all.
The risk of burnout and just not knowing what is a priority, because everything is a priority is very difficult. So, it’s very much helpful to kind of align, you know, with your manager and say, what is the top priority? What are the things that I should be working on, then even better, if you can focus on a couple of those things, the better. What I tried to do, because I know, as you know, in the experience that I’ve had is that you kind of just get asked to do a lot of different things is that if you can make a way or find a way to focus on a couple of those things, it’s easier for everybody involved, because it’s easier to manage your time, it’s also easier to focus on a few of the things that you actually really enjoy. If you like creating videos, for example, and you like creating content, that alone can take up a lot of your time. You have to prepare for that, you have to research, you have to write the scripts, you have to film the things, if you’re doing video, you have to edit it. That’s a lot of work. And that’s just one task.
So again, if you could focus on what you want to do, it would be a lot easier for everybody involved. Another thing that’s kind of difficult in developer advocacy, that if you are the person that’s on the road, travel is glamorous. But if you’re on the road for like three, four weeks, two months, you get tired of it, you get tired living out of a suitcase, you miss your own bed, the jet lag is real when you get back, trying to coordinate different meeting times trying to still keep up with your meetings and tasks while you are on the road. It’s very, very difficult. So yes, it is nice if you get to go maybe once or twice a month, but if you are on the road a lot more, it’s exhausting.
Ayan
I see that you’re also involved in mentoring in different communities. And as a developer advocate, mentorship becomes a part of the role, community members look up to you for things that you could help them with. But you have also been a mentor at code.org and glue code. So, tell me about what motivated you to mentor the next generation of developers and people in tech? Is it something coming from the love of teaching? How do you see mentorship opportunities?
Adriane
That is very special to me, because it started with when I started to share my own journey on Instagram. This is when admittedly, Instagram was a little bit bigger, maybe it’s still big, I don’t know. But when I was in that role, right before I actually moved into developer advocacy, I just started to share my day-to-day of what I did as a developer because I didn’t see a lot of people like myself. When you say developer, the first words that come into your mind are probably they’re a guy, they like to wear hoodies, and they’re all in black. And they’re in the dark, and they don’t like to talk to people. There’s this very, very single one-sided vision or image of what a developer is supposed to be. And it said, that’s not the case. I’m a developer, and I’m completely opposite, I like to dress up. I’m a woman, I like to talk to people not so much. But I do like to talk to people, I’m not in a dark basement or whatever hiding from everybody. I wanted to change this image of what a developer meant. I started to do that in my own way by sharing my journey on Instagram. And that actually became a community in and of itself.
There are a lot of other girls and women who had reached out to me and say, thank you so much for sharing your journey. I didn’t know there were other developers, or I didn’t know there were Filipina developers.
I also like sharing that I’m Filipino descent. I’m Filipino-American, but I’m very proud of my heritage. And so, finding other Filipinos because in our culture, it’s very popular to kind of go into the medical route, either to become a nurse or a doctor. And I was not one of those people. I did not want to become a nurse. As a Filipino person, you’re kind of like, well, what do I do? Like that’s kind of the only path that is set forward for me. And so again, it’s like; Hey, here’s this other path that is a really fulfilling and satisfying path that you can be proud of if you don’t want to go into the medical field. This kind of naturally extended into sharing my story and kind of mentoring others at other schools in Las Vegas. Kind of just asked me; “hey, we see that you are there, you’re a part of the code.org list of mentors, would you mind coming into the classroom?” And just spending some time with these, first graders, fifth graders, third graders, high schoolers, I definitely would love to talk to them. It’s really interesting to go into those classrooms and say; “Hey, I’m a software developer, this is what I do. This is how you can get there. Here’s what you can do with code.” And it’s really, really fulfilling to see especially the little girls who are like, “you’re a software developer?” I’m like, “Yep, I’m a software developer, you can be one too.” Showing everybody that route, and it’s something that’s really fun, and can offer a very fulfilling career path. I think that’s why I like doing it and continue to mentor as much as I can.
Ayan
Giving back to the community and not just in terms of development, I would say I personally feel that every developer should go out and also try speaking in different conferences, maybe local meetup groups. You just mentioned that you sent out the call for proposal and you got selected by seven different conferences. So, tell us about that. And if someone is a developer who is working on some new technology, some new stack, andthey just want to, take it forward and speak about it at a conference or a local meetup group, and they are a bit shy about that? How would you say that they go about it, because you’re also coming from the same experience? Because you’ve seen someone giving a talk and you say, oh, I could do better than that. What are your views and advice for the people, first of all, why should they do it and how should they do it?
Adriane
That it’s a great question. Yes. If you want to do it, absolutely do it. The biggest question I get is I’m kind of scared or I don’t know if I can do it. Or another thing I hear is, oh, “this topic has been done so many times, like, why would I want to give a talk about that?” And what I’ll answer is,
everybody may do the same topic, but they don’t say it or explain it in a way that you will, because your voice is unique.
If you take a look at all the conference talks that you see, or Meetup group topics, you will find what’s common among them. There are a lot of JavaScript topics, a lot of the same JavaScript topics, a lot of the same React topics, there are a lot of topics that are done over and over and over again. But why do you still see them and it’s because different people have a different way of explaining it, and may have a better way or novel way to explain it. They will never go out of style, especially if they are hot topics or topics that are here to stay in the tech industry. So, if you think that is something that you are working on, if it’s new to you, that’s still a very valid perspective that should be shared. There are a lot of other people who can relate to you. Don’t let that be something that stops you from sharing in order to get started.
There are two approaches to this. There’s like the Big Bang thing, which is what I did. So, I just went straight to let me just apply to all the conferences that I think would be relevant and where I have something to share and see what happens. And I got accepted to seven, and you kind of just go in there and you do it.
The other way, if you want to do it a little bit more methodically and build up to it is, meetups are a super great place to kind of get started because it’s a smaller crowd, local meetups are usually easier to get to.
And people who run these local meetups are always looking for people to speak, they have a community already built, usually much nicer in terms of being more flexible in what you want to talk about. And it’s the local community. Once you do that once or twice, you get more comfortable with the community, you get comfortable with the audience, you get comfortable with what it’s like speaking to other people. And so maybe you work your way up. Maybe apply to a conference that’s in your state and then slowly but surely as your audience grows, I think that’s one way people find the confidence to kind of get all the way to the conference level where they’re speaking in front of 1000s people. So that’s another way to do it.
Ayan
And I would add that even the most experienced speakers from the developer community are still sometimes being rejected from these conferences, and that’s totally fine. You don’t have to be heartbroken about that. There’s always a next conference or a next meetup, where your talk would be the perfect fit, and you just have to keep doing it.
Ayan
Do you have sort of mantra when it comes to community and building community or scaling community or, you know what’s your take on that because I feel that being a developer advocate, empathy is a really strong suite that every developer advocate should have, they should understand the needs of the community and be able to advocate that within the company. And this is what we need to prioritize.
Adriane
That’s a great question. I think, personally, I’ve kind of focused, as most people would, with the communities that they align with, and the communities that they would like to grow into or be a part of. So, I’ll explain that by saying, when I mentioned how a lot of other Filipina girls and women would contact me and say, “Oh, you’re a developer”, you know, they would ask me questions similar to how you are doing right now, like, how did you get into developer advocacy? What is being a software developer like? How do I prepare for an interview? How do I write a CFP or Chuck proposal? How do you not get nervous when you go up and talk all of these different questions? They come to me, partly because, my face is out there. You know, I’ve spoken at conferences, I write content for companies, I have a book, my name is out there. So, people come to me. But in the beginning, I purposely intentionally tried to find other Filipina software developers to grow that community. I know that we’re out there, I know that we’re not all in the medical field.
It’s part of showing that there is this community that actually exists and wants to be part of the larger tech community as a whole. And so that focus has led me to find other Filipina speakers who are in tech who are around the world. And that’s been a really great part of focusing on this community. There’s Jonah in Sweden, who is also a speaker who focuses on Azure topics. There’s Marylog in Denmark, and I’ve gotten the chance to meet Marylog but not Jonah yet- I hope to meet her sometime this year. And even though we haven’t met, we still have a friendship that goes across the internet. And we support each other, if we have a conference that’s happening, and they’re looking for more speakers, I reach out to them and say, “Hey, here’s a great opportunity for you to go speak at this place, because you have the expertise, and you probably would enjoy speaking here.” Those kinds of relationships,and then connecting people to the relevant places, I think, is a really big part of that community building. it’s one thing to meet it and grow the network for yourself, it’s another to kind of say, “Hey, you are a perfect fit for this particular thing.” And then that community kind of naturally grows because you’re connecting people.
I think if there’s any mantra of mine, when it comes to community, it’s, I kind of meet the people myself first, and then I see if there’s a fit for them.
And then I try to connect relevant people together to grow that network even larger, where those connections may not have ever been made.
Ayan
When it comes to communicating ideas, developer advocates, usually write blogs or make videos or, you know, it could be like, I’m just going to give a talk out there in a conference about this topic and use that conference recording to put it out there in my community. So, what are your thoughts on this? How do you decide on this? Baes on the topic, like this topic is best fit for a blog. Or this topic is better explained when I share my screen, so I’m going to make a video about it. So how do you go about this?
Adriane
I think it depends. And that’s the famous answer. For me, I think it comes from number one, what does the community want? So that could mean what topics are most relevant? What topics are they searching for? What do they want to learn, because you may be really interested in some super niche topic, but nobody wants to learn about it for you, great. But as a developer advocate, you want to serve your community you want to serve the developers that you are creating this content for. And so what’s number one is what does your community want? What do they look for?
Then once you narrow down those topics, then it goes down to how do they like consuming it? So, you may have a community that loves blogs, they like reading, they like step-by-step tutorials. And then you may find there’s another subset of that community that actually prefers videos. So, this is where creativity comes in. Because usually when you create this kind of content, you probably do both to cover both of those communities. And sometimes the topic lends itself well to having both. So, you may have a video that has the screen capture and you’re doing a voiceover of, here’s how you do something. But then you have an accompanying blog that has code snippets that’s easy to copy and paste so that they can work alongside the video. So, it depends on the topic. Sometimes if it’s a bit more generic or just an overview, then yeah, maybe a video is fine, that will be enough. Sometimes you just do a blog. But in most cases, most of the topics and content that you create are going to be in all of the different forms, so that it serves the majority of your community and the way that they want you to consume.
Ayan
I’m really excited about the things that we are going to be doing together. And that includes some blocks coming up for the Developer Nation Community. Would you also like to talk about this so that our community members know what they could expect in future weeks or months?
Adriane
This is something I’m super excited about, we have an open-source tool called API insights. And it’s a way to help developers pretty much create better API’s. And what I mean by that is, it’s a partly static analysis tool. But it’s also a tool that helps you look into your API’s. And it essentially calculates a score. So, if you like games, and you like gamifying things, this is like the perfect thing for you. So, as you’re writing your API, we have an engine that statically analyzes your API endpoints, and it checks all of the different versions of your API against, say, an open API spec, and it calculates a score, how well are you doing against these specifications, and that concept is wrapped into this tool. Tthe next blog that I hope to write for developer nation is an introduction to how to get started with that tool, specifically how to install it on VS code, because we have a VS code extension for it and to do just a couple run throughs of how you would use this tool in your developer workflow, and then hopefully, a follow up blog on how to integrate that into your CI/CD pipeline with GitHub actions.
Ayan
We are coming to the end of this podcast so I’m just going to ask you a couple of last questions. The first one being what are you most excited about in today’s tech world? What excites you, when you see technology happening here. I know, CES is happening in your city at the moment. And then we will have Mobile World Congress next month. So, a lot of amazing things are to come. But what excites you the most in the tech industry at this present moment?
Adriane
So, one thing that I’ve been following closely, I don’t think it’s there. But I think we’re starting on is the prospect of being able to own our own data. And what I mean by that is, I think it’s pretty understood at this point that a lot of different companies have a lot of data on us, they know us very, very well from what we search online, to how we shop, to what devices we use. And a lot of people don’t necessarily understand that there’s this really large profile about us that unwillingly most of the time they have collected about us. So there are movements that come to light and say; “Hey, we should take charge of our own data of our own profiles that have been built up.” And are very excited at the prospect of potentially owning our data. And you know, if we actually wanted to sell that data to the companies ourselves, why not make a buck off of our own data, right?
So, the people who want to be super private can have autonomy over their data, and then the people who want to make use of that data can.
So, it’s always been talked about, and it’s something that always interested me. But I think now it’s becoming closer to reality, because of all of the protections that we have in place. And because a lot of it is being brought to light. So that’s what I’m excited about
Ayan
100%, I wouldn’t mind monetizing moisture data in my room any day. Why not? All right, so I have the last question for you. Because this podcast is mainly focused on inspiring people from the career trajectory of our guests. For someone who is currently doing some sort of development and they want to make a transition to Developer Advocacy, what sort of advice would you give them, where can they start? And what are the different places they can hang out, what are the different skills that they should learn? Do they need to be a really good speaker, and really good writer ?
Adriane
The developer advocacy is a very exciting thing to be thinking about as a developer. What I would say to those who are considering it is if you find yourself sharing in a particular way about what you’re doing, hone in on that.
So, for me, the first thing that I wanted to do was share via speaking because that’s something that I was used to and wanted to learn more about. Was I a great speaker before that? No. I, again, went into it headfirst and found out that, hey, I actually don’t mind talking in front of 3000 people. I still get nervous beforehand, but I enjoyed doing it. It’s something I really like to do. What I would say is, for those who are thinking about a career in developer advocacy, or want to switch, find what it is that you’d like to do. If you find yourself creating videos in your off time, that’s what you’d like to do, you’d like to edit videos, you’d like to teach in a way that you screen capture recorded, write the scripts and write those out, maybe you have a way in by creating that type of content. If you’d like to write blogs, really focus on making your writing better, make it more concise, learn all of the different tools, like become more well versed in Markdown or some other writing tool that makes it easy for you to publish on a better cadence, start a newsletter to kind of get into that zone of producing something every week or every two weeks. If you like talking to people, go to your local meetups, Ayanone yourself or organize one yourself, or see if you can help volunteer and be a part of those local meetups because then you get to see what it take to run a meetup? How do you organize it? What does it take to get people in seats? How do you market your event, there are all these different pieces that you don’t necessarily learn until you’ve done the thing.
And so that’s my advice, to find what it is that you’re interested in and find what makes you happy. And then do those kinds of additional things to help you learn what it means to do it, like going to the local events, or continue to write or continue to make videos and then share that with the outer community.
And then you’ll find that there are a lot of people who are wanting to hire you for developer advocacy for that particular thing that you’re doing, and sharing.
Ayan
Amazing. Well, thank you so much, Adriane for your time. I really had a fun time discussing everything with you. And I’m sure we will be getting you back in pretty soon for another episode. For now I’m looking forward to all the blogs that you will be sending our way for our community. So, thank you very much again for your time. I really had a fun time and we are probably going to see you again. Thank you so much.