Sandeep Singh
BAN USER
I am a Senior Software Engineer at Aricent, where I am responsible for the Software Design and Development activities. I have worked in complete SDLC and have good knowledge of the CMMI Level 5 processes for Software Development.
I have completed my B.Tech (HONS) in Information Technology from Harcourt Butler Technological Institute, Kanpur.
- » Homepage
- » Resume (Doc)
- » Resume (PDF)
CAREER OBJECTIVE
To pursue an innovative career contributing to the art of computing
PROFESSIONAL QUALIFICATION
B.Tech. (Information Technology) – Hons,
Harcourt Butler Technological Institute, Kanpur
(Session: 2005-2009)
(Percentage: 75.66%)
SPECIALITIES:
Technology Domains:
Long Term Evolution (LTE), Stream Control Transmission Protocol (SCTP)
Core Technical Skills:
C/C++, Unix System Programming, Unix Network Programming
Software Tools:
Rational Clearcase, GDB, Rational Purify, Klocwork, VMware Workstation, Strace
Development Platforms:
FreeBSD, GNU/Linux, Solaris, VxWorks
Soft Skills:
Good skills in the articulation/presentation of novel and innovative thoughts/ideas.
Extremely focused and apt in the delivery of taken up work assignments.
AREAS OF INTEREST
Computer Networks, Operating Systems
RESEARCH PUBLICATIONS
1. Sandeep Singh, Anjali Sardana, R.C. Joshi: “Detection and Mitigation of TCP SYN Flood Attacks Using Virtual Black-hole Honeypots”, National Conference On Emerging Trends In Electrical, Electronics And Computer Technologies (NEECT), New Delhi, pp. 300-306, September 2008.
2. Sandeep Singh, Mohit Singh, H. Dem: “TCP SYN Flood Attack Mitigation Using Pluggable Congestion Module in Linux Kernel 2.6.25”, 4th International conference on “Quality, Reliability and Infocom Technology (ICQRIT)”, 18-20 Dec 2009 (University of Delhi).
3. Sandeep Singh, Mohit Singh, H.Dem: "An inventory model for fair services of internet traffic", International Congress of Mathematicians 2010, Hyderabad.
EXPERIENCE
Senior Software Engineer at Aricent (Oct ’09 – present)
1. LTE PCRF Release: (High Availability support, User space SCTP support, DNS support and Emergency Call support)
In this job role, I am responsible for Design, Coding, Bug-Fixing and Developer-Side unit testing for the product.
2. Stream Control Transmission Protocol (SCTP) Stack: (Porting on VxWorks Emulator) - Onsite Development for Panasonic Mobile Communications, Yokohama (Japan)
In this job role, I am responsible for Code Enhancements required for making the SCTP Stack compatible with VxWorks Emulator running on GNU/Linux.
3. Stream Control Transmission Protocol (SCTP) Stack: (Multiple Stack Instance Support for Cisco)
In this job role, I am responsible for Requirements, Design, Coding, Bug-Fixing and Developer-Side unit testing for the product.
4. Stream Control Transmission Protocol (SCTP) Stack: (Porting on VxWorks version 6.8)
In this job role, I was responsible for Code Enhancements required for making the SCTP Stack compatible with VxWorks version 6.8.
5. Distributed MTP Level 3 (MTP3) User Adaptation Layer Stack:
In this job role, I was responsible for the design of distributed framework for M3UA Protocol Stack.
6. SCCP User Adaptation protocol (SUA) Stack:
In this job role, I was responsible for the design, development and delivery of some feature enhancements and bug fixes in the SUA Protocol Stack.
7. Stream Control Transmission Protocol (SCTP) Stack: (Redundancy Feature)
In this job role, I was responsible for Code Enhancements, Code-Review, Debugging, Code-Coverage and fixing Memory Leaks.
8. LTE eNB Call Processing:
In this job role, I was responsible for Code Enhancements, Debugging and Code-Coverage activities.
PROFESSIONAL TRAINING
I have successfully completed the three-month training program at Aricent, which comprised of Advanced C Programming, Unix System Programming, Programming Tools, Data Structures and Computer Networks.
INTERNSHIP
Characterization and Mitigation of DDOS Attacks through Virtual Machines
(Sponsored by: Ministry of Information Technology, New Delhi)
(A novel distributed framework for detection & mitigation of DDOS Attacks using a virtual machine as a Black- hole)
Project Guide: Prof. R.C. Joshi, Electronics & Computer Engineering Dept., IIT Roorkee
Tools: VMware Workstation 6.0.2 for GNU/Linux, Wireshark
B.TECH PROJECT
SYNSNOOP: A TCP SYN Flood Attack Detection and Mitigation Mechanism in Linux Kernel 2.6
(An integrated mechanism for detection and mitigation against the TCP SYN Flood Attack which works with the TCP/IP implementation in Linux Kernel 2.6 and later)
Tools: VMware Workstation 6.0.2 for GNU/Linux, Wireshark, IPerf
Role: System Design & Development
ACHIEVEMENTS
• Aricent SNAP Team Award for NexGen Release
• Aricent SNAP Team Award for SCTP Release Porting on VxWorks 6.8
• Aricent Product Excellence Award for Distributed M3UA Design
• First position in B.Tech.(IT) Final year examination
• First position in B.Tech.(IT) Third year examination
• Third position in overall B.Tech.(IT)
• Third position in Class XII examination at school level (C.B.S.E board, Percentage: 76.8 %)
• Third position in Class X examination at school level (C.B.S.E board, Percentage: 80.6 %)
OTHER ACTIVITIES
• Participation in GNU/Linux Workshops
• Participation in general discussions in programming forums
• Reading technical magazines and browsing websites
Your Code provides the smallest Number, not the kth smallest number in the Array
- Sandeep Singh July 14, 2012/*
* Given : An Unsorted Array
* Required : Find the kth Smallest Number in this Array.
*
* Example :
Array: {1,3,5,4,2};
kth_count=1 => 1st Smallest No. = 1
kth_count=2 => 2nd Smallest No. = 2
kth_count=3 => 3rd Smallest No. = 3
kth_count=4 => 4th Smallest No. = 4
kth_count=5 => 5th Smallest No. = 5
*
*/
#include <stdio.h>
#define INVALID_VAL -1
#define MAX_SIZE 5
#define SUCCESS 0
void Find_kth_Smallest_Numb (int *p_array, int kth_count);
int main()
{
int array[MAX_SIZE] = {1,3,5,4,2};
int kth_count = INVALID_VAL;
printf ("\nEnter kth_count: "); /* If you want 3rd smallest no., kth_count = 3 */
scanf ("%d", &kth_count);
/* If k = 3 & MAX_SIZE = 2 => Required No. must be greater than 2 numbers (as it is the 3rd smallest number)
and it should be lesser than 2 numbers */
Find_kth_Smallest_Numb (array, kth_count);
return 0;
}
void Find_kth_Smallest_Numb (int *p_array, int kth_count)
{
int index = INVALID_VAL;
int count_smaller_numbs = INVALID_VAL;
int count_greater_numbs = INVALID_VAL;
int counter = INVALID_VAL;
for (index=0; index<MAX_SIZE; index++)
{
for (counter=0, count_smaller_numbs = 0, count_greater_numbs = 0;
(counter<MAX_SIZE && count_smaller_numbs <= (kth_count - 1) && count_greater_numbs <= (MAX_SIZE - kth_count));
counter++)
{
if (index==counter) /* No Need to compare the Number with Itself */
{
continue;
}
if (p_array[index]<p_array[counter])
{
count_greater_numbs++;
}
else if (p_array[index]>p_array[counter])
{
count_smaller_numbs++;
}
if ((count_smaller_numbs == kth_count - 1) &&
(count_greater_numbs == MAX_SIZE - kth_count))
{
printf ("\n\n%dth Smallest Number = %d\n\n", kth_count, p_array[index]);
return;
}
} /* Inner For loop() */
} /* Outer For loop() */
}
Undefined Behaviour - Explained very well in "C FAQ's" by Steve Summit.
Please refer this question (question No. 3.1)
" Q: Why doesn't this code:
a[i] = i++;
work?
Ans - The subexpression i++ causes a side effect--it modifies i's value--which leads to undefined behavior since i is also referenced elsewhere in the same expression. There is no way of knowing whether the reference will happen before or after the side effect--in fact, neither obvious interpretation might hold "
/* Disclaimer: This Solution will work upto 2-characters i.e. from A,B,C ------ upto: ZZ */
#include <stdio.h>
#define INVALID_VAL -1
int main()
{
int numb = INVALID_VAL;
char array_alphabets[26] = {'A','B','C','D','E','F','G','H','I','J','K',
'L','M','N','O','P','Q','R','S','T','U','V',
'W','X','Y','Z'};
int Q = INVALID_VAL;
int R = INVALID_VAL;
int row_index = INVALID_VAL;
int col_index = INVALID_VAL;
printf ("\nEnter number: ");
scanf ("%d", &numb);
/* Calculate the position of this number in the Hypothetical 2-D Array
* Hypothetical 2-D Array:
* Row-0: A | B | C | D | .......................... | Z |
* Row-1: AA | AB | AC | AD | .......................... | AZ |
* Row-2: BA | BB | BC | BD | .......................... | BZ |
*
*/
/* Algorithm to determine the Index of Number in Hypothetical 2-D Array:
*
* Step-1: Divide Number by 26, collect the Quotient (Q) & Remainder (R)
Example: Number = 55
55/26 => Q = 2, R = 3
Q => Row No. in Hypothetical Array
R => Column No. in Hypothetical Array
* Step-2: Allocate an Actual 1-D Array of 26 characters
| A | B | C | D | ......................... | Z |
Row-Index of Hypothetical Array = Q-1; [Map to 1-D Array]
Column-Index of Hypothetical Array = R-1; [Map to 1-D Array]
*/
if (numb>26)
{
Q = numb/26;
R = numb%26;
row_index = Q-1;
if (0==R)
{
col_index = 0;
}
else
{
col_index = R-1;
}
printf ("\nAlphabet Equivalent to the Number %d is: %c%c\n", numb,array_alphabets[row_index],array_alphabets[col_index]);
}
else if (numb<=26)
{
printf ("\nAlphabet Equivalent to the Number %d is: %c\n", numb,array_alphabets[numb-1]);
}
return 0;
}
/* Sort the Input Array using any Sorting Algorithm and pass it as an I/P arg to FindSum() */
int FindSum (int *p_array, int req_sum, int num_elements)
{
int index = INVALID_VAL;
int num_picks = 0;
char flag = NOT_SET;
/* Find the Maximum Array Element which is <= req_sum */
for (index = num_elements-1; index < num_elements && p_array[index]>=req_sum; index--)
{
if (p_array[index] == req_sum)
{
flag = SET;
break;
}
}
if (index>=0 && index<MAX_SIZE)
{
num_picks++;
printf ("\nElement Added: %d\n", p_array[index]);
}
/* Now, p_array[index] = maximum array value < req_sum */
if (!flag)
{
num_picks = num_picks + FindSum(p_array, req_sum-p_array[index], num_elements);
}
return num_picks;
}
Replisanielson212, Associate at ASAPInfosystemsPvtLtd
Now I work in freelancing in Search Engine optimization. I like reading nobbles, old stories, love stories. I am happy ...
RepDo you Need Voodoo Spell For love, revenge or voodoo spells for cheaters? Consult Free right away to get custom ...
RepElenaKudaeva455, Music Piano Store at xyz
Hello Everyone,My name is Elena Kudaeva From NV,Nevada,USA.I am 16 years of age and I have ...
Repadorasherlyn253, SEO
I am a professor, I have 5 years of experience. I have seen a lot of cases in my life ...
RepShakirajensen45, Program Manager at Service Now
Shakira Jensen piano at Meridian Music from 2004-2010, and it is a benefit to welcome him back. He has numerous ...
Repsunstaley212, Graphics Programmer at Service Now
Hello Everyone, My name is sun staley and I am from new zealand. I might want to attempt this experience ...
RepWilliamDGiles, Cloud Support Associate at ADP
Spent 2001-2006 creating marketing channels for tar worldwide. Was quite successful at building tobacco for farmers. Won several awards for ...
RepMosesanaughe212, Web Developer at Service Now
Hello there everyone,I'm Moses anaughe from Texas , United States. I finished my undergrad contemplates in science and am ...
RepRocioNavarro189, None at Student
Hello Everyone,My name is Rocio Navarro Form Auckland,NZ,and 31 years old.I am searching for a servant ...
RepSCREENish employee time tracking software can be used as desktop or mobile app. Once the employee has tracked his working ...
Reppamelacochran447, Intern at design
I am Pamela Cochran, and I am working as a Manager in Compact Disc Center. Last Month, I searched for ...
RepNY Vape Shop is the most popular Vaporizer Store for new trend vaporizer pen and all related accessories. We are ...
Repsaldanaholly212, Program Manager at Service Now
My name is Saldana Holly from Florida, USA.I originate from a family of 6 youngsters, 3 sisters and 1 ...
RepBlack magic mantra is simple and easy mantra. Call our specialist today for advice on black magic mantra to kill ...
RepRuizLeslie, Management accountant at Omni Superstore
Ruiz , a Management accountant with 4 years in the field of administrative functions, managing the office of the Leadership team ...
My Solution is O(n) for worst case (when traversing the entire array is required) & achieves the desired result, however the medium element finding logic is flexible (for change):
- Sandeep Singh November 03, 2012